搜尋抓取

Sitemap 的 lastmod 寫不准,蜘蛛的抓取優先級會怎么變

很多站点的 Sitemap 看似完整,lastmod 却常常不可信:全站刷成同一時間、模板改動触發全量更新、時間格式错位,都會让蜘蛛的抓取調度失去參考。本文拆解 lastmod 在抓取優先級里的作用,梳理三類常见寫法問题,並给出一套可执行的自查與修正方法。

搜尋抓取

Sitemap 的 lastmod 寫不准,蜘蛛的抓取優先級會怎么變

很多站長把 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 就已经放弃了。

上手前的自查

  1. 随机抽十條最近更新的 URL,核對 Sitemap 中的時間與頁面實际改動時間是否一致。
  2. 检查生成逻辑,確認没有把文件生成時間当作 lastmod。
  3. 看看全站是否出現大量完全相同的時間戳。
  4. 检查時間格式是否带时区,有没有未来時間。
  5. 對比 HTTP Last-Modified 與 Sitemap lastmod,看是否明顯冲突。
lastmod 不是寫给搜尋引擎看的装饰,而是你對“這個頁面真的變了”的一次声明。声明得越准,蜘蛛回訪时的判断就越省事。

最後提醒一句:Sitemap 和 lastmod 都只是线索,不能决定抓取结果。更根本的還是頁面本身有稳定價值、内鏈能把地址送到蜘蛛面前、服務器在它来訪时能正常响應。這几件事做到位,lastmod 才有一個可信的基础。