很多人做蜘蛛池时会有一个直觉:入口页铺得越多,蜘蛛爬得越多。实际跑一段时间后会发现,日志里的抓取量并没有随页面数量线性增长,有时候页面翻倍,抓取次数几乎没动。这里面起作用的就是抓取预算。
抓取预算到底是什么
抓取预算可以粗略理解为搜索引擎在某个时间段内,愿意在一个站点上花掉的抓取资源。它不是一个能查到的具体数字,而是配额和速率共同作用的结果。配额决定“这段时间最多抓多少页”,速率决定“每秒或每次访问能抓几页、间隔多久”。
入口页数量的增长,不等于抓取总量的增长;它改变的往往是预算的分配方式。
换句话说,蜘蛛对每个站点都有一个心理账户。账户里的额度是有限的,你铺的页面越多,单页能分到的份额越少。所以入口页规模不是越大越好,而是要跟实际可用的抓取资源匹配。
配额和速率分别受什么影响
配额
配额往往跟站点的历史表现有关:过去一段时间蜘蛛抓到的页面质量如何、有没有大量重复内容、返回码是否干净、有多少页面被判定为低价值。一个长期被抓、错误率低、页面之间有明显差异的站点,额度会更宽松;一个三天两头 5xx、页面高度雷同的站点,额度会被压缩。
速率
速率更多取决于服务器表现。响应慢、超时频繁,蜘蛛会主动降速;响应稳定且快,蜘蛛可能提高并发。这也是为什么入口页的响应时间和抓取量经常是连在一起的。
几个容易踩的误区
- 用入口页数量换抓取量。页面是预算的分母,不是分子。铺得太多,单页分到的机会反而更少。
- 链接全埋在最深层。蜘蛛按深度优先消耗预算,第一层就点不完的时候,第五层的链接可能长期不被访问。
- 让重定向和错误页吃掉预算。每次 301、302、404、503 都要花一次抓取机会,链路里错误多了,真正目标页能被爬到的次数就少了。
- 频繁改 URL。改一次结构,蜘蛛就要重新发现一遍,等于把预算花在重复劳动上。
实操上可以怎么调整
- 把入口页数量控制在与实际抓取能力相符的范围内,先把已经能被稳定抓取的页做扎实,再考虑扩量。
- 重要链接尽量放在浅层,导航区、正文区优先于页脚和折叠区域。
- 减少重复:同一目标 URL 不要用多个入口地址去指向,参数、大小写、斜杠变体统一掉。
- 把响应时间压下来,减少 5xx 和超时,让速率不被拖累。
- 死链和软 404 定期清理,别让蜘蛛持续在无效地址上花时间。
怎么判断预算有没有用对
可以看日志里的几个方向:同一蜘蛛对入口页的平均访问间隔、单次访问覆盖的深度、返回码分布,以及被反复抓取的是哪些 URL。如果发现大量抓取都落在几个固定页面或错误地址上,说明预算分配有问题;如果抓取分布比较均匀且逐步向目标页推进,说明链路方向是对的。
需要说明的是,抓取预算只影响蜘蛛“愿不愿意来、来多少”,跟收录、排名没有直接因果关系。它更像是一个效率问题:让有限的抓取次数尽量花在有意义的 URL 上,而不是散在无效地址里。把这一层理顺,后面的工作才有基础。