搜索抓取

Sitemap 里的 lastmod 与 changefreq:蜘蛛会读这些字段吗

Sitemap 中的 lastmod、changefreq、priority 经常被当成给蜘蛛的建议,但三者的实际分量差别很大。本文说明为什么 lastmod 值得认真维护、另外两个字段不必过度纠结,以及 Sitemap 与内链如何分工配合,并给出更新与核对的实用做法。

搜索抓取

Sitemap 里的 lastmod 与 changefreq:蜘蛛会读这些字段吗

Sitemap 是 URL 发现里最直接的一条通道,但它不只是一份地址清单。文件里的 lastmod、changefreq、priority 这几个字段,常被当成给蜘蛛的建议。实际使用中它们的权重差别很大,搞清楚这一点能省下不少无效维护。

三个字段的实际分量

在 Sitemap 协议里,只有 loc 是必填项,其余都是可选。蜘蛛对可选字段的处理并不一致:有的会参考,有的基本跳过。把精力平均分给三个字段,往往不如把 lastmod 做准。

  • lastmod:最可能被参考的字段,用来判断某个 URL 是否值得重新排进抓取队列。
  • changefreq:多数情况下被忽略,难以改变实际的回访节奏。
  • priority:同样基本不生效,站内页面的相对重要性主要由链接结构体现。

lastmod 要真实才有意义

lastmod 的价值建立在一个前提上:它反映的是页面内容的实际改动时间。如果每次生成 Sitemap 都把时间戳刷成当前时间,这个字段很快就会失去参考价值。

常见误区

  • 全站所有 URL 共用同一个时间戳,等于没有区分度。
  • 模板、导航或页脚改动,导致大量页面时间戳被动更新。
  • 列表页每次刷新就整批更新,但正文并没有实质变化。

更稳妥的做法是让 lastmod 跟随正文内容的变更,只有标题、正文或关键数据发生变化时才更新。时间格式统一用完整时间戳并带上时区,避免解析上的歧义。

把 lastmod 当作内容变更的记录,而不是 Sitemap 生成时间的记录,它对回访的参考价值才成立。

changefreq 与 priority 不必纠结

这两个字段可以保留,也可以删掉,不必为了填而填。与其在 priority 上给首页 1.0、栏目页 0.8 做精细分配,不如先检查首页和栏目页是否真的把这些地址放在可抓取的链接里。真正的抓取路径,还是由内链决定的。

Sitemap 与内链的分工

Sitemap 负责“告知存在”,内链负责“证明可达”。一个 URL 即使出现在 Sitemap 中,如果没有任何内链指向它,蜘蛛对它的抓取优先级通常会更低。反过来,内链层级太深的页面,即使不在 Sitemap 里,也仍可能被抓到。

  • 新发布的页面:同时补上内链和 Sitemap 记录。
  • 改版或合并的页面:及时更新 Sitemap,避免旧地址残留。
  • 已删除的页面:从 Sitemap 移除,并确认返回合适的 404 或 410。

更新与核对的做法

Sitemap 不需要频繁重写。内容有新增或实质修改时再更新即可,同时保持文件本身可访问、编码正确、体量在协议建议范围内。单文件过大时,用索引文件拆分。

想确认字段是否真的被参考,最直接的办法是对照服务器日志:挑一个刚更新过 lastmod 的 URL,看它在随后一段时间里有没有出现新的抓取请求。日志里没有变化,说明这条线索对当前站点影响有限,不必反复调整字段。

归根结底,Sitemap 的字段只是辅助信号。可抓取的内链、稳定的响应、真实的内容更新,才是决定蜘蛛是否会来的主要因素。