搜索抓取

蜘蛛多久重访一次:lastmod、Sitemap 与日志里的更新线索

页面更新后,蜘蛛并不会马上重访。本文从 lastmod、Sitemap、内链变化和访问日志入手,说明怎样给出可靠的更新信号、观察重访间隔,并在蜘蛛再次访问时保持服务器稳定,减少无效等待和反复抓取。

搜索抓取

蜘蛛多久重访一次:lastmod、Sitemap 与日志里的更新线索

很多站长会有一种错觉:页面内容改完,蜘蛛就应该马上再来抓一遍。实际不是这样。搜索引擎的抓取队列有自己的节奏,重访间隔取决于页面过去的更新频率、站点整体抓取情况、服务器响应,以及你有没有给出可信的“内容变了”的信号。

重访不是自动同步

蜘蛛第一次抓到页面后,会记录一个大概的抓取周期。如果这个页面长期不变,重访间隔可能拉长;如果它经常更新,间隔才可能缩短。这个过程是渐进的,不是开关。所以更新后没有立刻看到蜘蛛,并不等于站点出了问题。

更实际的做法是:先确认页面确实发布了,再检查有没有把更新信号传出去,最后从日志里看蜘蛛上一次来是什么时候、这次有没有来。

给蜘蛛一个可信的更新信号

lastmod 不要随手改

Sitemap 里的 lastmod 是常见的更新提示,但它只在“真实且稳定”时有意义。如果每次生成 Sitemap 都把全站时间改成当前时间,这个字段会失去参考价值,蜘蛛也可能不再认真对待它。只给当天确实改过内容的 URL 更新 lastmod,更稳妥。

Sitemap 保持可读、可抓

Sitemap 本身要能被正常访问,不要放在需要登录或频繁返回 5xx 的路径下。分片文件、索引文件、gzip 压缩都要按规范来。如果 Sitemap 里的 URL 和站内实际可访问地址不一致,蜘蛛按图索骥时也会多走弯路。

内链变化也是更新线索

除了 Sitemap,站内链接的变化也会影响蜘蛛的判断。当新页面被加入栏目页、相关推荐或导航,蜘蛛在抓取这些入口页时,就有机会发现新 URL 或重新访问旧 URL。反过来,如果新页面没有任何内链指向,只靠 Sitemap 提交,发现和重访都会慢一些。

内链不需要为了更新而频繁改动。把重要页面放在稳定的入口位置,比每天调整侧栏链接更有效。

从日志看重访间隔

与其猜蜘蛛多久来一次,不如看服务器日志。按 URL 过滤蜘蛛的访问记录,观察几个信息:

  • 同一 URL 最近几次被抓取的时间间隔;
  • 返回状态码是 200、304 还是 5xx;
  • 抓取时下载的字节数是否正常;
  • 是否只抓了入口页,没有继续深入。

如果日志里只有第一次访问,之后很长时间没有重访,可以回头检查页面是否被误设 noindex、内链是否被撤掉、Sitemap 是否还有效。如果重访很频繁但内容没变,则要考虑是不是 lastmod 或页面结构在制造无意义的更新信号。

重访时的服务器配合

蜘蛛重访时,服务器至少要能稳定返回。超时、连接重置、大量 5xx 都会让这次重访失败,甚至影响后续抓取节奏。需要留意的是:重访往往发生在你不盯着的时间段,所以监控要覆盖蜘蛛的常见 User-Agent,而不是只看自己的浏览器访问。

更新信号负责“告诉蜘蛛来看”,服务器稳定负责“让蜘蛛看得完”。两者缺一个,重访效果都会打折。

几个常见误区

  • 频繁手动提交 URL,却不更新页面内容;
  • 每次发文章都改全站 lastmod;
  • 只改标题,正文和内链没有实质变化;
  • 重访失败后不查服务器日志,只反复提交。

这些做法不会稳定加快重访,反而可能让抓取信号变得混乱。

小结

蜘蛛重访不是按你的发布时间表执行的。把 lastmod 写准、让 Sitemap 可抓、给新页面留好内链入口,再从日志里观察真实的重访间隔,通常比反复提交更有用。服务器稳定是底线,信号可信是加速器,两者配合,重访节奏才会逐步接近你的预期。