搜尋抓取

Sitemap 里的 lastmod:時間戳寫错,蜘蛛的复查节奏也會乱

lastmod 是 Sitemap 里最容易被忽视的字段之一。它本意是告诉蜘蛛頁面何时真正更新,但很多站点把它寫成生成時間、批量刷成同一天,或者用错时区格式。结果蜘蛛要么频繁白跑,要么错過真正更新的頁面。這篇文章梳理 lastmod 的常见誤用和更稳妥的寫法。

搜尋抓取

Sitemap 里的 lastmod:時間戳寫错,蜘蛛的复查节奏也會乱

在 Sitemap 里,lastmod 是一個看起来简單、實际很容易寫错的字段。它的作用是告诉搜尋引擎這個 URL 最後一次實质更新的時間。蜘蛛會把它当作一個參考信号,用来判断哪些頁面值得優先复查、哪些可以放一放。

但很多站点並没有認真维護它:有的把 Sitemap 生成時間直接填進去,有的每次發布都全站刷新成当天,還有的格式不規范。這些做法不會让抓取變多,反而可能让蜘蛛對你的時間戳失去信任。

蜘蛛怎么使用 lastmod

当 Sitemap 里的 lastmod 發生變化,蜘蛛會倾向于把對應 URL 重新排進抓取队列。如果多個 URL 同时更新,它也會结合頁面重要性、歷史更新频率和抓取预算来决定先看谁。简單说,lastmod 是复查的触發器之一,不是收錄保證。

如果 lastmod 長期不准确,可能出現两種结果:

  • 站点天天刷新 lastmod,蜘蛛反复抓取没有變化的頁面,浪費抓取预算。
  • 真正更新的頁面 lastmod 没變,蜘蛛不知道它已经改了,复查被延後。

最常见的几種寫法問题

把生成時間当更新時間

有些 CMS 在生成 Sitemap 时,直接把目前時間寫入所有 URL 的 lastmod。這样每次生成 Sitemap,全站時間都變成“刚刚更新”。蜘蛛第一次可能多抓一些,但几次之後就會降低對這個字段的信任,甚至忽略它。

批量刷成同一天

改模板、調頁脚、換广告位這類全站改動,很多站長會顺手把所有頁面的 lastmod 统一更新。但頁面正文並没有變。對于蜘蛛来说,這就像全站内容都更新了,容易触發不必要的集中抓取。

时区與格式不規范

lastmod 推荐使用 W3C Datetime 格式。只寫日期通常可以接受,但最好带上时区,例如 2025-04-10T08:30:00+08:00。如果只寫本地時間又没有时区,蜘蛛可能按 UTC 理解,产生几個小时的偏差。偏差本身不致命,但如果站点经常批量更新,時間范围會變得混乱。

更稳妥的维護方式

不需要把 lastmod 做到绝對精确,但至少要让它和頁面的真實更新對應起来。可以按下面几條来检查:

  1. 只记錄内容层面的修改。 标题、正文、關键資料、主要图片變更时才更新;模板、導航、侧栏調整不要動它。
  2. 尽可能由系統自動维護。 让 CMS 在儲存文章时寫入真實修改時間,而不是在生成 Sitemap 时统一赋值。
  3. 批量操作要分級。 如果确實需要全站調整,可以只更新受影响的 URL,或者分批次調整,避免同一天全部刷新。
  4. 保持格式统一。 全站统一用同一種日期格式,带时区,不要一會儿寫日期一會儿寫完整時間。
  5. 不要為了“催抓”而伪造。 频繁把 lastmod 改成目前時間,短期可能带来抓取,長期會让信号失效。

lastmod 和抓取预算的關系

抓取预算不是固定配額,蜘蛛會根據站点更新情况調整訪問节奏。如果 lastmod 長期可靠,蜘蛛更愿意相信你的更新信号,把有限抓取次數分配给真正變化的 URL。反過来,如果時間戳長期注水,蜘蛛會轉向其他判断依據,比如内鏈變化、歷史抓取效果和頁面本身的质量。

把 lastmod 当成“内容變更日誌”,而不是“抓取催促按钮”,它才會發挥應有的作用。

最後,lastmod 只是 Sitemap 里的一個辅助字段。它不能替代内鏈、站点结构、服務器稳定性和内容质量。把它寫對,可以减少無效抓取;但真正决定 URL 能否被稳定發現的,仍然是站点整体是否让蜘蛛走得顺、抓得值。