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 寫得再及时也没有意义。先保證頁面能稳定响應,再谈更新信号。
检查清單
- 抽查若干 URL,對比 lastmod 與頁面實际更新记錄是否一致。
- 確認時間戳格式统一,包含时区或至少保持同一種寫法。
- 检查是否因模板、样式或部署導致全站時間被批量刷新。
- 去掉未来時間、空值和明顯異常的時間戳。
- 在抓取日誌中观察更新後頁面的回訪情况,而不是只看 Sitemap 提交時間。
- 如果字段维護成本過高,宁可减少更新范围,也不要制造虚假新鲜度。
lastmod 不是提速按钮,它更像一張便簽:告诉蜘蛛這個頁面什么时候真的變了。寫對了,不會立刻带来排名或收錄,但能减少無效抓取;寫乱了,則會浪費双方的注意力。把時間戳和實际更新對齐,是站点运营里成本不高、却值得做扎實的一件小事。