站点运营

站点运营:站点地图的维護與自查,別让 sitemap 里塞满無效地址

站点地图提交一次就再也不管,是很多站点的通病。本文梳理 sitemap 里不该出現的地址類型、文件拆分與 lastmod 的寫法,並给出一份可以直接照着做的發布與自查清單,帮你把這份清單维護成真正有用的抓取入口。

站点运营

站点运营:站点地图的维護與自查,別让 sitemap 里塞满無效地址

先把 sitemap 当成一份需要维護的资产

不少站点在建站时提交過一次 sitemap.xml,之後几年都没再動過。文件還在,但里面混着已下线的頁面、带一堆參數的篩選地址,甚至跳轉前的舊連結。蜘蛛按图索骥地来抓,结果大量請求落在没有價值的地址上,真正需要更新的内容反而排到了後面。

站点地图的作用很朴素:给爬虫一份「哪些地址值得来看」的清單。它不保證收錄,也不直接影响排名,但會明顯影响抓取效率。把它当成需要定期维護的资产,比当成一次性提交任務更合适。

哪些地址不该放進 sitemap

  • 返回 301、302 的舊地址:直接寫跳轉後的目标地址即可。
  • 返回 404、410 的頁面:確認不再使用就從文件里删掉。
  • 設定了 noindex 的頁面:既然不想被索引,也没必要占用清單。
  • 篩選、排序參數生成的组合頁:這類地址數量容易失控,除非它本身有獨立的搜尋價值。
  • 登入後、购物车、後台等需要會话狀態的頁面。
  • 同一内容的多份地址:只保留 canonical 指向的那一個。

拆分與更新时的几個细节

單文件的條數與体积

常见约定是單個 sitemap 文件不超過 5 萬條 URL、未压缩体积不超過 50MB。内容量大的站点用 sitemap 索引文件指向多個子文件,按栏目或按内容類型拆分,改動时只重新生成受影响的那一份,既省资源也便于排查。

lastmod 要反映真實修改時間

有些系統會把所有 URL 的 lastmod 寫成文件生成時間,每次生成整份文件就全部刷新一遍。這样寫等于告诉爬虫「全站都更新了」,几次之後這個字段就失去了參考價值。更合适的做法是让 lastmod 跟着内容修改時間走,模板調整、广告位更換這類不影响正文的改動可以不刷新。

列表頁與分頁地址

列表頁是否放進去,取决于它有没有獨立價值。如果想借助列表頁帮助發現詳情頁,可以只放前几頁,没有必要把翻到第一百頁的地址都列進去。分頁地址大量堆积时,反而會稀释核心内容的抓取机會。

發布與自查清單

  1. 文件能正常訪問,返回 200,Content-Type 為 XML。
  2. 地址使用绝對路径,與线上實际地址完全一致,包括协议、域名、大小寫和末尾斜杠。
  3. XML 格式合法,没有轉义错誤導致解析失敗。
  4. 大文件啟用 gzip 压缩,减少传輸体积。
  5. 在 robots.txt 中声明 Sitemap 地址,方便爬虫自行發現。
  6. 在搜尋平台的站長工具里提交,並留意抓取與索引报告中的異常提示。
  7. 内容有更新後重新生成,確認平台能讀到新的時間戳。
  8. 定期抽样几個地址,手動打開確認返回狀態正常。
站点地图不是「提交得越多越好」的清單,而是一份需要定期删减的名單。少放一些無效地址,往往比多塞几百條更有意义。

如果站点的 sitemap 是程序自動生成的,建议把生成逻辑和内容發布流程绑在一起:内容上线、下架、更換地址时同步更新,而不是靠人工在某個時間点想起来补一次。這样维護成本最低,也最不容易出错。