搜尋抓取

蜘蛛眼里的頁面深度:点几次能到,比 URL 有几层更重要

蜘蛛判断一個頁面深不深,看的是從入口点几次連結能到,而不是 URL 里有几层目錄。本文說明点击深度如何影响 URL 發現和抓取节奏,怎么自查站内被埋深的頁面,以及導航、面包屑、聚合頁和正文内鏈這些能真正缩短抓取路径的做法。

搜尋抓取

蜘蛛眼里的頁面深度:点几次能到,比 URL 有几层更重要

很多人優化抓取路径时,第一反應是看 URL 里有几個斜杠,觉得目錄层級越浅越好。但對搜尋蜘蛛来说,它判断一個頁面“深不深”,看的不是地址栏里的路径,而是從已知入口出發,需要点多少次連結才能走到這個頁面。這两個數字经常對不上:URL 只有两級的頁面,可能要從首頁点五次才到;而 URL 里带三层目錄的頁面,反倒挂在主導航上,一跳就能進去。

蜘蛛算的深度是点击次數

蜘蛛的工作方式是顺着連結走。它拿到一批已知 URL,抓取頁面,從 HTML 里提取新的連結,再把新連結放進待抓队列。一個頁面只有被某條連結指向,才有机會進入這個队列。所以對蜘蛛来说,頁面的“距离”是連結图里的跳數,而不是文件系統的层級。

這也是為什么 Sitemap 只能算补充手段。它能把 URL 递到蜘蛛面前,但一個既没有内鏈、也不在導航里的頁面,即使寫在 Sitemap 里,蜘蛛對它的抓取频率和更新感知通常也弱于有正常連結入口的頁面。

点击深度影响哪些事

  • 被發現的速度:离入口近的頁面,蜘蛛更早看到更新。
  • 抓取节奏:抓取资源有限时,鏈條長的頁面排在後面,容易長時間不更新。
  • 抓取稳定性:路径上任何一环断掉,後面的頁面就一起失去入口。
  • 排查难度:深度大的頁面出問题时,日誌里出現的次數少,不容易從資料里發現。

先量一量自己站点的点击深度

  1. 從首頁開始,沿站内連結做一次小范围爬取,记錄每個 URL 的最短点击距离。
  2. 把结果按跳數分档,重点看有多少頁面在四跳以上。
  3. 對照 Sitemap 和日誌,找出“只在 Sitemap 里、内鏈里找不到”的頁面。
  4. 挑出你最希望被抓的业務頁,看它們分別在第几跳。

很多站点量完之後會發現,問题不是頁面太多,而是重要頁面被埋在了层层列表和篩選頁後面。

缩短深度的几種常见做法

導航和栏目结构

把主要分類放進顶部導航或侧邊常驻入口,让核心栏目保持在一到两跳。栏目頁再往下,尽量让内容頁在列表頁第一屏或第二屏就出現連結,而不是全靠“加载更多”。

面包屑與聚合頁

面包屑给每层頁面都提供了一條向上、向旁的路径,聚合頁則把同一主题下的内容收在一起,减少蜘蛛绕路的次數。這两類頁面本身内容要求不高,但作為連結节点很有用。

正文里的相關連結

在正文底部放几條真正相關的文章連結,比在頁脚堆一大片全站連結更自然,也更容易让蜘蛛沿着主题走到新頁面。

分頁與列表的收尾

列表頁翻到後面几頁时,別忘了让連結繼續存在。無限滚動如果只靠 JS 触發、不生成可抓取的連結,後面的内容對蜘蛛基本等于不存在。

目錄浅不等于点击浅

把三层目錄的地址改成一級目錄,如果没有任何連結指向它,蜘蛛照样進不去。反過来,URL 長一点但有正常工作内鏈的頁面,抓取並不會因此受影响。URL 结构值得整理,但它解决的是重复和可讀性問题,解决不了“没有入口”的問题。

常见誤区

  • 把全站 URL 一股脑塞進 Sitemap,就当解决了入口問题。
  • 用頁脚挂满連結来“拉平”深度,结果每個頁面都多出几百條無意义連結。
  • 列表頁只做“加载更多”按钮,後面几頁没有可抓取的 URL。
  • 連結由 JS 点击事件生成,HTML 里看不到 href。

一份可以照着做的检查清單

  1. 核心业務頁是否在三跳以内可達。
  2. 每個栏目頁是否至少有一條從首頁出發的稳定路径。
  3. 分頁、篩選後的列表是否有可抓取的連結。
  4. Sitemap 里的 URL 是否大部分都能在站内找到内鏈入口。
  5. 定期從日誌里看深层頁面的抓取情况,確認路径没有断。
深度這件事没有统一标准,重要的是让蜘蛛有清晰、稳定、不断鏈的路可以走。路径通畅,比 URL 好看更實用。