搜尋抓取

Sitemap 的 lastmod 怎么寫:別让蜘蛛對更新時間产生怀疑

lastmod 是 Sitemap 里最容易被忽略、也最容易被寫坏的字段。它不直接决定收錄,却會影响蜘蛛是否愿意重新抓取一個 URL。本文從格式、时区、批量更新時間、分片管理和日誌观察几個角度,說明怎样把 lastmod 寫得一致可信,避免因為時間戳混乱而让蜘蛛降低對整份地图的信任。

搜尋抓取

Sitemap 的 lastmod 怎么寫:別让蜘蛛對更新時間产生怀疑

Sitemap 里的 lastmod 经常被当成一個可填可不填的字段。實际上,它是蜘蛛判断某個 URL 是否值得重新抓取的重要參考。寫對了,蜘蛛更愿意按地图回来看看;寫乱了,整份 Sitemap 的可信度都會受影响。

lastmod 對蜘蛛意味着什么

Sitemap 主要承担两件事:让蜘蛛發現 URL,以及告诉蜘蛛這些 URL 大概發生了什么變化。lastmod 就是後者的時間标记。它不是一個强制指令,蜘蛛不會因為 lastmod 更新就立刻抓取,但它會和頁面内容、内鏈變化、歷史抓取记錄一起,影响重新抓取的優先級。

如果一份 Sitemap 里的 lastmod 長期不可信,蜘蛛可能會降低對這份地图的參考權重,轉而更多依赖站内連結和外部入口来發現變化。

三種常见寫法,會让 lastmod 失去意义

  • 全站 URL 使用同一個時間戳,通常是每次生成 Sitemap 的時間。
  • 寫了一個未来時間,比如下個月或明年。
  • 正文没有任何修改,但 lastmod 每天甚至每次請求都在變。

這三種情况都在传递同一個信号:這個時間戳和頁面真實變化没有關系。蜘蛛见過几次之後,就不會再把 lastmod 当作有效线索。

可用的 lastmod 格式

推荐使用 W3C 日期時間格式,並带上时区,例如:2025-03-01T08:30:00+08:00。只寫日期也可以,比如 2025-03-01,但精确到時間更利于表達同一天内的多次調整。不要使用自然語言時間,也不要用時間戳數字。

时区不是可選項。如果服務器在海外,生成時間又是另一套时区,很容易出現“頁面顯示昨天更新,Sitemap 寫明天”的混乱。

怎么让 lastmod 和内容更新保持一致

  • 只在實际修改正文、标题、主要模块或结构化資料时更新。
  • 頁面可见的更新時間,尽量和 lastmod 保持一致。
  • 列表頁、聚合頁可以用其中最新一條内容的時間,但不要每次抓取都變。
  • 不要為了“提醒蜘蛛”而人為刷新 lastmod。

如果站点使用 CMS,最好让系統自動记錄内容最後修改時間,而不是在生成 Sitemap 时统一寫目前時間。手工维護时,可以按栏目分批检查,避免一次性改全站。

Sitemap 分片时,lastmod 要分清两层

站点變大後,Sitemap 通常會拆成索引文件和多個分片。索引文件里的 lastmod 表示分片文件本身的更新時間,分片内每個 URL 的 lastmod 才表示頁面更新時間。两者不要混在一起寫。

分片文件如果只是重新生成、内容没變,索引里的 lastmod 也可以不频繁改動。频繁變動會让蜘蛛反复回来检查,却看不到實际變化,反而浪費抓取机會。

和内鏈、日誌配合看

Sitemap 不是唯一的發現路径。重要頁面更新後,如果内鏈位置、導航或列表頁没有同步變化,蜘蛛仍然可能按舊节奏訪問。可以把 lastmod 變化、内鏈調整和服務器日誌放在一起观察:哪些 URL 的 lastmod 更新後蜘蛛較快回訪,哪些長期没有動静。

日誌里如果出現大量“只抓 Sitemap、不抓頁面”的记錄,通常說明地图里的 URL 质量或時間信号需要检查。此时先別急着加大提交频率,先把 lastmod 寫准,把可抓取的頁面整理清楚。

lastmod 的作用不是催促蜘蛛,而是减少它的判断成本。時間戳越接近真實變化,蜘蛛越容易把抓取机會用在值得的 URL 上。

Sitemap 可以定期提交,但 lastmod 不必跟着提交動作一起刷新。把更新時間记錄准确,让地图和頁面實际狀態對得上,比频繁修改時間戳更有用。