搜索抓取

蜘蛛再来一次的理由:页面更新信号怎么影响抓取频次

蜘蛛再次抓取一个 URL 的间隔并非固定,而是由站点更新节奏、页面变化信号和服务器稳定性共同决定。本文拆解 Last-Modified、ETag、内容变化幅度等判断依据,列出几种常见误判情形,帮助站长把抓取节奏维持在正常区间。

搜索抓取

蜘蛛再来一次的理由:页面更新信号怎么影响抓取频次

抓取不是一次性动作。蜘蛛抓过一个 URL,只是把它放进了已有的地图里,之后还会按自己的节奏回来看看。这个“回来”的频率,从站点这侧能感知到的就是日志里同一个路径的访问间隔变长或变短。它不是固定值,也不是提交一次 Sitemap 就锁定的东西,而是根据站点和页面给出的信号不断调整的结果。

再访判断看两个层面

一个是站点层面:整站更新的速度、新增 URL 的数量、历史抓取的稳定程度。另一个是页面层面:这个具体地址在上次抓取之后有没有变化、变化是否可识别。两层信号叠加之后,才形成下一次抓取的时间安排。

站点层面的节奏信号

  • 更新是否持续:一个每天都有新内容的站点,和一个几个月不动一次的站点,再访频率的起点本来就不一样。
  • 新增速度是否平稳:短时间内涌入大量新 URL,会让抓取容量被摊薄,单个页面的再访间隔可能被拉长。
  • 抓取是否顺利:大量超时、5xx、连接中断,会让蜘蛛放慢对整站的访问节奏,而不只是那一个出问题的 URL。

页面层面的变化信号

页面有没有变,需要服务器给出可判断的依据,否则蜘蛛只能靠重新下载全文来对比。

HTTP 头里的更新时间

Last-Modified 和 ETag 是成本最低的信号。前者给出内容最后修改时间,后者给出内容版本标识。如果这两个值长期不变,蜘蛛就没有理由频繁回访;如果每次请求都返回当前时间,这个信号就失去了意义,反而容易被忽略。

内容变化的幅度

价格、库存、列表页排序这类局部变化,和正文主体改写、新增段落,在判断上并不等价。变化越集中在页面主体,越容易被认定为一次有意义的更新。

几种常见误判

  • 只更新页脚的年份或“最近更新时间”字段,正文没动。
  • 页面由 JavaScript 渲染,每次抓取看到的结构都不同,或者首屏内容为空。
  • 同一 URL 每次请求返回随机推荐位、随机排序,导致内容指纹持续变动。
  • 把更新时间统一写成当天,哪怕内容没有任何修改。
  • URL 频繁变换,旧地址跳转到新地址又改回来,信号互相抵消。

让信号更接近真实情况

  1. 内容真正改动时再更新 Last-Modified,不要为了看起来活跃而刷时间。
  2. Sitemap 里的 lastmod 与实际更新时间保持一致,改了才写。
  3. 保持 URL 稳定,改版时用跳转收口,而不是让新旧地址长期并存。
  4. 新增内容后,从已被抓取的页面加内链指向它,给蜘蛛一条能走到的路。
  5. 让首屏就有可读的主体内容,不要让蜘蛛面对一个空壳再等渲染。

别忽略服务器稳定性

再访频率的高低,最终还是建立在能不能稳定接到蜘蛛上。响应慢、间歇性 5xx、连接被重置,都会让蜘蛛降低对整站的访问意愿。相比之下,一个内容更新不多但响应稳定、状态码干净的站点,往往更容易维持正常的抓取节奏。

抓取频次不是可以单独调高调低的开关,它是站点更新节奏、页面变化信号和服务器稳定性共同作用的结果。把这三件事做扎实,比反复提交地址更有意义。

最后提醒一句:不要用内容质量之外的技巧去暗示更新,也不要期待某个操作能立刻改变抓取节奏。观察日志里同一路径的间隔变化,比反复猜测更可靠。