很多人排查“目标 URL 没有被抓取”时,會先去看入口頁的 meta robots、連結寫法、响應狀態,却忽略了一個更基础的問题:這個目标 URL 离入口頁到底隔了几层。层級深度不會让目标 URL 彻底消失,但它會實實在在影响被發現的顺序和等待時間。
搜尋蜘蛛是怎么一层层往下走的
搜尋蜘蛛抓到入口頁後,會解析出頁面里的連結,把這些 URL 放進待抓取队列,再按調度策略逐個抓取。每多一层,就多一次“抓取—解析—再排队”的循环。也就是说:
- 第一层:入口頁直接指向的目标 URL,通常有机會在入口頁被抓取後的下一轮進入队列;
- 第二层:需要先抓一個中間頁,再從中間頁解析出目标 URL;
- 第三层及更深:每加一层就多一次排队,目标 URL 排到队首附近的時間随之拉長。
在抓取预算有限、站点整体抓取频次不高的情况下,深鏈路上的 URL 往往要等更久,甚至長期停在“已發現未抓取”。
深层連結最常卡在哪
真正的問题通常不是“太深”,而是鏈路中間某一环断掉了。常见情况有:
- 中間頁本身返回 404、500 或超时,蜘蛛拿不到連結;
- 中間頁連結加了 rel="nofollow",蜘蛛不再跟進;
- 中間頁連結由 JavaScript 動態插入,抓取时没渲染出来;
- 中間頁被 robots.txt 屏蔽,蜘蛛無法抓取,鏈路在此终止;
- 中間頁是一串跳轉,跳轉次數過多導致後續連結难以被稳定解析。
判断是不是层級問题,可以按日誌分段核對:如果入口頁有蜘蛛訪問、中間頁完全没有记錄,說明断在第一层;如果中間頁有记錄、目标頁没有,就重点看中間頁的連結寫法和响應狀態。
层級和抓取预算的關系
同一站点在一定時間内可被分配的抓取次數大致是有限的。連結层級越浅、重要頁面越集中,蜘蛛把预算花在核心 URL 上的比例就越高。反過来,如果大量低價值頁面层层嵌套,重要的目标 URL 就會被稀释在後面。
缩短鏈路可以做的事
- 让入口頁尽量直接指向核心目标 URL,减少不必要的中間跳板頁;
- 站点内部做扁平化,主要頁面從首頁出發 2~3 次点击内可達;
- 把 sitemap 当作补充發現渠道,而不是唯一依赖;
- 控制單頁連結數量,避免把抓取预算摊在大量低價值連結上;
- 按周對比中間頁與目标頁的抓取次數,观察調整後是否有改善。
层級浅不代表一定會被抓,层級深也不代表抓不到。它影响的是優先級和等待時間,而不是一個開關。
實操上,把“入口頁 → 中間頁 → 目标 URL”這條鏈路画出来,逐段確認每一段是否返回正常、是否可解析、是否允许跟進,通常比反复調整入口頁的 meta 标簽更有效率。