Sitemap 里的 lastmod 字段,很多站点是顺手生成的——要么全站用同一個時間,要么每次發布都刷新一遍。它看起来只是個時間戳,但對搜尋引擎来说,這是一個“這個頁面變了没有”的声明。寫不准,最直接的後果不是惩罚,而是它逐渐失去參考價值:抓取調度不再把它当回事,该早点来的頁面還是按老节奏来。
lastmod 在抓取流程里扮演什么角色
搜尋引擎在已有的 URL 队列里决定先抓谁,會參考多個信号:内鏈位置、歷史更新频率、頁面本身的重要性、上次抓取時間,以及 Sitemap 里声明的最後修改時間。lastmod 是其中比較直接的一個——它相当于告诉抓取系統“這個地址的内容有更新,可能值得重新取一次”。
需要明确的是,它只是一個信号,不是命令。寫了 lastmod 不代表蜘蛛一定立刻来訪;如果抓取方長期發現声明的時間和實际内容對不上,這個字段的權重會被降低,甚至被忽略。
三種常见寫法,問题各在哪里
全站共用一個時間戳
生成 Sitemap 时统一寫当天日期,是最省事的做法。结果是每次提交都像在说“全站一萬個頁面刚刚全部更新”,抓取系統無法從中区分哪個頁面真的改了,這個字段也就等于没有。
每次生成都刷新
如果 Sitemap 是程序定时生成的,而 lastmod 取的是“生成時間”而不是“内容修改時間”,那每次輸出都會把所有 URL 标记成新的。抓取方看到大量虚假更新之後,自然會降低對這個字段的信任。
改了模板但没改内容
頁头、頁脚、侧栏調整,頁面正文没變。這时把全站 lastmod 刷新,属于誤报;完全不刷新,又和事實略有出入。比較稳妥的判断是:只有影响到頁面正文、结构化資料或主要内鏈结构的改動,才值得更新 lastmod。
落地时可以做的事
- lastmod 取頁面内容的真實修改時間,而不是 Sitemap 文件的生成時間。
- 批量模板改動,除非影响正文或重要的站内連結,否則不必逐頁刷新。
- 用 W3C 日期格式,只寫日期(YYYY-MM-DD)通常就够了,没必要精确到毫秒。
- 已刪除的頁面從 Sitemap 中移除,不要留着反复声明。
- 分片 Sitemap 的 lastmod 可以取该分片内頁面的最大修改時間,不要每次重建都改。
- 列表頁、聚合頁的 lastmod,建议跟着實际内容變化走,而不是跟着發布流程走。
怎么驗證它到底有没有起作用
比較實际的方法是對照日誌:挑一批真實更新過正文的頁面,看它們更新後多久被重新抓取;再挑一批只是模板變動、lastmod 未更新的頁面,看它們的抓取频率有没有變化。如果两组没有明顯差异,說明抓取系統更多依赖其他信号,lastmod 的作用有限。
也可以结合抓取統計里的“上次抓取時間”,观察更新频繁的栏目是否被訪問得更勤。這類观察需要几周的資料,只看一两天容易得出错誤结论。
它不是一個收錄開關
常见的誤解是:把 lastmod 寫好,頁面就會被抓、被收錄。實际上,能進入抓取队列的前提是 URL 已经被發現——来自内鏈、外鏈或 Sitemap。lastmod 影响的是“已發現的 URL 什么时候被重新抓”,不影响“能不能被發現”。
發現靠連結和 Sitemap,調度由多種信号共同决定,lastmod 只是其中一條,且需要長期寫准才有參考價值。
所以更合理的顺序是:先保證 URL 能被稳定發現、頁面能被正常訪問,再来把 lastmod 寫准。前者是地基,後者是锦上添花。