分頁是内容發現的主要通道之一
對内容量較大的站点来说,首頁和栏目首頁能承载的連結有限,真正把老文章、深层内容暴露出来的,往往是列表頁的翻頁連結。如果分頁组件只服務于「人点得動」,而没考虑「爬虫走得通」,站点的 URL 發現效率就會被压得很低:新内容可能几天就進索引,半年前的舊内容却始终停留在發現不到的狀態。
三種分頁形態,抓取表現不一样
普通頁碼連結
形如 ?page=2 或 /list/2.html 的頁碼,只要寫在 a 标簽的 href 里,就是最容易被發現的一類。注意两点:一是頁碼連結要在 HTML 里直接輸出,而不是等 JS 执行後拼出来;二是分頁參數尽量保持單一風格,不要同一栏目下混用 ?p=、?page=、?pageNum=,否則同一批内容會产生多套分頁 URL。
「加载更多」按钮
這種组件通常绑定点击事件,内容是异步拉取的。對用戶友好,但對發現並不友好。可行的折中是把按钮做成带 href 的連結,指向對應的下一頁 URL,JS 只负责拦截点击做無刷新替換;即使 JS 失效,連結依然可達。
無限滚動
無限滚動本身没有稳定的分頁 URL,需要額外提供一套分頁兜底,把每屏内容對應的 URL 用普通連結列在頁面底部,或者用可訪問的分頁入口承接。
几個常被忽略的细节
- 末頁空轉:頁碼超出實际范围仍返回 200 和空列表,會制造大量無内容頁面,也浪費抓取资源。超出范围應返回 404 或 410,或至少不輸出指向更後面的頁碼連結。
- 頁碼輸出過多:一次性渲染 1 到 500 的頁碼,看起来連結丰富,實际會让頁面上的連結價值被稀释。常见做法是首尾各几個、目前頁附近若干,配合「下一頁」連結逐步前進。
- 分頁统一 canonical 到第一頁:把第 2 頁、第 3 頁全部 canonical 到第一頁,等于告诉搜尋引擎後几頁没有獨立價值,翻頁里的内容連結也會被間接削弱。是否這样做要看内容策略,但至少要意识到這是個取舍。
- 篩選與排序參數混進分頁:带篩選條件的分頁 URL 數量容易失控,建议控制可组合的參數范围,避免篩選结果無限制地向外扩散連結。
和站点地图、内鏈的配合
分頁頁不必全部提交到站点地图,但结构稳定、内容有價值的重点分頁可以提交,作為發現路径的补充。更關键的是内鏈:栏目頁到列表頁、列表頁到分頁、分頁到詳情,這條鏈路要逐級可達,不要出現只能靠站内搜尋才能到達的列表頁。
提醒一句:把分頁整理清楚能提升被發現的概率,但不等于收錄或排名會立刻變化,索引结果仍由搜尋引擎综合判断。
一份可以照着做的检查清單
- 翻頁連結是否為真實 a 标簽,href 是否可直接訪問。
- 分頁 URL 參數是否统一,是否存在多套等價寫法。
- 超出范围的頁碼是否返回 404 或 410,而不是 200 空頁。
- 頁面輸出的頁碼數量是否可控,是否保留「下一頁」。
- 分頁頁的 canonical 與 robots 設定是否符合内容策略。
- 列表頁與分頁頁是否都能從栏目頁顺連結走到。
這些改動大多不涉及大改版,只是把現有组件從「能点」調整到「能走」。做完之後,隔一段時間用服務器日誌看抓取分布,判断翻頁是否真的被走通了,比凭空猜测更有意义。