抓取预算不是后台能调的参数
搜索引擎没有对外公布每个站点每天能抓多少页的具体数字,但从服务器日志里往往能看出规律:同一批爬虫每天的访问次数大致稳定,且集中在少数几类 URL 上。当站点的可抓页面数量远大于爬虫愿意访问的数量时,能分到每个页面的访问次数就变成了一种有限资源。我们平时说的“抓取预算”,指的就是这个现象,而不是某个可以手动调大的开关。它通常由三件事决定:站点的 URL 总量、服务器响应速度,以及这些 URL 在站内被链接和被引用的程度。
先确认预算是不是真的被浪费了
不要一上来就改结构,先拉一段时间的日志,做几组简单的统计:
- 爬虫访问量按目录分组,看前十个目录占了多大比例;
- 统计返回码分布,200、304、404、301、5xx 各占多少;
- 看同一批 URL 是否被反复抓取,而新发布的页面长期没有访问记录;
- 记录响应时间,找出平均耗时最高的那批 URL。
如果统计结果是你想要收录的栏目页和文章页几乎没有访问记录,而一堆参数页、筛选页、空结果页天天被爬,那问题基本可以确认。
三个容易误读的信号
- 访问次数多不代表抓得对:大量请求全落在同一个列表的翻页上,等于没有覆盖新内容。
- 304 多不是坏事:协商缓存能省带宽,但如果连内容已经更新的页面也长期返回 304,就要检查缓存设置。
- 新站访问少是正常的:站点刚上线、外链少、历史数据为空时,爬虫频率天然偏低,这属于观察期,不必急着做激进改动。
常见的几类“吞预算”来源
参数与筛选组合
排序、筛选、追踪参数很容易组合出成倍增长的 URL。它们大多内容相似,却每一个都能被爬虫单独发现。处理方式通常是:能合并的合并到规范 URL,需要挡住抓取的用 robots.txt 处理,已经进过索引的页面加 noindex 让它慢慢退出。
站内重复入口
同一个页面从五个位置被链接,爬虫可能会走五遍。更麻烦的是同一篇内容有多个可访问 URL。这类情况优先统一内链指向,让一个规范版本成为主要入口。
响应慢与重定向链
一个页面如果响应要好几秒,爬虫在同一时间段内能访问的数量就会明显下降。多级跳转、先跳 http 再跳 https、带尾斜杠再跳一次,都会额外消耗一次请求。把跳转压到一跳、把慢接口换成静态缓存,往往比改结构见效更快。
空结果页和软 404
返回 200 却没有实质内容的页面,既占抓取次数,也容易进索引。能返回 404 的就返回,不能返回的至少加 noindex,并取消站内入口。
把预算引到重要页面:按顺序做
- 提高服务器响应速度,先解决超时和 5xx,这是所有后续动作的前提。
- 收敛内链,让栏目页和核心文章页从首页少数几次点击就能到达,减少不必要的链接出口。
- 清理无效入口,把筛选组合、空结果页、重复 URL 从导航和列表里摘掉。
- 用站点地图补齐,把重要但内链较弱的页面列进 sitemap,并保证里面的 URL 都能正常返回 200。
- 观察两到四周,再对比日志分布,看抓取是否开始向目标目录倾斜。
把抓取预算理解成“注意力”更贴切:你无法命令爬虫来,但可以决定它来了之后,有多少条路通向有用的页面。
抓取变多不等于收录变多
就算爬虫开始频繁访问目标页面,也不代表这些页面会立刻进入索引。抓取只是发现和读取,是否收录还要看内容是否有独立价值、是否与已有页面高度相似,以及页面本身的质量。把预算优化好,解决的是“被看见”的问题;“被收录”这一步,仍然要回到内容本身去处理。这两件事分开看,排查时才不容易走错方向。