列表頁翻到第三頁之後,往往是运营最不關心的区域。但從抓取的角度看,分頁恰好是蜘蛛把栏目内容走完的主要通道。分頁規則一旦含混,蜘蛛要么在頁碼里绕圈,要么在第二頁之後掉头就走。這份自查不复杂,重点是先把“你的分頁到底是哪一種”搞清楚。
先分清站点里的几種分頁
同样是“下一頁”,背後的實現差別很大,處理方式也不一样。
- 顺序分頁:頁碼明确、有终点,比如文章列表第 1、2、3 頁。這類最好處理,規則也最容易统一。
- 無限加载:滚動到底自動追加内容,地址栏往往不變。蜘蛛看不到新增部分,等于後面几屏内容從未存在。
- 篩選後的分頁:带參數的列表,參數组合會成倍膨胀。這块和篩選頁自查是同一件事,建议分開做,別混在一次改動里。
- 時間归档:按年月归档,數量固定,通常不需要频繁調整,但別让它變成只剩入口、没有内容的空壳。
几個高频出問题的地方
頁碼連結是按钮而不是連結
“下一頁”如果是個 onclick 按钮,蜘蛛拿不到可抓的地址。改成正常的 a 标簽是最省事的做法,也是最容易被忽略的一步。
分頁 URL 規則前後不一
有的栏目用 /list/2/,有的用 ?page=2,還有的混着来。同一套结构里最好只留一種寫法,否則日誌里同一批内容會出現好几種地址形態,統計和判断都會變麻烦。
canonical 一律指向第一頁
把分頁地址的 canonical 全部指向第一頁,是常见的“防重复”做法,但代價是第二頁之後的地址和其中的内容很难被單獨對待。更稳妥的方式是让每個分頁地址自指,同时保證第一頁能直接鏈到後續頁碼。
深頁碼没有近路
如果第一頁只给出一個“下一頁”,第 8 頁之後的内容需要爬很多次才能到達。可以在列表底部放一组固定的頁碼区間,或者提供一個“查看全部”的入口頁,让深頁碼有一两條近路。
空列表頁仍然返回 200
分類内容被清空後,第 5 頁可能已经是空列表,但頁面照样返回 200 和一句“暂無内容”。這類頁面留几個無妨,數量一多就會占用抓取額度,建议做合並或者连向上一級栏目。
一份可以照着走的分頁自查
- 抽查 3 個主力栏目,從第一頁点到末頁,看地址是否規律、是否都能直接用浏览器打開。
- 確認翻頁入口是可抓取的連結,不是按钮或纯前端事件。
- 检查分頁地址的 canonical、robots 規則是否與目前策略一致,別一邊放行一邊屏蔽。
- 看第一頁到第 N 頁的跳轉层級,重要栏目尽量控制在两三次点击之内。
- 翻一遍日誌里该栏目的抓取记錄,確認蜘蛛确實走到了第二、第三頁,而不是停在第一頁反复抓取。
- 對無限加载列表,补一個可抓取的静態分頁作為兜底。
- 把空列表、尾頁的處理方式寫進栏目規范,後面新增板块照着套。
調整之後的观察节奏
改完不要当天就下结论。第二天先看抓取日誌里该栏目的請求數和狀態碼分布;一周後再看深頁碼有没有被訪問、栏目内頁面的抓取是否變均匀。如果两周過去深頁碼依然没有動静,多半不是分頁本身的問题,而是栏目權重或入口位置需要再往前放一放。
分頁不需要做得花哨,只需要让蜘蛛清楚地知道:下一頁在哪、一共有多少頁、哪些頁值得来。
把這件小事固定成栏目上线的检查項,比每次出問题再临时排查更省力气。