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 之间,不是同一个日期。做法是:
指纹只看页面说了什么
对每个页面取:标题、描述、主体内容 main 里的文字、main 里链接和图片指向的地址、图片的 alt 文字。样式、class、统计用的 data 属性和脚本都不算。
页头、页脚和语言栏不算
它们每个页面都一样。页脚里加了一个新页面的链接,不应该让所有其他页面都显得更新过。
指纹变了才记新时间
数据库为每个网址保存指纹和第一次看到这个指纹的时间。指纹没变,lastmod 不动;变了,记当时的时间。
历史日期不是「现在」
刚开始记录时,数据库里什么都没有。他们把之前每一次上线重放一遍,每个页面记成「内容最后一次变化的那次上线」的时间,而不是第一次记录的那天。
这个做法经历过一次修正,记录在项目日志里(2026-10-30):第一版指纹包含整页 HTML,结果有一次上线只给按钮加了一个统计用的属性,就让 119 个页面都算改过。改成只看内容之后,同样的改动不再改变任何页面的时间。
对比 Pagent(pagent.kagentx.com/sitemap.xml,2026-11-05 读取):81 个网址的 lastmod 全是 2026-10-27,只有日期、没有时间,全站同一个值,取自数据更新的日期。这对一个整站同时更新的小站不算错,但爬虫没法靠它判断哪几页是真的新了。
怎么给自己的网站做可信的 lastmod?
1. 先确定「什么算页面变了」
正文、标题、描述、结构化数据、链接算;样式、脚本、页脚版权年份、统计属性不算。这条线要写下来,别人改代码时才不会随手破坏它。
2. 对「算数的内容」取指纹,不取整页
构建时把算数的部分抽出来,做一个哈希。页头页脚这类每页都一样的部分不放进去。
3. 指纹变了才更新时间,并存起来
把每个网址的指纹和时间存进文件或数据库。重新部署时先比对:没变就沿用旧时间。不要用文件时间。
4. 输出带时间和时区的 ISO 8601
像下面这样。Google 的文档示例只写日期,Bing 建议带时间,写完整的更稳:
<url> <loc>https://example.com/pricing/</loc> <lastmod>2026-11-05T00:27:22+09:00</lastmod> </url>
5. 上线后抽查
打开线上的 sitemap.xml,挑几个这次没改的页面,看日期有没有被带动;再挑一个刚改的,看日期是不是新的。
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。写带时区的完整时间两边都合适,前提是它真的是页面最后一次变化的时间。
出处
- Google Search Central · Build and submit a sitemap (查看于 2026-11-05)
- Bing · Keeping Content Discoverable with Sitemaps in AI Powered Search (2025-07-31 发表,2026-11-05 核对)
- OpenAI · Overview of OpenAI Crawlers (查看于 2026-11-05)
- Perplexity · Perplexity Crawlers (查看于 2026-11-05)
- MochiStamp · sitemap.xml (2026-11-05 读取,229 个网址)
- Pagent · sitemap.xml (2026-11-05 读取,81 个网址)
- kagentx 评测:案例页的数据,日期写在每个例子里。