指南 · sitemap

sitemap 的 lastmod 怎么写才可信?

更新于 2026-11-05 · kagentx

短答案

lastmod 要写页面内容真正改变的时间:正文、结构化数据或链接有变化才更新。Google 只在 lastmod 持续且可验证地准确时才用它,Bing 明确说不能是 sitemap 的生成时间。不要用文件修改时间、不要对整页 HTML 算指纹、不要全站用同一个日期。可行的做法是只对页面「说的内容」取指纹,指纹变了才记新时间,MochiStamp 就是这样做的。

lastmod 写什么才算可信?

lastmod 要写页面内容真正改变的时间。Google 的 sitemap 文档(2026-11 核对)写得很具体:只有当 lastmod 「持续且可验证地准确」,Google 才会使用它;它应该反映页面最近一次重要更新,重要更新指正文、结构化数据或链接有变化,改一下页脚的版权年份不算。

Bing 在 2025-07-31 的网站管理员博客里也说了同样的意思:lastmod 是它决定要不要重新抓取的关键信号,应反映页面内容真实的最后修改时间,而不是 sitemap 的生成时间,格式建议用带时间的 ISO 8601。这篇博客还写到,新鲜度信号会影响更新多快反映在搜索结果和 AI 生成的回答里。

另外,Google 的文档写明它忽略 priority 和 changefreq,不用在这两项上花时间。OpenAI 和 Perplexity 的爬虫文档页没有提到 sitemap 或 lastmod,所以对这两家我们不写有没有用。

哪几种 lastmod 的写法不可信?

写法问题
用文件的修改时间部署常常从干净的代码副本构建,每个文件的时间都是部署那一刻,所有页面一起「更新」。
用 sitemap 生成的时间Bing 的博客明确说不应该是生成时间;每次生成都变,等于没写。
对整页 HTML 算指纹只给按钮加一个统计用的属性,或者改了样式,就让一大批页面都算改过。
全站用同一个日期没有变化的页面也带着新日期,爬虫没法用它挑出真正变了的页面。

一个真实的做法:MochiStamp 按页面「说的内容」算指纹

MochiStamp 的 sitemap(mochistamp.com/sitemap.xml,2026-11-05 读取)有 229 个网址,每个都带精确到秒、带时区的 lastmod,日期分散在 2026-10-16 到 2026-11-05 之间,不是同一个日期。做法是:

  1. 指纹只看页面说了什么

    对每个页面取:标题、描述、主体内容 main 里的文字、main 里链接和图片指向的地址、图片的 alt 文字。样式、class、统计用的 data 属性和脚本都不算。

  2. 页头、页脚和语言栏不算

    它们每个页面都一样。页脚里加了一个新页面的链接,不应该让所有其他页面都显得更新过。

  3. 指纹变了才记新时间

    数据库为每个网址保存指纹和第一次看到这个指纹的时间。指纹没变,lastmod 不动;变了,记当时的时间。

  4. 历史日期不是「现在」

    刚开始记录时,数据库里什么都没有。他们把之前每一次上线重放一遍,每个页面记成「内容最后一次变化的那次上线」的时间,而不是第一次记录的那天。

这个做法经历过一次修正,记录在项目日志里(2026-10-30):第一版指纹包含整页 HTML,结果有一次上线只给按钮加了一个统计用的属性,就让 119 个页面都算改过。改成只看内容之后,同样的改动不再改变任何页面的时间。

对比 Pagent(pagent.kagentx.com/sitemap.xml,2026-11-05 读取):81 个网址的 lastmod 全是 2026-10-27,只有日期、没有时间,全站同一个值,取自数据更新的日期。这对一个整站同时更新的小站不算错,但爬虫没法靠它判断哪几页是真的新了。

怎么给自己的网站做可信的 lastmod?

  1. 1. 先确定「什么算页面变了」

    正文、标题、描述、结构化数据、链接算;样式、脚本、页脚版权年份、统计属性不算。这条线要写下来,别人改代码时才不会随手破坏它。

  2. 2. 对「算数的内容」取指纹,不取整页

    构建时把算数的部分抽出来,做一个哈希。页头页脚这类每页都一样的部分不放进去。

  3. 3. 指纹变了才更新时间,并存起来

    把每个网址的指纹和时间存进文件或数据库。重新部署时先比对:没变就沿用旧时间。不要用文件时间。

  4. 4. 输出带时间和时区的 ISO 8601

    像下面这样。Google 的文档示例只写日期,Bing 建议带时间,写完整的更稳:

    <url>
      <loc>https://example.com/pricing/</loc>
      <lastmod>2026-11-05T00:27:22+09:00</lastmod>
    </url>
  5. 5. 上线后抽查

    打开线上的 sitemap.xml,挑几个这次没改的页面,看日期有没有被带动;再挑一个刚改的,看日期是不是新的。

  6. 6. 需要时再通知搜索引擎

    lastmod 管的是搜索引擎再来抓取时的判断;想让 Bing 等引擎更快知道,见 IndexNow 是什么。

lastmod 写得再准,也要爬虫进得来、正文能读到才有意义,这两件事见 AI 可见度审计清单。

常见问题

lastmod 能让我的页面更快被 AI 引用吗?

没有保证。Bing 说 lastmod 是它决定重新抓取的关键信号,新鲜度会影响更新反映到搜索结果和 AI 回答的速度;OpenAI 和 Perplexity 的爬虫文档没有提到 sitemap 或 lastmod。

lastmod 可以用文件的修改时间吗?

不建议。部署从干净副本构建时,所有文件的时间都是部署那一刻,每个页面都会看起来刚更新过。应该记页面内容真正变化的时间。

改一下页脚的版权年份要更新 lastmod 吗?

不要。Google 的文档写明,重要更新指正文、结构化数据或链接的变化,改版权年份不算。

priority 和 changefreq 还要写吗?

不用。Google 的文档写明它忽略这两个值。

lastmod 写日期还是写时间?

Google 的示例只有日期;Bing 的博客建议带时间的 ISO 8601。写带时区的完整时间两边都合适,前提是它真的是页面最后一次变化的时间。

出处

kagentx

你的页面,爬虫读得到吗?
让评测告诉你

评测检查爬虫能不能进、正文是否直出,再把买家的问题拿去问 ChatGPT、Perplexity、Claude(开联网搜索),看有没有提到你。基础版 $1,一般 2–3 分钟出结果。