很多站長把 Sitemap 当成一份交给蜘蛛的 URL 清單,只關心里面有没有漏地址,却很少检查每條 URL 後面跟着的 lastmod 是否可信。這個字段不像标题、描述那样參與頁面理解,但它會影响一件事:蜘蛛下次要不要優先回来看這個地址。
lastmod 在抓取調度里的位置
Sitemap 本身只是發現 URL 的渠道之一。蜘蛛讀它,主要是拿到两類信息:一批從没见過的地址,以及一批声称有更新的老地址。lastmod 就是判断後者的依據。
搜尋引擎通常把 lastmod 当作參考信号,而不是必须执行的指令。如果你長期如實标注,它可能更愿意按這個時間安排回訪;如果标注经常和實际内容對不上,這個字段的可信度會下降,最终被忽略。
三種常见的寫法問题
全站被刷成同一個時間
不少 CMS 插件預設把 Sitemap 的生成時間寫成 lastmod,于是每次重新生成文件,所有 URL 的時間都被刷新一遍。蜘蛛看到的是全站同一秒全部更新,這種信号没有区分度,等于没寫。
把模板改動当成内容更新
改了一次頁脚、換了一個广告位、調整了導航顺序,如果這些操作触發了全部頁面的 lastmod 更新,蜘蛛回来看到的是一批内容几乎没變的頁面。反复几次之後,這批 URL 的更新信号就會被降權處理。
格式不規范或時間错位
用本地時間却不寫时区、月份和日期寫反、把時間标到未来,都可能让解析结果異常。寫未来時間尤其容易出問题,蜘蛛無法把一個還没發生的時間点当作回訪依據。
怎么让 lastmod 更接近真實
- 只有正文、标题、價格、库存等實质内容變化时才更新,纯样式調整不要動它。
- 批量改版时分批發布,避免一次把几萬個 URL 的時間改成同一分钟。
- 使用带时区的标准格式,與頁面上的發布時間共用同一套時間源。
- 已刪除或已重定向的 URL 不靠 lastmod 通知,直接從 Sitemap 里移除更清楚。
光有 lastmod 還不够
蜘蛛判断一個頁面是否需要重抓,還會參考 HTTP 响應头里的 Last-Modified、頁面结构的稳定性,以及站内其他連結指向它的變化。如果 Sitemap 说刚刚更新,服務器返回的修改時間却是半個月前,两邊矛盾會让信号互相抵消。
另外,Sitemap 文件本身也要能被稳定抓取。如果它体积過大、响應過慢,或者要经過多次跳轉才能拿到,蜘蛛可能還没讀到 lastmod 就已经放弃了。
上手前的自查
- 随机抽十條最近更新的 URL,核對 Sitemap 中的時間與頁面實际改動時間是否一致。
- 检查生成逻辑,確認没有把文件生成時間当作 lastmod。
- 看看全站是否出現大量完全相同的時間戳。
- 检查時間格式是否带时区,有没有未来時間。
- 對比 HTTP Last-Modified 與 Sitemap lastmod,看是否明顯冲突。
lastmod 不是寫给搜尋引擎看的装饰,而是你對“這個頁面真的變了”的一次声明。声明得越准,蜘蛛回訪时的判断就越省事。
最後提醒一句:Sitemap 和 lastmod 都只是线索,不能决定抓取结果。更根本的還是頁面本身有稳定價值、内鏈能把地址送到蜘蛛面前、服務器在它来訪时能正常响應。這几件事做到位,lastmod 才有一個可信的基础。