栏目頁、标簽頁、商品列表頁,往往是站内連結最密集的地方,也是蜘蛛發現新地址的主要入口。但分頁處理得随意一点,第一頁能正常抓,往後翻就断了。翻不到的内容,等于没有被連結過,只能靠站点地图兜底,效率和覆盖都要打折扣。
先確認你的分頁属于哪種形態
- 静態連結分頁:頁面上存在可以直接点击、也能直接輸入地址訪問的連結,例如带翻頁參數的地址或按序号生成的路径。這類形態對抓取最友好。
- “加载更多”按钮:按钮到底是一個連結,還是一段脚本?如果只是脚本,蜘蛛点不動,後面的内容就悬空了。
- 無限滚動:用戶滚到哪加载到哪,地址栏却始终不變,蜘蛛看到的永遠只有第一屏。
- 篩選與排序叠加:篩選條件一多,同一批内容會衍生出大量地址,抓取预算被稀释。
自查清單:從第一頁翻到最後一頁
- 把列表地址複製出来,手動把第二頁、第三頁、最後一頁的地址改出来訪問,確認每頁都能正常返回並带有實际内容。
- 查看頁面源碼,確認分頁連結出現在 HTML 里,而不是等脚本执行後才生成。如果必须靠渲染,至少要保證渲染後的連結是真實可点击的連結。
- 检查每頁條數。條數太少,頁數就多,抓取成本上升;條數太多,單頁体积大、加载慢。列表頁一般十几到三十條之間比較常见,具体按内容類型定。
- 確認翻過头的地址不會返回空列表還带正常狀態。没有内容的頁碼,應该给出明确的 404,或者干脆不生成這類連結。
- 检查“加载更多”和無限滚動的降級方案:是否存在一個不依赖脚本的分頁地址,让蜘蛛能一段一段往下取。
- 對比移動端和桌面端的分頁行為,有些站点移動端做無限滚動、桌面端做分頁,蜘蛛看到的可能是两套東西。
- 核對站点地图里是否补充了較深的列表頁地址,作為連結抓取不完整时的补救。
索引取舍:哪些分頁值得留
分頁頁面本身價值不高,但也不建议一刀切全部屏蔽。比較稳妥的做法是:
- 保留分頁連結的可抓取性,让蜘蛛能顺着往下翻,但不必强求每一頁都被收錄。
- 分頁頁面的标题加上頁碼或内容区間,避免几十個頁面共用同一句介绍。
- canonical 指向该頁自身,不要统一指回第一頁,否則後面的條目容易被当作重复内容合並掉。
- 纯篩選组合产生的地址可以按參數規則收敛,而内容确實成序列的列表,保留原有路径。
什么时候考虑合並
如果某個栏目的内容總量不大,翻两頁就到底,與其做分頁,不如一頁展示完整,或者提供一個“查看全部”的版本,让連結结构更简單。分頁不是必须的,只有当内容量确實撑得起时才值得保留。
修复之後怎么驗證
改動上线後,不要只看頁面能不能点。更可靠的方式是查服務器日誌,看蜘蛛的實际請求里有没有出現第二頁、第三頁的地址,以及這些請求返回的狀態。如果日誌里長期只有列表第一頁,說明連結虽然存在,但蜘蛛没有足够理由往里走,可以回头看列表頁本身的更新频率和内鏈情况。
分頁的問题往往不在技術實現,而在没人從头翻到尾。定期手動走一遍列表入口,比等着看資料下滑更省事。
把分頁当成連結结构的一部分来维護,列表頁才會真正起到内容入口的作用,而不是每篇文章都等着站点地图来救场。