搜尋抓取

Sitemap 的 lastmod 怎么寫:時間戳、更新频率與蜘蛛的判断

Sitemap 里的 lastmod 常被当成催促蜘蛛抓取的工具,但它更像一個辅助信号。本文說明 lastmod 的實际作用、常见寫法誤区,以及怎样让時間戳與頁面真實更新對齐,避免给抓取調度添乱。

搜尋抓取

Sitemap 的 lastmod 怎么寫:時間戳、更新频率與蜘蛛的判断

Sitemap 最基础的作用是交代 URL 清單,而 lastmod 字段則试图回答另一個問题:這個頁面上次實质性變化是什么时候。對搜尋蜘蛛来说,這是一條辅助信号,不是命令。它不會因為 lastmod 寫了今天,就立刻放下其他頁面来抓你;也不會因為没寫 lastmod,就永遠不抓。理解這一点,才能把字段寫對。

lastmod 在抓取調度里的位置

蜘蛛决定是否重新抓取一個 URL 时,會综合歷史抓取结果、頁面重要性、内鏈變化、服務器响應、Sitemap 声明等信息。lastmod 的作用是:当蜘蛛已经看到這個 URL,並且需要判断“值不值得再跑一趟”时,提供一個内容新鲜度的參考。

如果 lastmod 長期准确,蜘蛛可能更愿意在頁面更新後較快回訪;如果它多次發現 lastmod 说變了、抓回来却和上次一样,這個字段的可信度就會下降。換句话说,lastmod 的價值来自准确性,而不是更新频率

常见寫法誤区

  • 每次部署都刷新全站時間戳。改了一個頁脚或样式文件,所有 URL 的 lastmod 都變成目前時間,會让蜘蛛频繁白跑。
  • 使用未来時間。時間戳跑到目前時間之後,容易让抓取系統困惑,也不符合實际更新逻辑。
  • 格式不统一。有的寫日期,有的寫日期時間,有的缺时区,解析成本高且容易出错。
  • 把模板變化当成内容變化。導航、广告位、推荐模块更新,通常不算頁面主体内容更新,不必改 lastmod。
  • 所有頁面共用一個時間。看起来整齐,但等于没有提供有效信息。

怎样寫更可信

優先只在實际正文、資料或關键信息變化时更新 lastmod。格式上使用 W3C Datetime,例如 2025-06-01T10:30:00+08:00。如果站点没有精确到秒的能力,寫到日期也可以,但全站保持一致。

批量更新 Sitemap 时,可以按栏目或内容類型分別维護,不要因為重新生成文件就统一改時間。對于聚合頁、列表頁,如果只是新增了几條内容,是否更新 lastmod 取决于该頁本身是否變化;如果列表顺序或摘要變了,更新是合理的。

一句话原則:lastmod 應尽量接近“用戶能感知的内容變化時間”,而不是“文件生成時間”。

changefreq 和 priority 還要不要寫

主流搜尋引擎已明确表示基本忽略 changefreq 和 priority。它們不會因為寫了 hourly 就每小时来,也不會因為 priority 是 1.0 就優先抓。保留這些字段通常不影响解析,但不必花時間調數值。把精力放在 lastmod 准确性和 URL 可訪問性上更有意义。

與内鏈、HTTP 缓存配合

Sitemap 不是唯一的發現路径。内鏈更新、栏目入口、RSS 或其他引用,都可能让蜘蛛更早看到新 URL。對于已经抓過的頁面,合理的 304 响應和缓存头可以减少重复下载,让抓取预算花在真正變化的頁面上。如果 lastmod 准确,蜘蛛在條件請求时也更容易判断是否值得回訪。

服務器稳定性同样關键。如果 Sitemap 里的 URL 经常超时或返回 5xx,lastmod 寫得再及时也没有意义。先保證頁面能稳定响應,再谈更新信号。

检查清單

  1. 抽查若干 URL,對比 lastmod 與頁面實际更新记錄是否一致。
  2. 確認時間戳格式统一,包含时区或至少保持同一種寫法。
  3. 检查是否因模板、样式或部署導致全站時間被批量刷新。
  4. 去掉未来時間、空值和明顯異常的時間戳。
  5. 在抓取日誌中观察更新後頁面的回訪情况,而不是只看 Sitemap 提交時間。
  6. 如果字段维護成本過高,宁可减少更新范围,也不要制造虚假新鲜度。

lastmod 不是提速按钮,它更像一張便簽:告诉蜘蛛這個頁面什么时候真的變了。寫對了,不會立刻带来排名或收錄,但能减少無效抓取;寫乱了,則會浪費双方的注意力。把時間戳和實际更新對齐,是站点运营里成本不高、却值得做扎實的一件小事。