栏目列表頁通常是站内地址數量最多的一類頁面。一個几百篇文章的栏目,按每頁 20 條算,就會产生几十個分頁地址。這些地址里排着大量正文頁的入口,如果分頁本身出了問题,蜘蛛顺着栏目往下走的路就断了。
先看清分頁是怎么實現的
不同程序的分頁地址形態差別很大,自查前先確認自己的栏目用的是哪一種:
- 路径式:/news/page/2/,地址看起来像目錄,容易被当成正常頁面。
- 參數式:/news?page=2 或 ?paged=2,需要確認參數是否稳定。
- 异步加载:点击“下一頁”只更新列表区域,地址栏不變,或者變了但内容靠脚本注入。
路径式和參數式通常都能被抓取,關键在于翻頁連結是不是一個真實可点的 a 标簽。如果翻頁按钮是 onclick 事件或纯脚本渲染,蜘蛛往往点不動,第二頁之後就成了它的盲区。
分頁導航自查清單
- 翻頁連結是否可抓取。在浏览器里禁用 JavaScript,看列表頁底部還能不能看到指向第 2 頁的連結。看不到,就說明這條路對蜘蛛是關着的。
- 頁碼是否连續可達。從第 1 頁能否一路点到最後一頁,中間有没有因為資料異常出現断号。
- 超出范围的頁碼返回什么。訪問第 999 頁這種不存在的分頁,如果返回 200 加一個空列表,會生成大量無内容地址。比較稳妥的做法是返回 404,或跳回最後一頁並给出明确提示。
- 每頁條數是否固定。如果每頁 20 條還是 50 條會随參數或登入狀態變化,同一地址在不同时刻内容不同,會给頁面质量判断带来干扰。
- 分頁與篩選參數的组合。篩選、排序、分頁三個參數叠加时,地址數量會成倍增長,需要限制可组合的范围。
- canonical 指向哪里。如果每個分頁地址都 canonical 到第 1 頁,後面的頁面内容就很难被單獨對待;一般建议分頁頁面自指 canonical,具体做法结合自身收錄情况判断。
- 是否被 noindex 或 robots 屏蔽。有些站点為了省抓取预算把分頁全部屏蔽,结果是列表深處的文章長期缺少入口。屏蔽前先想清楚替代的發現路径。
每頁放多少條合适
條數太少,頁數變多,蜘蛛要跑很多次才能看完一個栏目;條數太多,單頁体积變大、加载變慢,抓取时也容易超时。20 到 50 條之間是比較常见的区間,具体看摘要長度和配图數量。真正要避免的是同一個栏目里條數忽多忽少。
分頁之外還要留几條發現路径
分頁有個天然缺陷:越早發布的内容越靠後。即使蜘蛛愿意翻到第 20 頁,也不代表它每次都會翻。可以在栏目里补充几個辅助入口:
- 按時間归档的頁面,如 /news/2024/,把老内容重新拉到浅层。
- 热门或推荐列表,给長期有價值的文章一個稳定入口。
- 正文之間的相關阅讀内鏈,比單纯依赖列表更稳。
分頁導航是列表頁的骨架。骨架错了,不是某一篇文章收錄慢,而是整個栏目深處的地址都缺少入口。
怎么驗證改動有没有效果
改完之後別只看總抓取量,去服務器日誌里筛一下分頁地址:抓取次數、返回的狀態碼分布、以及第 2 頁之後的占比。如果大部分請求都停在第 1 頁,說明翻頁連結依然不够顺畅,或者後面几頁确實没有值得抓的内容。搜尋引擎後台的抓取統計和已發現未抓取的資料也可以作為參考,但结论要以自己站点的日誌為准。
分頁不是需要天天調整的東西,但值得定期查一次。尤其是改版、換模板、調整每頁條數之後,翻頁連結很容易在改動中被換成脚本触發,而這種問题不會报错,只會安静地少掉一批入口。