搜尋抓取

抓取预算的两端:需求端想抓多少,容量端能接多少

抓取预算常被当成一個固定數字,其實由两端共同决定:需求端看蜘蛛觉得多少頁面值得抓,容量端看服務器能稳定承受多少請求。本文拆開两端各自關注的信号,给出從日誌判断瓶颈位置的方法,以及内鏈、Sitemap、响應時間上可以落地的調整方向。

搜尋抓取

抓取预算的两端:需求端想抓多少,容量端能接多少

很多人把抓取预算理解成搜尋引擎發给每個網站的固定配額,好像後台摆着一個數字。實际不是。蜘蛛每天来多少次、抓走多少 URL,是两股力量互相妥协的结果:一邊是它觉得你站上有多少内容值得抓,另一邊是你的服務器能稳定承受多少請求。任何一端收紧,最後的抓取量都會往下掉。

需求端:蜘蛛想抓多少

需求端看的是“值不值得”。同一批 URL,更新越频繁、被内鏈和外鏈指向越多、内容越獨立,被抓的理由就越充分。反過来,大量近似重复的頁面、長期不動的归档、參數拼出来的空结果頁,會摊薄需求。

  • 更新节奏:整站每天大改和一年不動,蜘蛛的訪問密度完全不同。
  • 内鏈结构:從入口頁到目标頁的跳轉次數越少,越容易被反复检查。
  • Sitemap 與 lastmod:時間戳寫得真實,等于提前告诉蜘蛛哪些頁面值得再看一眼。
  • 外鏈與站内引用:有真實入口的頁面,通常比只出現在 Sitemap 里的頁面来得更快。

容量端:服務器能接多少

容量端看的是“抓得動吗”。蜘蛛會持續观察响應時間、错誤率和连接稳定性,然後調整並發。如果頁面平均响應在两三秒以上,或者高峰时频繁出現 5xx、超时,它會主動降速,而這個降速往往比你想的恢复得更慢。

  • 响應時間:把首字节時間压下来,比事後解释更有效。
  • 错誤率:5xx 和超时會被当作服務器吃力的信号。
  • 429 與限速:确實需要控制时,用明确的狀態碼,而不是直接断连。
  • 抓取时段:维護窗口尽量避開蜘蛛习惯的訪問時間,减少無谓失敗。

判断瓶颈在哪一端

  1. 看抓取總量趋势:長期平缓、新頁面迟迟不被抓,偏需求端問题。
  2. 看响應時間與错誤率:抓取量下降同时伴随延迟上升,偏容量端問题。
  3. 看抓取分布:如果抓取都集中在老頁面和低價值頁面,說明需求端没被引導好,该整理内鏈和 Sitemap 了。
抓取预算不是申請来的,是观察出来的。结构調整完,用两到四周的日誌去對比,別指望第二天就有變化。

常见的几個誤区

  • 提交 Sitemap 就能提升抓取量:Sitemap 解决的是“知道有這個 URL”,不等于“愿意多抓”。
  • 頁面越少抓得越深:删掉低價值頁面能减少浪費,但重要頁面本身没有入口、没有更新,抓取也不會自動變多。
  • 堆服務器配置就够:容量只是上限,需求端不给信号,配置再好也用不满。

可以做的調整

  • 整理站内連結,让重要頁面在两三次跳轉内可達。
  • 把 Sitemap 控制在有效 URL 范围内,lastmod 保持真實。
  • 把响應時間和 5xx 当成日常监控項,而不是出問题才看。
  • 定期清理死鏈、空列表頁和重复參數頁,减少無效抓取。

两端各管一半。先確認是哪一端在限制你,再動手,比一味地“想办法让蜘蛛多来”省力得多。