網站收錄

站点地图 lastmod 與 changefreq:乱填會怎样,怎么寫才有參考價值

站点地图常被当成提交 URL 清單的工具,但 lastmod、changefreq、priority 三個字段里只有 lastmod 通常被認真參考。本文說明乱填 lastmod 會带来什么後果、什么算實质性内容更新、列表頁與詳情頁的寫法差別,以及提交前可以按顺序核對的几件事。

網站收錄

站点地图 lastmod 與 changefreq:乱填會怎样,怎么寫才有參考價值

站点地图(sitemap)最常见的用途是把 URL 清單一次性交给搜尋引擎,减少“連結太深、長期没被發現”的情况。但很多人只關心“有没有提交”,忽略了文件里的 lastmod、changefreq、priority 三個字段。填得不認真,轻則没有帮助,重則让整份清單的可信度一起下降。

三個字段的實际作用並不一样

先说结论:三個字段里通常只有 lastmod 會被認真參考。

  • lastmod:表示该 URL 内容最後一次實质性變化的時間。爬虫用它判断“這個頁面是否需要重新抓一次”,是唯一经常被使用的字段。
  • changefreq:表示预計更新频率。主流搜尋引擎多年前就明确表示忽略该字段,因為站点自己很难预测准。
  • priority:站内相對優先級。同样被主流搜尋引擎忽略——頁面的抓取與排序由搜尋系統决定,不由站点指定。

所以精力應该集中在 lastmod 上。changefreq 和 priority 寫了没坏處,但不必花時間反复調。

lastmod 乱填的几種典型情况

1. 每次构建都刷成目前時間

CMS 或构建脚本預設用一個變量填 lastmod,每次部署全站時間一起變。结果是所有 URL 的 lastmod 永遠等于“刚刚”,爬虫無法区分真正更新的頁面和没動過的頁面,這個字段等于失效,還可能让抓取队列里塞進大量“看起来刚更新”的舊頁面。

2. 只寫日期,或时区不一致

精确到天在多數场景够用,但如果一天内多次修改,同日更新就看不出来。如果带上時間,務必寫清时区(例如 +08:00)。否則服務器时区、UTC、本地時間混在一起,甚至出現“未来時間”,這類值容易被直接忽略。

3. 把發布時間当成修改時間

内容後面加了一條相關推荐、換了一張配图、修了几個错別字,算不算更新?判断标准是正文對讀者是否有實质意义的變化。模板調整、導航改版、頁脚換連結,不應该改動全站 lastmod。

列表頁與詳情頁的寫法差別

詳情頁的 lastmod 跟着内容走。列表頁、聚合頁比較特殊:如果它按時間倒序展示條目,有新内容進入就该更新;但如果它每次渲染都在變(比如带上“目前時間”“随机推荐”),而對讀者其實没有變化,就不要每次刷新 lastmod。否則這類頁面會持續占用抓取资源,真正需要更新的頁面反而排在後面。

sitemap 不负责收錄

提交 sitemap 只解决“被發現”,不解决“被收錄”。是否抓取、是否進索引,還取决于頁面质量、重复程度、站点整体情况等因素。時間寫得再准,也不會让一個低质頁面進入索引。

自查可以按這個顺序

  1. 随机抽一部分已收錄頁面和未收錄頁面,核對 sitemap 里的 lastmod 與實际改動時間是否對得上。
  2. 检查是否存在大批 URL 的 lastmod 完全相同,尤其是等于最近一次部署時間。
  3. 检查時間格式是否统一:是否都带时区、有没有出現未来時間。
  4. 確認文件里没有混入已被 robots 屏蔽的 URL、404 地址和重定向地址。
  5. 確認 sitemap 本身能正常訪問,没有被缓存或压缩搞成错誤内容,也没有超出大小與條數限制(單文件 5 萬條、未压缩 50MB)。

小结

把 lastmod 当成一份给爬虫看的“變更日誌”:只寫真實的内容變化,格式统一,不要為了催促抓取而人為刷新。changefreq 和 priority 保持預設或省略都不影响使用。與其在這三個字段上反复纠结,不如先確認 sitemap 里的 URL 都是可索引、内容不重复的頁面。