搜索抓取

蜘蛛多久回来看一次:重访节奏由哪些信号决定

新页面多久被抓、老页面多久被重访,是很多站长关心的两个数字。它们并不取决于你发布的频率,而取决于站点整体抓取预算、页面在站内的位置、历史响应质量以及内容变更信号。本文拆解影响重访间隔的几个变量,说明 lastmod、304 与缓存信号该怎么用,以及如何借助日志判断重访是否处于正常状态。

搜索抓取

蜘蛛多久回来看一次:重访节奏由哪些信号决定

很多站长关心两个数字:新页面多久被抓,老页面多久被再抓一次。前者取决于 URL 的发现渠道,后者取决于蜘蛛对你这个站点的历史印象和页面的变化信号。它不是一个固定周期,也不是发布内容之后必然发生的动作。

重访间隔不是按你的更新频率走的

你可能每天更新,但蜘蛛仍然可能几天才回来一次;也可能你半年不动,它每周都来扫一遍。这背后是抓取配额的分配问题——站点总量、响应速度、历史抓取收益都会影响分配结果。对一个更新频繁但内容重复度高的站点,蜘蛛通常会自然降低单位时间内的抓取量。

换句话说,重访节奏是蜘蛛根据历史经验给出的估值,而不是你单方面声明的频率。

影响重访的几个变量

  • 站点整体抓取配额与服务器响应质量,包括首字节时间、超时率、错误比例
  • 页面在站内的地位:内链数量、所处层级、是否被重要入口引用
  • 历史响应状态:长期稳定返回 200,还是频繁出现 5xx、跳转或空结果
  • 内容变更的幅度:整段替换和改几个错别字,释放的信号强度并不相同
  • 页面自带的更新信号:Last-Modified、ETag、结构化数据中的时间字段

lastmod 要经得起核对

Sitemap 里的 lastmod 是一个常见误区。有人每次生成 Sitemap 就把所有 URL 的 lastmod 刷成当前时间,短期或许能看到蜘蛛来得勤一点,但它很快会发现每次都变、内容却没变,于是这个字段的参考价值被削弱。更稳妥的做法是让 lastmod 反映真实的实质变更时间,只对确实改动过的 URL 更新。

一个不准确的 lastmod,比没有 lastmod 更容易消耗信任。

服务器端的没变信号

当蜘蛛带着 If-Modified-Since 或 If-None-Match 来请求时,如果你的服务器能正确返回 304,蜘蛛就知道页面没有变化,可以省下一次完整下载。反过来,如果服务器总是返回完整 200 和全量 HTML,即使内容一模一样,也会占用更多带宽与抓取配额。缓存层、CDN 回源配置如果处理不当,可能让本可以 304 的请求变成 200 全量返回。

频繁小改动未必更快被再抓

有些运营习惯每隔几小时微调一次标题、加一个标点,希望触发重抓。这会让变更信号变得廉价。相比十次无意义改动,一次实质性的段落增补、数据更新或结构完善,更容易被判定为值得重新抓取。在更新频率和内容质量之间,蜘蛛更看重后者。

怎么判断重访是否正常

  1. 在服务器日志里按 URL 统计蜘蛛请求的时间间隔,观察核心页面的平均重访周期
  2. 对比 Sitemap 中提交的 URL 数量与日志中实际被访问的 URL 数量
  3. 观察新发布页面从被发现到再次被抓之间的时间差,是在缩小还是拉长
  4. 关注 304 与 200 的比例,比例异常偏低说明条件请求和缓存没有用好
  5. 结合抓取状态码分布,看是否有大量跳转或错误在消耗配额

小结

重访节奏是结果,不是开关。把服务器响应做稳、把内链结构做清楚、把 lastmod 和缓存信号做真实,蜘蛛自然会用更合理的频率回来。反过来,靠刷新时间戳去催,短期可能有一点动静,长期只会让这些信号失真。