蜘蛛每天在同一个站点上投入的抓取量并不固定。它先看服务器能承受多少,再看站点的整体质量和更新情况,最后把这段时间分配给不同的 URL。站点越大、响应越慢,单个 URL 分到的份额就越少。所以讨论抓取预算,本质上是在讨论这段时间花得值不值。
可用抓取量的三个变量
- 服务器响应速度:TTFB 越短,单位时间能抓的页数越多;持续出现 5xx 或超时,蜘蛛会主动放慢节奏。
- 站点的整体更新情况:更新稳定、结构清晰的站点,蜘蛛回访的间隔更短。
- 待抓队列的规模:如果一次新增几万个带参数的 URL,队列里堆着的地址会稀释每个页面的机会。
时间通常被花在了哪些地方
1. 没有变化的旧页面
如果一批页面每次抓取内容都一样,蜘蛛会逐步降低回访频率。这本身是正常现象,但如果它把整个目录都归入低频名单,而目录里其实有页面在更新,就有点吃亏。给更新内容留出可识别的信号,比如标题、摘要、时间戳、新的内链入口,会有帮助。
2. 参数和筛选产生的 URL
排序、筛选、追踪参数会衍生出大量相似页面。这些页面内容差别很小,却同样占用抓取额度。在链接规范或 robots.txt 层面控制它们被大规模发现,比事后从索引里清理更省事。
3. 深层页面和孤岛页面
从首页点几下才能到达的页面,抓取优先级天然偏低。如果它还没有任何内链指向,可能连被发现的机会都不多。把重要页面放进主导航、列表页或相关推荐,比等 Sitemap 慢慢派发更快。
4. 静态资源和无关路径
图片、脚本、样式,以及后台、测试、旧版本目录的 URL,也会被请求。它们不一定进索引,但确实消耗抓取量。能屏蔽的屏蔽,能合并的合并。
怎么把配额留给该更新的页面
- 先看日志,统计蜘蛛最常抓的是哪类 URL,和你希望它抓的是否一致。
- 把重复页面和参数页收敛掉,减少待抓队列的总量。
- 保持服务器响应稳定,避免在迁移或活动期出现大面积 5xx。
- 让新内容有明确入口:列表页、相关推荐、专题页都可以用。
- Sitemap 只放需要被发现的 URL,不要把全站地址一股脑塞进去。
观察抓取节奏可以看哪几个指标
- 单位时间内蜘蛛的请求数量,看的是整体节奏有没有异常。
- 状态码分布,2xx 之外的比例过高时先排查服务端。
- 抓取频次最高的 URL 模板,判断时间是否被低价值页面吃掉。
- 新 URL 从发布到首次被抓的间隔,这是最直观的反馈。
抓取预算不是能直接调大的开关,能做的是减少无效抓取、提高每一次抓取的价值。
别把抓得多当成目标
有些做法通过大量入口制造抓取量,短期内日志确实会热闹。但如果抓到的页面没有实质内容,或者反复抓取同一批 URL,长期看只是消耗服务器资源,对 URL 发现和内容可见性帮助有限。真正有意义的,是让需要更新的页面被及时看到。
抓取节奏终究是站点状况的反映:结构清晰、响应稳定、更新有规律,蜘蛛的分配自然会更合理。