搜索抓取

Sitemap 里的 lastmod 和 changefreq:蜘蛛到底看不看

Sitemap 中的 lastmod 和 changefreq 常被当成抓取频率开关,但蜘蛛对两者的参考程度不同。lastmod 准确时有帮助,乱填反而消耗信任;changefreq 基本被忽略。本文说明这两个字段的实际作用,以及蜘蛛重新抓取时更在意哪些因素。

搜索抓取

Sitemap 里的 lastmod 和 changefreq:蜘蛛到底看不看

Sitemap 文件里有两个字段经常被讨论:lastmod 和 changefreq。不少站长会花时间逐条填写,甚至每天手动刷新 lastmod,希望蜘蛛因此更频繁地来访。这两个字段确实有各自的位置,但蜘蛛对它们的依赖程度并不相同。

lastmod:蜘蛛会看,但不会全信

lastmod 表示页面内容的最后修改时间。蜘蛛在安排二次抓取时,会把 lastmod 当作一个参考信号。如果某个 URL 的 lastmod 比上次抓取时更新了,蜘蛛更有可能把它排进下一轮队列。但它不是命令,蜘蛛还会结合页面历史更新频率、内链变化、站点整体权重等因素做判断。

准确的 lastmod 有实际帮助

如果站点能稳定输出真实的修改时间,比如文章发布时间、产品信息变更时间,那么 lastmod 可以帮助蜘蛛快速识别哪些页面值得重新访问。对于更新频繁的栏目,这个信号尤其有用。格式建议使用 ISO 8601,例如 2025-03-21T10:00:00+08:00,并保持时区一致。

随意更新 lastmod 会带来反效果

有些做法是每次生成 Sitemap 就把所有 URL 的 lastmod 改成当前时间。蜘蛛如果多次发现“页面内容没变但 lastmod 天天变”,会逐渐降低对这个信号的信任。更糟的是,它可能把抓取配额浪费在实际上没变化的页面上,反而让真正更新的页面排队更久。

changefreq:基本可以忽略

changefreq 用来告诉蜘蛛页面大概多久更新一次,可选值包括 always、hourly、daily、weekly、monthly、yearly、never。早期搜索引擎确实参考过它,但主流搜索引擎已经公开表示不再依赖这个字段。现在它更像一个给站长自己看的注释,蜘蛛不会因为写了 daily 就每天来抓。

如果你仍然想填,建议保持合理。比如新闻列表页可以写 daily 或 hourly,关于我们页面写 yearly 或 never。但不要指望它改变抓取节奏。把精力放在真实更新和内链结构上更有意义。

蜘蛛决定重新抓取时,真正在意什么

lastmod 和 changefreq 只是 Sitemap 里的辅助信息。蜘蛛安排抓取时,通常还会看这些方面:

  • 页面重要性:首页、栏目页、被内链频繁指向的页面,通常会被更频繁地回访。
  • 更新历史:一个页面过去是否经常变化,变化后内容是否有实质差异。
  • 内链变化:如果某个 URL 突然被多个页面链接,蜘蛛会更快发现它。
  • 服务器响应:响应速度稳定、状态码正常的站点,蜘蛛抓取更顺畅。
  • 站点整体质量:低质内容过多、大量重复页面会拖慢整体抓取节奏。

怎么设置更合理

  1. lastmod 只写真实修改时间,不要因为重新生成 Sitemap 就全部刷新。
  2. 如果程序无法准确输出 lastmod,宁可留空,也不要乱填。
  3. changefreq 可以省略,或者按页面实际更新频率填写,但不要当作优化手段。
  4. priority 同样只是一个提示,蜘蛛不会因为它调高某个 URL 的抓取优先级。
  5. 把 Sitemap 当作 URL 清单来维护,确保里面都是希望被发现的规范 URL。
Sitemap 是给蜘蛛的路线参考,不是抓取频率的开关。字段填得再勤,也不如页面本身有更新、内链结构清晰、服务器稳定来得实在。

回到最初的问题:蜘蛛看不看 lastmod 和 changefreq?简单说,lastmod 会看,但前提是它准确可信;changefreq 基本不看。与其纠结这两个字段,不如定期检查 Sitemap 里有没有过期链接、重复 URL,以及重要页面是否被内链指向。这些基础工作对蜘蛛发现和重新抓取的影响,通常比字段本身更直接。