搜索抓取

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

抓取预算常被当成一个固定数字,其实由两端共同决定:需求端看蜘蛛觉得多少页面值得抓,容量端看服务器能稳定承受多少请求。本文拆开两端各自关注的信号,给出从日志判断瓶颈位置的方法,以及内链、Sitemap、响应时间上可以落地的调整方向。

搜索抓取

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

很多人把抓取预算理解成搜索引擎发给每个网站的固定配额,好像后台摆着一个数字。实际不是。蜘蛛每天来多少次、抓走多少 URL,是两股力量互相妥协的结果:一边是它觉得你站上有多少内容值得抓,另一边是你的服务器能稳定承受多少请求。任何一端收紧,最后的抓取量都会往下掉。

需求端:蜘蛛想抓多少

需求端看的是“值不值得”。同一批 URL,更新越频繁、被内链和外链指向越多、内容越独立,被抓的理由就越充分。反过来,大量近似重复的页面、长期不动的归档、参数拼出来的空结果页,会摊薄需求。

  • 更新节奏:整站每天大改和一年不动,蜘蛛的访问密度完全不同。
  • 内链结构:从入口页到目标页的跳转次数越少,越容易被反复检查。
  • Sitemap 与 lastmod:时间戳写得真实,等于提前告诉蜘蛛哪些页面值得再看一眼。
  • 外链与站内引用:有真实入口的页面,通常比只出现在 Sitemap 里的页面来得更快。

容量端:服务器能接多少

容量端看的是“抓得动吗”。蜘蛛会持续观察响应时间、错误率和连接稳定性,然后调整并发。如果页面平均响应在两三秒以上,或者高峰时频繁出现 5xx、超时,它会主动降速,而这个降速往往比你想的恢复得更慢。

  • 响应时间:把首字节时间压下来,比事后解释更有效。
  • 错误率:5xx 和超时会被当作服务器吃力的信号。
  • 429 与限速:确实需要控制时,用明确的状态码,而不是直接断连。
  • 抓取时段:维护窗口尽量避开蜘蛛习惯的访问时间,减少无谓失败。

判断瓶颈在哪一端

  1. 看抓取总量趋势:长期平缓、新页面迟迟不被抓,偏需求端问题。
  2. 看响应时间与错误率:抓取量下降同时伴随延迟上升,偏容量端问题。
  3. 看抓取分布:如果抓取都集中在老页面和低价值页面,说明需求端没被引导好,该整理内链和 Sitemap 了。
抓取预算不是申请来的,是观察出来的。结构调整完,用两到四周的日志去对比,别指望第二天就有变化。

常见的几个误区

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

可以做的调整

  • 整理站内链接,让重要页面在两三次跳转内可达。
  • 把 Sitemap 控制在有效 URL 范围内,lastmod 保持真实。
  • 把响应时间和 5xx 当成日常监控项,而不是出问题才看。
  • 定期清理死链、空列表页和重复参数页,减少无效抓取。

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