蜘蛛不會凭空知道站点上有哪些 URL。它的主要路径,是從一個已经抓過的頁面出發,沿着頁面上的連結走到下一個頁面。一個頁面离已知入口越遠,需要经過的連結跳數就越多,被抓到的机會通常也越靠後。把這件事量化一下,就是常说的抓取深度。
深度是怎么算出来的
抓取深度不是照搬網站的栏目层級,而是蜘蛛按連結實际走出来的最短路径。同一個頁面,從首頁導航点两下能到,深度就是二;如果只能從某個列表頁第 8 頁翻進去,深度可能變成七、八层。栏目结构设計得再整齐,只要連結走不通,對蜘蛛来说這條路径就不存在。
影响深度的几個變量
- 連結的绝對數量:一個頁面上的連結越多,單個連結分到的權重和注意越少,深鏈條上的連結更容易被忽略。
- 連結出現的位置:導航、正文里的連結,通常比頁脚和侧邊堆积的連結更早被處理。
- 連結是否真的可抓:依赖 JS 拼接出来的連結、带 nofollow 的連結、需要点击才加载的連結,都可能让路径走不下去。
- 入口的分散程度:同一批内容有多個入口时,蜘蛛取的是最短那條,其余路径對它意义不大。
深度過深时,日誌里能看到什么
在没有額外提交的情况下,深层頁面的抓取频次往往會明顯低于浅层頁面,甚至長期没有记錄。常见現象是:首頁和二級栏目每天被訪問多次,而最底层的内容頁几周才出現一次,或者只在你主動提交後才被抓一次。這时問题通常不在服務器,而在路径太長、路径上的节点太少。
一個容易忽略的点
深度是相對入口而言的。新增了一批内容,却没有從已有被频繁抓取的頁面連結過去,這批 URL 就只能等着被發現,速度取决于 Sitemap 被讀取的频率,而不是站点更新的节奏。
把重要頁面拉浅的几種做法
- 梳理哪些是不带時間属性、值得長期被訪問的核心頁,把它們放進主導航或栏目首屏。
- 给深层内容增加横向入口,例如相關推荐、标簽聚合頁、专题頁,让路径從七八跳压缩到三四跳。
- 检查列表頁分頁是否可抓,深鏈條常常断在分頁上。
- 减少同一頁面里無意义的重复連結,避免把预算耗在同一批浅层 URL 上。
- 對确實無法拉浅的長尾内容,用 Sitemap 作為补充發現渠道,而不是唯一渠道。
Sitemap 與内鏈的分工
Sitemap 解决的是“告诉蜘蛛有哪些 URL”,内鏈解决的是“蜘蛛走了哪條路過去”。前者适合做全集清單,後者决定抓取顺序和再抓取的频率。两者配合的常见做法是:Sitemap 保持完整、可解析,内鏈則重点覆盖那些需要更快被訪問的頁面。只做 Sitemap 不做内鏈,頁面會被發現,但可能長期停留在低優先級队列里。
判断深度問题不要只看站点结构图,要看日誌里蜘蛛進入這些頁面时带的 referer 是哪個 URL。那條鏈才是它真正在走的路。
可以按這個顺序检查
先取一份近期日誌,找出连續几周都没有抓取记錄的頁面;再看這些頁面最近的入鏈来自哪里,把路径上的每一跳列出来;然後判断断点是在分頁、在 JS 渲染,還是在没人連結的孤岛頁面。多數时候,改動的重点不是加更多 Sitemap 條目,而是给這些頁面补一條從频繁抓取頁出發的連結。