搜尋抓取

Sitemap 里的 lastmod 與 changefreq:蜘蛛會讀這些字段吗

Sitemap 中的 lastmod、changefreq、priority 经常被当成给蜘蛛的建议,但三者的實际分量差別很大。本文說明為什么 lastmod 值得認真维護、另外两個字段不必過度纠结,以及 Sitemap 與内鏈如何分工配合,並给出更新與核對的實用做法。

搜尋抓取

Sitemap 里的 lastmod 與 changefreq:蜘蛛會讀這些字段吗

Sitemap 是 URL 發現里最直接的一條通道,但它不只是一份地址清單。文件里的 lastmod、changefreq、priority 這几個字段,常被当成给蜘蛛的建议。實际使用中它們的權重差別很大,搞清楚這一点能省下不少無效维護。

三個字段的實际分量

在 Sitemap 协议里,只有 loc 是必填項,其余都是可選。蜘蛛對可選字段的處理並不一致:有的會參考,有的基本跳過。把精力平均分给三個字段,往往不如把 lastmod 做准。

  • lastmod:最可能被參考的字段,用来判断某個 URL 是否值得重新排進抓取队列。
  • changefreq:多數情况下被忽略,难以改變實际的回訪节奏。
  • priority:同样基本不生效,站内頁面的相對重要性主要由連結结构体現。

lastmod 要真實才有意义

lastmod 的價值建立在一個前提上:它反映的是頁面内容的實际改動時間。如果每次生成 Sitemap 都把時間戳刷成目前時間,這個字段很快就會失去參考價值。

常见誤区

  • 全站所有 URL 共用同一個時間戳,等于没有区分度。
  • 模板、導航或頁脚改動,導致大量頁面時間戳被動更新。
  • 列表頁每次刷新就整批更新,但正文並没有實质變化。

更稳妥的做法是让 lastmod 跟随正文内容的變更,只有标题、正文或關键資料發生變化时才更新。時間格式统一用完整時間戳並带上时区,避免解析上的歧义。

把 lastmod 当作内容變更的记錄,而不是 Sitemap 生成時間的记錄,它對回訪的參考價值才成立。

changefreq 與 priority 不必纠结

這两個字段可以保留,也可以删掉,不必為了填而填。與其在 priority 上给首頁 1.0、栏目頁 0.8 做精细分配,不如先检查首頁和栏目頁是否真的把這些地址放在可抓取的連結里。真正的抓取路径,還是由内鏈决定的。

Sitemap 與内鏈的分工

Sitemap 负责“告知存在”,内鏈负责“證明可達”。一個 URL 即使出現在 Sitemap 中,如果没有任何内鏈指向它,蜘蛛對它的抓取優先級通常會更低。反過来,内鏈层級太深的頁面,即使不在 Sitemap 里,也仍可能被抓到。

  • 新發布的頁面:同时补上内鏈和 Sitemap 记錄。
  • 改版或合並的頁面:及时更新 Sitemap,避免舊地址残留。
  • 已刪除的頁面:從 Sitemap 移除,並確認返回合适的 404 或 410。

更新與核對的做法

Sitemap 不需要频繁重寫。内容有新增或實质修改时再更新即可,同时保持文件本身可訪問、编碼正确、体量在协议建议范围内。單文件過大时,用索引文件拆分。

想確認字段是否真的被參考,最直接的办法是對照服務器日誌:挑一個刚更新過 lastmod 的 URL,看它在随後一段時間里有没有出現新的抓取請求。日誌里没有變化,說明這條线索對目前站点影响有限,不必反复調整字段。

归根结底,Sitemap 的字段只是辅助信号。可抓取的内鏈、稳定的响應、真實的内容更新,才是决定蜘蛛是否會来的主要因素。