抓取预算(crawl budget)指的是搜索引擎蜘蛛在某个站点上愿意花掉的时间与请求数量。很多运营者把它理解成“每天固定来多少次”,但实际它由两股力量共同决定:搜索引擎一侧的爬行容量,以及站点一侧的爬行需求。前者受服务器承载能力影响,后者取决于站点有多少 URL、更新得有多快。
抓取预算不是一个固定配额
同一台服务器,蜘蛛可能上午来得密、晚上来得稀;页面多、更新快的站点被爬得更勤,几个月不动的站点被爬得越来越少。所以讨论抓取预算,关注点不是“今天来了几次”,而是“来的这些趟,时间花在了哪些 URL 上”。
另外要提醒的是,站点规模不大时这件事的优先级很低。几百个页面的站点,通常不会因为抓取预算不足而影响收录,真正拖后腿的往往是内容质量和内链结构。
什么情况下需要认真看这件事
- 站内 URL 数量进入万级甚至更多,抓取日志却只覆盖很小一部分目录;
- 重要页面发布或大改之后,过了很久才看到蜘蛛来访;
- 站内存在大量由筛选、排序、分页、追踪参数生成的 URL;
- 日志里同一个 URL 被反复抓取,内容却长期没有变化。
蜘蛛的时间通常被浪费在哪
一、低价值 URL 数量过多
筛选组合、排序方式、站内搜索结果页、没有边界的日历页,很容易生成成千上万个 URL。它们本身不一定有害,但会摊薄蜘蛛对整个站点的访问次数。可以先用 robots.txt 限制明显无意义的路径,或者用 canonical、noindex 做归并,把抓取集中到真正想被收录的页面上。
二、响应慢和连接不稳
蜘蛛有超时时间。页面响应慢、频繁超时或者返回 5xx,蜘蛛会主动降低访问频率,这是自我保护。不少“抓取量突然下降”的案例,根源在服务器而不在内容,先看监控里的响应时间,再谈其他优化。
三、重复抓取同一批 URL
如果 sitemap 里的 lastmod 每天都在变,而页面内容其实没动,等于在告诉蜘蛛这里有更新,几次之后可信度就会下降。同理,列表页每次刷新时间戳、页脚日期随渲染变化,也会带来无意义的重复抓取。
四、错误页面被反复指向
已经删除的页面如果还挂在导航或内链里,蜘蛛每来一次就会撞一次 404;返回 5xx 的页面如果一直留在 sitemap 中,也会被反复请求。这些请求不会带来任何收录收益。
怎么观察抓取预算的去向
- 把服务器日志按目录或页面模板分组,看蜘蛛请求集中在哪些部分;
- 统计状态码分布,200、301、404、5xx 各占多少;
- 对比抓取时间与页面实际更新时间,判断是否存在无效的重复抓取;
- 结合搜索后台的抓取统计,看趋势是持续下降还是短期波动。
能落地的几件事
- 减少 URL 数量:参数型 URL 能归并就归并,不能归并就挡掉,不留中间地带。
- 把重要页面放在浅层:从首页三到四次点击能到达,比深埋在目录里更有效。
- sitemap 保持干净:只放需要收录、返回 200 的 URL,lastmod 如实填写。
- 修掉死链和服务器错误:这两项修复成本低,收益直接。
- 提高响应速度:缓存、静态化、减少阻塞请求,都是为抓取让路。
需要区分的是:抓取量增加不等于收录量增加。通过外链或蜘蛛池等方式人为增加蜘蛛请求,如果页面本身质量不够,这些请求只会被浪费掉——蜘蛛来过,不等于页面会被留下。
抓取预算更像一项长期工程,短期内很难看到明显变化。比较稳妥的做法是:先观察一到两周的日志,找出请求最集中、收益最低的那部分 URL,处理掉它们,再观察抓取分布有没有向重要页面转移。