搜索抓取

抓取需求与抓取容量:蜘蛛来得勤,页面为什么还是没爬完

蜘蛛访问频繁,不等于页面会被爬完。抓取需求是站点暴露出的 URL 总量,抓取容量是搜索引擎愿意投入的抓取次数。本文讲怎么从日志判断瓶颈在哪一侧,以及从服务器稳定性、低价值 URL 精简、Sitemap 与内链结构几个方向做调整。

搜索抓取

抓取需求与抓取容量:蜘蛛来得勤,页面为什么还是没爬完

两个容易被混在一起的概念

很多站长看日志时会有一个疑问:蜘蛛每天都来,访问次数也不少,可站内还是有大片 URL 从来没被爬过。这种情况通常不是“蜘蛛没来”,而是抓取需求大于抓取容量。抓取需求指的是站点暴露给搜索引擎、希望被处理的 URL 总量;抓取容量指的是搜索引擎愿意分给你这个站点的抓取次数上限。两者不是一回事,站点规模、更新频率、服务器表现都会影响后者。

当需求长期超过容量时,表现就是:新页面发现得慢、老页面更新不及时、部分 URL 长期停留在“已发现未抓取”的状态。这时候单纯增加内链、多提交 Sitemap 未必有用,因为入口变多了,池子还是那么大。

先判断瓶颈在哪一侧

  • 偏向容量受限:日志里蜘蛛访问次数长期平稳甚至下降,抓取时段集中在少数几个小时,5xx、429、超时占比偏高,页面响应时间波动大。
  • 偏向需求过剩:蜘蛛来得勤、抓得也顺,但抓的多是筛选页、参数页、重复列表页,真正需要更新的内容页很少被碰。
  • 两者并存:常见于内容量大、模板生成页面多、服务器资源又比较紧张的站点。

判断方法不复杂:把一段时间内的日志按 URL 类型分组,看蜘蛛把抓取次数花在了哪几类页面上,再和 Sitemap 里你真正在意的地址做对照。差距出现的地方,基本就是问题所在。

扩容:让服务器先扛得住

抓取容量不是靠申请得来的,它更多是搜索引擎根据站点表现给出的结果。要让它往上走,最先要处理的是稳定性:

  • 减少 5xx 和超时。哪怕是高峰期的短暂报错,也会让蜘蛛放缓节奏。
  • 控制响应时间,避免同一批 URL 的响应时间忽快忽慢。
  • 少用多跳重定向,每一次跳转都占一次抓取名额。
  • 对蜘蛛的请求不要做过于严格的频率限制,误伤会把正常抓取挡在门外。

这些改完不一定立刻见效,但它们是容量能否提升的前提。

减需:把不值得爬的 URL 收起来

多数站点的抓取需求是虚高的。以下几类 URL 经常占掉大量名额,却几乎没有价值:

  1. 站内搜索结果页、多条件组合的筛选页。
  2. 排序、翻页参数产生的近似重复地址。
  3. 带追踪参数的分享链接、会话参数。
  4. 已经下线但仍在被内链指向的历史页面。

处理方式可以分轻重:能合并的做归一化,能收敛的用 robots 规则或页面级 noindex,能从内链里摘掉的尽量摘掉。Sitemap 只放你希望被处理、且确实有价值的地址,把它当成一份优先级清单,而不是把全站都塞进去。

内链结构决定抓取路径的效率

容量有限时,路径长短直接影响结果。蜘蛛从一个入口出发,跳转次数越多,能覆盖的 URL 越少。把重要栏目放在导航或首页的固定位置,让核心内容距离入口近一些;分类页、标签页之间建立清晰的上下级关系,避免大量互相指向的循环;列表页分页做成可走的链接序列,而不是只靠脚本加载。这些都是不增加服务器负担的调整。

抓取优化很少是单点问题。容量、需求、路径三者互相牵制,只调其中一项,往往看不到明显变化。

用一份简单的对照表跟踪效果

建议每周做一次对照:Sitemap 提交的 URL 数、日志里被实际爬到的 URL 数、其中内容页占比、平均响应时间、错误状态占比。几周下来的趋势比单日数据更有参考价值。如果被爬 URL 总数没变,但内容页占比上升,说明减需起效了;如果访问次数和响应时间同步改善,说明容量侧在恢复。

需要提醒的是,抓取节奏的调整由搜索引擎决定,站方能做的是把自己的部分做扎实:结构清楚、地址干净、服务器稳定。剩下的交给时间。