列表頁和分頁是蜘蛛在站内最常走的一條路:首頁到栏目頁,再到列表第 1 頁、第 2 頁……只要每頁都有可点击的下一頁連結,理论上它可以一直走下去。但實际看日誌會發現,大多數站点在某個頁碼之後抓取记錄就明顯變稀了。這不是蜘蛛偷懒,而是這條路径的收益和成本在那一頁發生了交叉。
蜘蛛翻頁时在做什么
蜘蛛並没有翻頁這個概念,它只是看到連結就排队。每一頁對它来说都是一個新地址:要下载、要解析、要把里面的連結加進待抓队列。当第 N 頁返回的内容與前面高度重复,或者新連結數量趋近于零时,繼續往下走的動力就消失了。
換句话说,决定翻頁深度的不是頁碼數字,而是這一頁還能带来多少新地址。
哪些设計會让分頁路径提前衰减
- 下一頁連結用脚本渲染。蜘蛛讀不到 href,路径在第 1 頁就断了。用 a 标簽寫死地址是最稳的做法。
- 分頁參數顺序不统一。同一個列表出現多種參數组合,蜘蛛在這些地址之間来回跑,消耗了抓取額度却没有多發現内容。
- 每頁條目太少。二十條一頁和五十條一頁,翻十頁拿到的内容差一倍以上,後者更容易被走到更深處。
- 列表頁塞满推荐位。分頁連結被推到頁面下半部分,可见度和被跟随的机會都被稀释。
- 深层内容只存在于第三十頁。如果一篇文章只能從很靠後的列表頁進入,它被抓到的概率會低很多。
让重要内容不依赖翻頁深度
分頁可以繼續保留,但不要把發現路径全压在它身上。常见的做法是组合起来用:
- 给列表做合理的聚合入口,比如按分類、按時間、按标簽的固定頁面。
- 把真正重要的内容寫進 Sitemap,让蜘蛛不必经過第三十頁就能到達。
- 在詳情頁做相關推荐和上下篇,把深层頁重新拉回主干路径。
- 對翻不到底的歷史内容,用归档頁或索引頁做一层過渡。
怎么確認分頁到底走到哪了
服務器日誌是最直接的證據。筛出列表頁的請求,看带分頁參數的地址被請求到了第几頁、多久来一次、返回碼是什么。如果前几頁每天都来,第六頁以後一周才出現一次,說明路径在這里開始衰减。
同时留意两類異常:一是大量分頁地址返回 200 但内容是空列表,這會白白消耗抓取額度;二是分頁連結指向的地址返回 404,或者 301 跳到不相干的地方,路径會直接断掉。這两種情况都能在日誌里通過狀態碼分布看出来。
分頁不是越深越好,而是要让每一頁都還值得被走一次。
小结
分頁本身不制造問题,問题在于把内容的發現路径全部交给它。把分頁連結寫清楚、參數收敛、單頁條目數控制在合理范围,再给深层内容补上 Sitemap 和内鏈入口,蜘蛛走過的路径自然會完整一些。