网站收录

站点地图 lastmod 与 changefreq:乱填会怎样,怎么写才有参考价值

站点地图常被当成提交 URL 清单的工具,但 lastmod、changefreq、priority 三个字段里只有 lastmod 通常被认真参考。本文说明乱填 lastmod 会带来什么后果、什么算实质性内容更新、列表页与详情页的写法差别,以及提交前可以按顺序核对的几件事。

网站收录

站点地图 lastmod 与 changefreq:乱填会怎样,怎么写才有参考价值

站点地图(sitemap)最常见的用途是把 URL 清单一次性交给搜索引擎,减少“链接太深、长期没被发现”的情况。但很多人只关心“有没有提交”,忽略了文件里的 lastmod、changefreq、priority 三个字段。填得不认真,轻则没有帮助,重则让整份清单的可信度一起下降。

三个字段的实际作用并不一样

先说结论:三个字段里通常只有 lastmod 会被认真参考。

  • lastmod:表示该 URL 内容最后一次实质性变化的时间。爬虫用它判断“这个页面是否需要重新抓一次”,是唯一经常被使用的字段。
  • changefreq:表示预计更新频率。主流搜索引擎多年前就明确表示忽略该字段,因为站点自己很难预测准。
  • priority:站内相对优先级。同样被主流搜索引擎忽略——页面的抓取与排序由搜索系统决定,不由站点指定。

所以精力应该集中在 lastmod 上。changefreq 和 priority 写了没坏处,但不必花时间反复调。

lastmod 乱填的几种典型情况

1. 每次构建都刷成当前时间

CMS 或构建脚本默认用一个变量填 lastmod,每次部署全站时间一起变。结果是所有 URL 的 lastmod 永远等于“刚刚”,爬虫无法区分真正更新的页面和没动过的页面,这个字段等于失效,还可能让抓取队列里塞进大量“看起来刚更新”的旧页面。

2. 只写日期,或时区不一致

精确到天在多数场景够用,但如果一天内多次修改,同日更新就看不出来。如果带上时间,务必写清时区(例如 +08:00)。否则服务器时区、UTC、本地时间混在一起,甚至出现“未来时间”,这类值容易被直接忽略。

3. 把发布时间当成修改时间

内容后面加了一条相关推荐、换了一张配图、修了几个错别字,算不算更新?判断标准是正文对读者是否有实质意义的变化。模板调整、导航改版、页脚换链接,不应该改动全站 lastmod。

列表页与详情页的写法差别

详情页的 lastmod 跟着内容走。列表页、聚合页比较特殊:如果它按时间倒序展示条目,有新内容进入就该更新;但如果它每次渲染都在变(比如带上“当前时间”“随机推荐”),而对读者其实没有变化,就不要每次刷新 lastmod。否则这类页面会持续占用抓取资源,真正需要更新的页面反而排在后面。

sitemap 不负责收录

提交 sitemap 只解决“被发现”,不解决“被收录”。是否抓取、是否进索引,还取决于页面质量、重复程度、站点整体情况等因素。时间写得再准,也不会让一个低质页面进入索引。

自查可以按这个顺序

  1. 随机抽一部分已收录页面和未收录页面,核对 sitemap 里的 lastmod 与实际改动时间是否对得上。
  2. 检查是否存在大批 URL 的 lastmod 完全相同,尤其是等于最近一次部署时间。
  3. 检查时间格式是否统一:是否都带时区、有没有出现未来时间。
  4. 确认文件里没有混入已被 robots 屏蔽的 URL、404 地址和重定向地址。
  5. 确认 sitemap 本身能正常访问,没有被缓存或压缩搞成错误内容,也没有超出大小与条数限制(单文件 5 万条、未压缩 50MB)。

小结

把 lastmod 当成一份给爬虫看的“变更日志”:只写真实的内容变化,格式统一,不要为了催促抓取而人为刷新。changefreq 和 priority 保持默认或省略都不影响使用。与其在这三个字段上反复纠结,不如先确认 sitemap 里的 URL 都是可索引、内容不重复的页面。