很多人優化抓取路径时,第一反應是看 URL 里有几個斜杠,觉得目錄层級越浅越好。但對搜尋蜘蛛来说,它判断一個頁面“深不深”,看的不是地址栏里的路径,而是從已知入口出發,需要点多少次連結才能走到這個頁面。這两個數字经常對不上:URL 只有两級的頁面,可能要從首頁点五次才到;而 URL 里带三层目錄的頁面,反倒挂在主導航上,一跳就能進去。
蜘蛛算的深度是点击次數
蜘蛛的工作方式是顺着連結走。它拿到一批已知 URL,抓取頁面,從 HTML 里提取新的連結,再把新連結放進待抓队列。一個頁面只有被某條連結指向,才有机會進入這個队列。所以對蜘蛛来说,頁面的“距离”是連結图里的跳數,而不是文件系統的层級。
這也是為什么 Sitemap 只能算补充手段。它能把 URL 递到蜘蛛面前,但一個既没有内鏈、也不在導航里的頁面,即使寫在 Sitemap 里,蜘蛛對它的抓取频率和更新感知通常也弱于有正常連結入口的頁面。
点击深度影响哪些事
- 被發現的速度:离入口近的頁面,蜘蛛更早看到更新。
- 抓取节奏:抓取资源有限时,鏈條長的頁面排在後面,容易長時間不更新。
- 抓取稳定性:路径上任何一环断掉,後面的頁面就一起失去入口。
- 排查难度:深度大的頁面出問题时,日誌里出現的次數少,不容易從資料里發現。
先量一量自己站点的点击深度
- 從首頁開始,沿站内連結做一次小范围爬取,记錄每個 URL 的最短点击距离。
- 把结果按跳數分档,重点看有多少頁面在四跳以上。
- 對照 Sitemap 和日誌,找出“只在 Sitemap 里、内鏈里找不到”的頁面。
- 挑出你最希望被抓的业務頁,看它們分別在第几跳。
很多站点量完之後會發現,問题不是頁面太多,而是重要頁面被埋在了层层列表和篩選頁後面。
缩短深度的几種常见做法
導航和栏目结构
把主要分類放進顶部導航或侧邊常驻入口,让核心栏目保持在一到两跳。栏目頁再往下,尽量让内容頁在列表頁第一屏或第二屏就出現連結,而不是全靠“加载更多”。
面包屑與聚合頁
面包屑给每层頁面都提供了一條向上、向旁的路径,聚合頁則把同一主题下的内容收在一起,减少蜘蛛绕路的次數。這两類頁面本身内容要求不高,但作為連結节点很有用。
正文里的相關連結
在正文底部放几條真正相關的文章連結,比在頁脚堆一大片全站連結更自然,也更容易让蜘蛛沿着主题走到新頁面。
分頁與列表的收尾
列表頁翻到後面几頁时,別忘了让連結繼續存在。無限滚動如果只靠 JS 触發、不生成可抓取的連結,後面的内容對蜘蛛基本等于不存在。
目錄浅不等于点击浅
把三层目錄的地址改成一級目錄,如果没有任何連結指向它,蜘蛛照样進不去。反過来,URL 長一点但有正常工作内鏈的頁面,抓取並不會因此受影响。URL 结构值得整理,但它解决的是重复和可讀性問题,解决不了“没有入口”的問题。
常见誤区
- 把全站 URL 一股脑塞進 Sitemap,就当解决了入口問题。
- 用頁脚挂满連結来“拉平”深度,结果每個頁面都多出几百條無意义連結。
- 列表頁只做“加载更多”按钮,後面几頁没有可抓取的 URL。
- 連結由 JS 点击事件生成,HTML 里看不到 href。
一份可以照着做的检查清單
- 核心业務頁是否在三跳以内可達。
- 每個栏目頁是否至少有一條從首頁出發的稳定路径。
- 分頁、篩選後的列表是否有可抓取的連結。
- Sitemap 里的 URL 是否大部分都能在站内找到内鏈入口。
- 定期從日誌里看深层頁面的抓取情况,確認路径没有断。
深度這件事没有统一标准,重要的是让蜘蛛有清晰、稳定、不断鏈的路可以走。路径通畅,比 URL 好看更實用。