Sitemap 里的时间字段,蜘蛛到底会不会看
Sitemap 除了给出一份 URL 清单,还带着几个时间和优先级字段。很多站点把它当成一张单纯的“URL 提交表”,字段随便填;但对搜索引擎来说,这些字段是判断“这个页面要不要现在重抓”的辅助信号。写得不准,轻则浪费抓取量,重则让真正更新的页面排在后面。
需要先说清楚:这些字段是建议,不是命令。搜索引擎不一定按它抓取,也不承诺收录。合理写法的价值在于减少歧义、降低误判,而不是换来排名。
lastmod:只标记内容真的变了的页面
lastmod 表示页面最后修改时间,通常用 ISO 8601 格式,例如 2025-03-14T09:20:00+08:00。它最大的用处,是让蜘蛛在一堆老页面里快速识别哪些值得优先回访。
常见的三种写法问题
- 全站时间一起刷新。程序每次生成 Sitemap 都把当前时间写进所有条目。蜘蛛第一次可能当真,几次之后会发现“每个页面都刚改过”与实际不符,这个信号就贬值了。
- 格式与时区不统一。有的条目带时区,有的不带,还有用 2025/3/14 这类写法,解析结果可能偏差一天,甚至被直接忽略。
- 只换模板也算改。页脚、广告位调整导致所有页面 lastmod 更新,属于误报。判断标准最好落在正文主体内容上,而不是整页渲染结果。
更稳妥的做法是从内容库的更新时间字段取值,没有变化的页面保留原值,让时间线本身有区分度。
changefreq 与 priority:当成备注,别当开关
这两个字段多年前还有一定参考作用,现在主流搜索引擎基本忽略 changefreq,priority 也主要在自己站内做相对比较。写了 daily 不会因此加速抓取,写了 hourly 也不会提高权重。
所以不必在这上面反复纠结。如果保留,让取值与页面实际更新节奏大致相符即可:新闻列表写 daily,企业介绍页写 monthly 或者干脆不写,都不会造成实质影响。真正影响蜘蛛判断的,还是 URL 是否可访问、内容是否稳定、内链能否走到。
时间信号要和内链、抓取路径配合
Sitemap 只负责“告诉”,能不能被抓到还取决于别的条件:
- URL 能返回正常状态。如果清单里的地址发生跳转、超时或返回 404,时间字段再准也没有意义。
- 内链能走到。Sitemap 中的页面如果没有任何站内链接指向它,长期看抓取频率往往偏低。给新页面加一条正文内链或列表入口,通常比反复调整 lastmod 更直接。
- 服务器稳定。抓取期间频繁超时,蜘蛛会主动放慢节奏,Sitemap 更新再快也会被压住。
换句话说,时间字段是排队时的一个参考,链路本身通畅才是前提。
一份可执行的自检清单
- 抽查 20 条 Sitemap 记录,逐条打开,确认 URL 状态正常、没有多余的重定向链。
- 对比 lastmod 与页面实际更新时间,看是否存在“全站同一分钟”的情况。
- 确认时间格式统一、带时区,避免多种写法混用。
- 核对 Sitemap 里的 URL 与站内链接可达的 URL 是否一致,注意大小写、末尾斜杠与参数差异。
- 分片更新后,检查索引文件是否同步指向最新分片,旧分片是否已清理。
- 结合服务器访问日志,观察清单中的新 URL 大概多久后出现抓取记录,据此调整更新频率与提交节奏。
把 Sitemap 当成一份诚实的清单:URL 是真实的,时间是真实的,剩下的交给内链结构和蜘蛛自己去判断。