搜尋抓取

從首頁走到深层頁:蜘蛛抓取路径的深度,受哪些因素影响

蜘蛛發現 URL 靠連結一层层走,從已知入口到某個頁面所需的最少点击次數,就是它的抓取深度。本文說明深度是怎么形成的、哪些變量會把它拉長,以及如何把重要頁面挪到更浅的位置,同时讲清 Sitemap 與内鏈在其中的分工。

搜尋抓取

從首頁走到深层頁:蜘蛛抓取路径的深度,受哪些因素影响

蜘蛛不會凭空知道站点上有哪些 URL。它的主要路径,是從一個已经抓過的頁面出發,沿着頁面上的連結走到下一個頁面。一個頁面离已知入口越遠,需要经過的連結跳數就越多,被抓到的机會通常也越靠後。把這件事量化一下,就是常说的抓取深度。

深度是怎么算出来的

抓取深度不是照搬網站的栏目层級,而是蜘蛛按連結實际走出来的最短路径。同一個頁面,從首頁導航点两下能到,深度就是二;如果只能從某個列表頁第 8 頁翻進去,深度可能變成七、八层。栏目结构设計得再整齐,只要連結走不通,對蜘蛛来说這條路径就不存在。

影响深度的几個變量

  • 連結的绝對數量:一個頁面上的連結越多,單個連結分到的權重和注意越少,深鏈條上的連結更容易被忽略。
  • 連結出現的位置:導航、正文里的連結,通常比頁脚和侧邊堆积的連結更早被處理。
  • 連結是否真的可抓:依赖 JS 拼接出来的連結、带 nofollow 的連結、需要点击才加载的連結,都可能让路径走不下去。
  • 入口的分散程度:同一批内容有多個入口时,蜘蛛取的是最短那條,其余路径對它意义不大。

深度過深时,日誌里能看到什么

在没有額外提交的情况下,深层頁面的抓取频次往往會明顯低于浅层頁面,甚至長期没有记錄。常见現象是:首頁和二級栏目每天被訪問多次,而最底层的内容頁几周才出現一次,或者只在你主動提交後才被抓一次。這时問题通常不在服務器,而在路径太長、路径上的节点太少。

一個容易忽略的点

深度是相對入口而言的。新增了一批内容,却没有從已有被频繁抓取的頁面連結過去,這批 URL 就只能等着被發現,速度取决于 Sitemap 被讀取的频率,而不是站点更新的节奏。

把重要頁面拉浅的几種做法

  1. 梳理哪些是不带時間属性、值得長期被訪問的核心頁,把它們放進主導航或栏目首屏。
  2. 给深层内容增加横向入口,例如相關推荐、标簽聚合頁、专题頁,让路径從七八跳压缩到三四跳。
  3. 检查列表頁分頁是否可抓,深鏈條常常断在分頁上。
  4. 减少同一頁面里無意义的重复連結,避免把预算耗在同一批浅层 URL 上。
  5. 對确實無法拉浅的長尾内容,用 Sitemap 作為补充發現渠道,而不是唯一渠道。

Sitemap 與内鏈的分工

Sitemap 解决的是“告诉蜘蛛有哪些 URL”,内鏈解决的是“蜘蛛走了哪條路過去”。前者适合做全集清單,後者决定抓取顺序和再抓取的频率。两者配合的常见做法是:Sitemap 保持完整、可解析,内鏈則重点覆盖那些需要更快被訪問的頁面。只做 Sitemap 不做内鏈,頁面會被發現,但可能長期停留在低優先級队列里。

判断深度問题不要只看站点结构图,要看日誌里蜘蛛進入這些頁面时带的 referer 是哪個 URL。那條鏈才是它真正在走的路。

可以按這個顺序检查

先取一份近期日誌,找出连續几周都没有抓取记錄的頁面;再看這些頁面最近的入鏈来自哪里,把路径上的每一跳列出来;然後判断断点是在分頁、在 JS 渲染,還是在没人連結的孤岛頁面。多數时候,改動的重点不是加更多 Sitemap 條目,而是给這些頁面补一條從频繁抓取頁出發的連結。