抓取预算 (Crawl Budget) 是指 Google 等搜索引擎的爬虫 (Googlebot) 在一定时间内对某个网站进行抓取 (爬行) 的次数上限。Google 会调节每个网站的抓取频率,以避免对服务器造成过大负载。
抓取预算由两个因素决定。一个是抓取容量上限 (即主机负载),它取决于 Googlebot 同时建立的连接数以及两次抓取之间的间隔,当响应变慢,或服务器开始返回 5xx 错误、429 响应时就会下降。另一个是抓取需求,它取决于 Google 已发现的 URL 数量、网站及页面的受欢迎程度,以及距上次抓取过了多久。早期资料把前者称为「抓取速率限制」,现行指南已改称「抓取容量上限」。
是否需要关注抓取预算,并不只由页面数量决定。Google 的指南把「不重复页面超过 100 万且内容大约每周更新一次」的网站,以及「不重复页面超过 1 万且内容更新相当频繁 (每天)」的网站列为对象,同时明确说明这些数字只是大致参考,并非精确的阈值。更实用的判断依据是:新发布的页面是否在当天就被抓取。如果是,只要保持站点地图为最新,并偶尔查看索引编制情况就足够了。反之,如果大型网站的新页面迟迟不被抓取,抓取预算优化就会成为实际的 SEO 课题。
短链接服务与抓取预算的关系虽然间接但很重要。大量生成短链接的服务中,每个短链接的页面 (预览页面等) 都可能成为爬虫的抓取对象。这里要注意的是,robots.txt 与 noindex 的作用并不相同。robots.txt 用于阻止抓取,并不能保证页面不被编入索引;noindex 用于阻止编入索引,只有爬虫能够抓取该页面时才会生效。若对同一个 URL 同时使用两者,抓取被阻止会导致 noindex 无法被读取,反而达不到预期效果。想减少抓取的 URL 用 robots.txt,只是不希望出现在搜索结果中的 URL 用 noindex,二者择一。
优化抓取预算的主要方法包括:保持服务器响应速度 (提高抓取容量上限)、删除重复和低质量页面 (精简抓取对象)、通过 XML 站点地图标明重要页面 (引导抓取优先级)、用 robots.txt 屏蔽不必要的路径 (消除无效抓取)。