搜尋抓取

抓取覆盖率怎么核對:從日誌看蜘蛛走完了多少 URL

日誌里抓取請求不少,唯一 URL 却長期停滞,往往說明覆盖率出了問题。本文讲清分母怎么定、日誌该看哪几列、频次與狀態碼怎么配合解讀,以及發現死角後按服務器、可達性、结构、發現通道的顺序怎么調整。

搜尋抓取

抓取覆盖率怎么核對:從日誌看蜘蛛走完了多少 URL

蜘蛛每天来多少次,並不等于它把站点走完了。很多站点日誌里的抓取請求看起来不少,但唯一 URL 數長期停在某個水平,新增頁面迟迟不出現在抓取记錄里。想把這件事说清楚,需要一個可核對的口径:抓取覆盖率。

先定分母:哪些 URL 算“该被抓”

覆盖率的分母不能随手拿全站 URL 數。更稳妥的做法是先列出站点愿意被蜘蛛抓取的 URL 集合,再分层統計。

  • 入口层:首頁、栏目頁、频道導航這類長期存在的頁面。
  • 内容层:文章、商品、詳情等正文頁面,通常是站点的主要内容载体。
  • 辅助层:标簽頁、篩選頁、分頁,是否纳入分母取决于你是否希望它們被抓。

把這三层分開算,比混在一起算一個總數更有意义。内容层覆盖率高、辅助层低,和整体覆盖率 60% 是两種完全不同的狀態。

日誌里至少要讀的四列

  • 請求路径:確認 URL 是否規范化過,带參數和不带參數會被算成两條记錄。
  • 狀態碼:200、301、304、404、5xx 分開統計,304 偏多說明蜘蛛在重复訪問同一批頁面。
  • 蜘蛛标识與時間:区分不同蜘蛛,按天看频次變化,而不是只看總量。
  • 来源或抓取入口:有 referrer 记錄时,可以看出這條請求是通過内鏈還是從 Sitemap 進来的。

覆盖率之外的三個观察点

覆盖率高不代表抓取健康,還要一起看:

  • 抓取频次分布:如果首頁和列表頁占了绝大多數請求,深层頁面只是偶尔被碰到,說明路径並不通畅。
  • 狀態碼结构:5xx 和超时比例偏高时,蜘蛛通常會降低訪問频率,覆盖率也會跟着下滑。
  • 抓取深度:可以從入口頁按内鏈层級估算,看蜘蛛實际走到的层級和站点结构是否匹配。

几個常见的誤讀

  • 把 304 当成“没抓”:304 也是一次有效訪問,只是内容未變。
  • 只看總請求數:請求數上升可能只是同一批頁面被反复抓。
  • 把 Sitemap 提交量当成已抓取量:提交只是告知,不等于被抓。

發現死角之後,按這個顺序改

  1. 先修服務器侧問题:5xx、超时、TLS 握手失敗優先,這些會直接影响蜘蛛的抓取节奏。
  2. 再修可達性:確認死角頁面能從入口頁经過少量内鏈点到,没有只能靠 JS 渲染才出現的連結。
  3. 然後修结构:把重要頁面從深层目錄或孤岛狀態中拉出来,放進栏目頁或相關推荐位。
  4. 最後补充發現通道:Sitemap 分片、RSS、提交接口各自承担一部分,互相不冲突。
覆盖率是结果指标,不是原因指标。它低下来时,要回到路径、狀態碼和服務器响應上找原因。

把這三层分母、四列日誌和上面几個指标固定成一張表,按周看變化,比每次重新翻日誌更容易發現趋势。真正的抓手往往不在“蜘蛛為什么不来”,而在“来了之後卡在哪一步”。