抓取预算不是一个固定额度
经常能看到这样的说法:搜索引擎给每个站点每天分配固定条数的抓取额度,用完就没了。这个理解不太准确。更接近事实的说法是,爬虫在你的站点上愿意投入多少时间,是一个根据结果算出来的量,涉及服务器响应速度、站点规模、内容更新频率、历史抓取的有效性以及服务器承受能力。它不是被发给你的配额,而是抓取效率的体现。
这也意味着,没有什么操作能直接“申请更多”。能调整的只有两端:让服务器这边少一些摩擦,让不值得抓的 URL 少占路径。
抓取被浪费时,日志里通常有这些信号
如果服务器日志里长期出现下面几种情况,说明抓取时间没有花在有效页面上:
- 大量带参数、排序、筛选条件的 URL 被反复抓取,内容与主列表高度相似;
- 404、410 以及跳转链很长的老 URL 仍在被持续访问;
- 同一篇内容有多个版本,爬虫在几个地址之间来回抓;
- 真正会更新、有价值的页面,反而隔很久才被抓一次;
- 目录页、标签页、归档页的数量远超内容页。
这些现象不一定立刻让收录出问题,但它们会持续消耗爬虫愿意花在站内的时间。
把站内 URL 分成三类来对待
与其笼统地说“优化抓取”,不如先把 URL 按优先级排队:
- 需要及时抓取的:新发布的内容页、会持续更新的核心页面、承担入口作用的栏目页。这些页面要保证内链可达、返回 200、正文在初始 HTML 里能读到。
- 可以慢慢抓的:时间较早、更新少但仍然有效的文章。不需要额外推动,保证内链不断即可。
- 尽量少抓的:站内搜索结果页、多重参数组合页、没有独立价值的标签页、空列表页。处理方式可以是规范到主列表、加 noindex、限制参数组合的可抓取范围,具体看这些页面是否还有流量价值。
分完之后再回头看日志,判断会和之前很不一样。
降低每一次抓取的成本
同样的抓取时间,单次成本越低,能覆盖的 URL 越多。可以检查这几项:
- 服务器响应时间是否稳定,尤其是数据库查询较重的列表页;
- HTML 体积是否过大,首屏之前是否堆了大量无关脚本和样式;
- 正文是否依赖 JavaScript 渲染,抓取到的 HTML 里能否直接看到主体内容;
- 重定向链是否过长,站内跳转能否一步到位;
- 资源文件是否被误拦,导致页面渲染不完整。
几个容易走反方向的操作
为了“省抓取”用 robots.txt 屏蔽大量目录,结果重要页面里的图片、脚本被一起挡住,页面渲染不完整;或者为了“多抓”,把站内所有参数页都放进站点地图,反而让爬虫把时间花在重复内容上。两个方向都会让抓取变得更低效。
调整之后怎么判断有没有效果
不用等很久,可以按周对比日志里的几个指标:重要 URL 的平均抓取间隔是否缩短、新 URL 从发布到首次被抓的时间是否下降、无效 URL 在抓取总量里的占比是否减少。同时对照索引覆盖报告,看被排除的页面类型有没有变化。
最后要提醒一点:抓取和收录是两件不同的事。抓取变得频繁,只能说明爬虫更愿意来了,不代表页面就会进入索引。如果页面本身内容质量、重复度或规范声明存在问题,抓取再顺畅,也仍然会在索引这一步被挡下来。