很多人把抓取预算理解成搜索引擎发给每个网站的固定配额,好像后台摆着一个数字。实际不是。蜘蛛每天来多少次、抓走多少 URL,是两股力量互相妥协的结果:一边是它觉得你站上有多少内容值得抓,另一边是你的服务器能稳定承受多少请求。任何一端收紧,最后的抓取量都会往下掉。
需求端:蜘蛛想抓多少
需求端看的是“值不值得”。同一批 URL,更新越频繁、被内链和外链指向越多、内容越独立,被抓的理由就越充分。反过来,大量近似重复的页面、长期不动的归档、参数拼出来的空结果页,会摊薄需求。
- 更新节奏:整站每天大改和一年不动,蜘蛛的访问密度完全不同。
- 内链结构:从入口页到目标页的跳转次数越少,越容易被反复检查。
- Sitemap 与 lastmod:时间戳写得真实,等于提前告诉蜘蛛哪些页面值得再看一眼。
- 外链与站内引用:有真实入口的页面,通常比只出现在 Sitemap 里的页面来得更快。
容量端:服务器能接多少
容量端看的是“抓得动吗”。蜘蛛会持续观察响应时间、错误率和连接稳定性,然后调整并发。如果页面平均响应在两三秒以上,或者高峰时频繁出现 5xx、超时,它会主动降速,而这个降速往往比你想的恢复得更慢。
- 响应时间:把首字节时间压下来,比事后解释更有效。
- 错误率:5xx 和超时会被当作服务器吃力的信号。
- 429 与限速:确实需要控制时,用明确的状态码,而不是直接断连。
- 抓取时段:维护窗口尽量避开蜘蛛习惯的访问时间,减少无谓失败。
判断瓶颈在哪一端
- 看抓取总量趋势:长期平缓、新页面迟迟不被抓,偏需求端问题。
- 看响应时间与错误率:抓取量下降同时伴随延迟上升,偏容量端问题。
- 看抓取分布:如果抓取都集中在老页面和低价值页面,说明需求端没被引导好,该整理内链和 Sitemap 了。
抓取预算不是申请来的,是观察出来的。结构调整完,用两到四周的日志去对比,别指望第二天就有变化。
常见的几个误区
- 提交 Sitemap 就能提升抓取量:Sitemap 解决的是“知道有这个 URL”,不等于“愿意多抓”。
- 页面越少抓得越深:删掉低价值页面能减少浪费,但重要页面本身没有入口、没有更新,抓取也不会自动变多。
- 堆服务器配置就够:容量只是上限,需求端不给信号,配置再好也用不满。
可以做的调整
- 整理站内链接,让重要页面在两三次跳转内可达。
- 把 Sitemap 控制在有效 URL 范围内,lastmod 保持真实。
- 把响应时间和 5xx 当成日常监控项,而不是出问题才看。
- 定期清理死链、空列表页和重复参数页,减少无效抓取。
两端各管一半。先确认是哪一端在限制你,再动手,比一味地“想办法让蜘蛛多来”省力得多。