抓取预算不是配额,而是有限的来访机会
搜索引擎对每个站点的抓取强度会动态调整,站点能拿到的抓取次数并没有公开的固定上限。但在某一段固定时间里,搜索蜘蛛愿意花在这个站点上的请求数是有限的:它多抓一次筛选参数页,就可能少抓一次刚上线的详情页。所谓“抓取预算”,更实用的理解是——在同样多的来访次数里,哪些 URL 更值得被访问。
这个话题容易讲成玄学,但它其实是可以用日志算出来的。做法不复杂:把一段时间的抓取记录按 URL 模板聚合,看清楚次数分给了谁。
先做分类统计,再谈优化
日志里至少要落这几列
- 请求时间与抓取耗时
- 完整 URL,包含查询参数
- 返回状态码与响应字节数
- User-Agent 与来源 IP 段
- Referer,用于判断是哪个入口把蜘蛛带进来的
多数站点按天导出即可,再按 URL 模板做聚合,就能看到分布。
分类口径建议分两层
第一层按用途分:有内容价值的页面、分页与归档、静态资源、接口与跳转类 URL。第二层按模板分:详情页、列表页、筛选组合页、附件页等。两层交叉后,通常一眼就能看出哪一类占了大头。
几类常见的“高消耗、低回报”入口
筛选与排序参数
多选筛选很容易组合出成百上千条 URL,内容却与主列表高度重叠。这类地址如果被大量抓取,回报往往很低。常见处理是给主列表保留一条规范地址,筛选结果通过 robots 拦截或在前端改为不产生独立 URL 的交互。
静态资源是否放行
现代搜索引擎需要抓取 CSS 与 JS 才能理解渲染后的页面,全部拦截反而可能影响它对页面内容的判断。比较稳妥的做法是保留主样式与主脚本,把构建产物、带版本哈希的副本、临时文件挡在外面。
低价值分页与无限归档
深翻分页和按日期自动生成的归档页,越往后内容越稀薄。可以限制分页可翻的深度,归档页只保留按月入口,避免让蜘蛛顺着“下一页”一路走下去。
同一内容的多条路径
带追踪参数、大小写变体、尾斜杠差异的地址,如果都能返回 200,就等于把抓取次数摊薄在同一个页面上。这类问题通常用规范链接配合服务端归一化处理更省事。
处理顺序:先止血,再回收
- 先确认异常抓取是不是来自镜像站或采集行为,排除误判再动手。
- 对确认无价值的模板做收敛:统一入口、关闭内部链接、必要时用 robots 拦截,或让地址返回合适的状态码。
- 保留一段观察期,通常两到四周,看详情页的抓取次数是否回升。
- 如果抓取总量上升而有效页面占比没变,说明拦掉的部分被别的模板补上了,需要回到第一步重新分类。
收敛之后怎么验证
- 看有效页面(有内容、需要被收录的页面)抓取次数占全部来访的比例,而不是只看总次数。
- 看新发布页面从上线到第一次被抓的间隔有没有缩短。
- 看抓取耗时和 5xx 比例,服务器变慢时,抓取频率往往是最先受影响的指标。
抓取频次的变化通常滞后于改动,按周对比比按天对比更可靠。不要因为一两天没动静就反复调整,那样只会让日志变得难以解读。