很多站点的列表頁動辄几十上百頁,站長常問的一個問题是:蜘蛛真的會一頁一頁翻到最後吗?大多數情况下不會。但這不代表深层頁面就注定發不出去,只是發現路径需要重新设計。
蜘蛛往下翻頁的几條常见路径
對蜘蛛来说,從第 1 頁走到第 N 頁,通常靠三種线索:
- 可见的分頁連結:頁面上真實存在的 a 标簽,蜘蛛顺着下一頁或頁碼連結一步步走。
- URL 規律:当分頁參數呈明顯递增規律时,蜘蛛可能按自己的节奏跳到中間某几頁抽样,而不是老老實實逐頁推進。
- 其他入口:标簽頁、時間归档、站内搜尋、Sitemap 里的深层連結,都可能把蜘蛛直接送到某個深頁。
這三條路並不是平均分配抓取量的。绝大多數情况下,前几頁拿到的抓取最多,越往後越稀疏。
為什么翻頁越深,抓取越少
抓取资源在任何搜尋引擎那里都是有限的。蜘蛛决定要不要走下一頁时,會參考几個現實因素:這一頁离首頁有多遠、頁面内容是否高度重复、歷史抓取里有多少新 URL 产出、服務器响應是否稳定。当第 20 頁和第 3 頁展示的结构几乎一样、新連結产出又很少时,繼續往下的性價比就很低。
于是日誌里常见的形態是:前几頁每天被訪問多次,中間頁偶尔出現,最後几頁几個月才来一次,甚至干脆不来。
想让深层 URL 被走到,站点能做什么
分頁連結必须是真實連結
用点击事件、滚動加载替換掉 a 标簽,等于把後續頁碼藏起来。即便蜘蛛能渲染頁面,把分頁做成可点击的真實 URL 仍然是最省事的方式。至少保證下一頁和几個關键頁碼是标准連結。
提高每頁的連結密度
一頁只放 5 條内容,意味着走 20 頁才覆盖 100 個 URL,蜘蛛的每一步都很贵。适当增加列表每頁的條目數,让每次抓取产出更多新連結,通常比死磕分頁深度更有效。
別用屏蔽的方式處理深层分頁
有的站点為省服務器资源,把深层分頁 noindex 或用 robots.txt 挡掉。noindex 不會阻止蜘蛛跟随頁面上的連結,但會让這一趟抓取失去收錄意义;robots.txt 屏蔽則可能直接切断路径,让更後面的頁面彻底失去入口。動手前先想清楚:這部分内容是不是真的不需要被發現。
時間归档與标簽分頁要收口
按年、按月归档,再叠加标簽组合,很容易拼出成百上千個结构相似的列表 URL。這類頁面内容重复度高,還會稀释抓取预算。可以考虑合並、限制组合數量,或者把真正有價值的部分做成静態专题頁。
给重要内容一條更短的路径
與其指望蜘蛛翻 30 頁,不如把深层内容通過专题頁、热门列表、相關推荐挂到浅层入口上。路径短了,被走到的机會自然增加。
分頁响應別拖後腿
深层分頁的响應時間如果明顯慢于普通頁,蜘蛛中途放弃的概率會上升。這類查询常涉及大偏移量,必要时用缓存或游标分頁缓解,別让第 50 頁因為超时而返回 5xx。
用日誌驗證,而不是凭感觉
打開服務器日誌,把分頁 URL 單獨筛出来,統計被訪問的频次分布:第几頁之後訪問量断崖下跌,哪類分頁几乎無人問津。這些數字比任何猜测都直接。調整之後再對一次,看變化是否朝着预期方向走。
分頁深度不是越深越好,也不是越浅越好。關键是让蜘蛛有限的抓取,落在真正有新内容、有新連結产出的頁面上。