抓取预算(crawl budget)不是一个能在后台直接看到的数字,而是蜘蛛在一段时间内愿意花在一个站点上的访问次数。它受站点体量和蜘蛛自身判断共同影响:小站可能一天只有几十次,大站可能上万次。理解这点,才能解释为什么有些页面提交很久仍没被抓,而有些没提交的页面反倒被翻了出来。
先分清抓取和收录
抓取是蜘蛛取回 URL、拿到 HTML;收录是内容进入索引、能被搜到。抓取是收录的前置条件,但抓完不收录很常见:内容单薄、重复度高、页面价值不足,都可能让它在索引阶段被过滤。反过来,页面被收录过,也不代表以后不会被移除。
所以排查要分两层:抓不到,先解决发现路径与访问问题;抓到了不收录,再看内容质量和规范设置。把两件事混在一起看,很容易得出错误结论。
抓取预算主要被什么消耗掉
- 参数组合生成的筛选页、排序页、无限列表页
- 已下架或删除、但站内仍有链接指向的地址,返回 404 或空壳 200
- 重定向链,一次跳转就是额外一次抓取请求
- 层级很深的归档和分页,蜘蛛顺着爬到底
- 同一内容的多套 URL,例如大小写不同、带不带结尾斜杠、附带追踪参数
- CSS、JS 等静态资源,这类抓取通常占比不高,但小站也值得留意
哪些 URL 值得优先占用抓取机会
优先保留
- 首页和核心栏目页
- 主要的详情页、内容页
- 更新频繁的列表第一页
- 站点地图中标注的规范地址
可以放低
- 纯排序、纯筛选产生的参数页
- 带会话 ID 或追踪码的临时地址
- 长期不更新、位于深层归档的页面
- 内容几乎相同的多版本地址
“放低”不等于完全不管。可以用 robots.txt 屏蔽部分参数、减少无效内链、用 canonical 指明规范版本,目的是把有限的访问次数集中到真正希望被收录的地址上。
自查预算有没有被浪费
- 拉一段时间的蜘蛛日志,按状态码统计:200 占多少,3xx、404、5xx 各占多少。
- 看被抓的 URL 里,多少是你希望收录的,多少是参数组合或历史遗留地址。
- 把站点地图里的 URL 列表和实际被抓列表对照,看覆盖差距在哪。
- 检查内链:从首页到重要页面需要点几步,有没有完全没有入口的页面。
- 看响应速度。服务器慢,单位时间内能完成的抓取次数就会下降,等于间接压缩了预算。
几个容易走偏的想法
一是把提交量当成抓取量,以为提交得多就抓得多;二是为了追求收录数量批量制造参数页,结果预算被稀释,主力页面反而更新变慢;三是只看收录总数,不看被抓的页面里有多少是有用的。
抓取预算的作用是描述现状,不是可以随手调大的开关。真正能改的,通常是减少无效 URL、缩短内链路径、提升响应速度这几件事,而且都需要时间才能看出效果。
抓取预算解决的是“蜘蛛愿不愿意来、来得多不多”,收录还取决于页面本身值不值得留在索引里。两件事分开看,排查会清楚很多。