很多站长关心两个数字:新页面多久被抓,老页面多久被再抓一次。前者取决于 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 全量返回。
频繁小改动未必更快被再抓
有些运营习惯每隔几小时微调一次标题、加一个标点,希望触发重抓。这会让变更信号变得廉价。相比十次无意义改动,一次实质性的段落增补、数据更新或结构完善,更容易被判定为值得重新抓取。在更新频率和内容质量之间,蜘蛛更看重后者。
怎么判断重访是否正常
- 在服务器日志里按 URL 统计蜘蛛请求的时间间隔,观察核心页面的平均重访周期
- 对比 Sitemap 中提交的 URL 数量与日志中实际被访问的 URL 数量
- 观察新发布页面从被发现到再次被抓之间的时间差,是在缩小还是拉长
- 关注 304 与 200 的比例,比例异常偏低说明条件请求和缓存没有用好
- 结合抓取状态码分布,看是否有大量跳转或错误在消耗配额
小结
重访节奏是结果,不是开关。把服务器响应做稳、把内链结构做清楚、把 lastmod 和缓存信号做真实,蜘蛛自然会用更合理的频率回来。反过来,靠刷新时间戳去催,短期可能有一点动静,长期只会让这些信号失真。