站点运营

站点运营:站点地图分片與 lastmod 维護,別让提交的清單過期

站点地图提交之後長期不更新,很容易變成一份誤導蜘蛛的舊清單。本文從分片策略、lastmod 寫法、索引文件規范、地图與内鏈的關系几個角度,整理了一套可执行的自查方法,並给出把地图生成挂進發布流程的做法,帮助运营者让地图與站点現状保持一致。

站点运营

站点运营:站点地图分片與 lastmod 维護,別让提交的清單過期

站点地图不是提交一次就可以放進收藏夹的文件。很多站点在項目初期認真配置了 sitemap,之後内容更新了几百篇、栏目改版两三次,地图里還是老样子:連結指向已下架的頁面、lastmod 停在半年前、單個文件塞進几萬條 URL。這样的清單對搜尋引擎的帮助會越来越小,還可能传递错誤信号。

先確認地图還在被正常讀取

在服務器日誌里過滤 sitemap 相關路径,看看最近一次被訪問是什么时候、返回的是什么狀態碼。如果長期没有记錄,先排查三件事:robots.txt 是否誤挡、文件是否返回 200、服務器是否對這類静態文件做了鉴權或跳轉。地图本身也需要被抓到,否則後面所有優化都是空谈。

分片:按什么维度切更實用

常见的上限是單個文件不超過 5 萬條 URL、未压缩体积不超過 50MB。中小站点往往用不到上限,但提前分片有額外好處:出問题时影响范围可控,也方便按類型观察抓取情况。

  • 按栏目或内容類型:文章、产品、問答各一份,便于對照各栏目的抓取與索引資料。
  • 按更新狀態:把近期新增或大改的頁面單獨放一份,日常重点观察。
  • 單獨處理特殊资源:图片、视频、新闻類地图的字段要求不同,不要和普通頁面混在一個文件里。

索引文件別混入普通連結

分片之後需要一個索引文件把子地图地址串起来,這個文件里只放子地图的地址。把普通頁面連結也塞進去,容易让解析工具产生歧义,也给後續维護添麻烦。每個子地图地址要是可訪問的完整 URL,不要用相對路径。

lastmod 怎么寫才不是噪音

lastmod 的作用是告诉蜘蛛這頁最近确實變了。它最有價值的场景是内容有實质修改——补充了段落、更新了資料、修正了错誤。如果每次生成地图都把全站時間刷成当天,這個字段很快就會被当成無效信息。

  • 只寫内容實质變化的時間,模板調整、样式改版不算。
  • 格式用完整的日期時間寫法並带时区,避免解析歧义。
  • 不要寫未来時間,服務器时区設定错誤时很容易出現這種情况。
  • 下架或已 404 的頁面直接從地图里移除,而不是保留舊记錄。

地图不能替代内鏈

站点地图更适合做补充:帮助發現新頁面、把漏抓的頁面重新递出去。它替代不了正常的導航和内鏈结构。只靠地图被看见的頁面,通常回訪频率低、更新反馈慢,這就是常说的孤岛頁面。做地图的同时,也要回头看看這些頁面是不是缺少站内入口。

一次完整的自查清單

  1. 地图地址在 robots.txt 中正确声明,且没有被 Disallow 挡住。
  2. 索引文件與各子地图都能返回 200,没有重定向鏈。
  3. 抽查地图里的 URL,確認没有 404、软 404 和已下架頁面。
  4. 核對 URL 是否與頁面 canonical 一致,避免协议、带不带 www 混用。
  5. 检查 lastmod 是否集中在同一天,若集中則說明生成逻辑有問题。
  6. 確認地图里不含 noindex 頁面和被 robots 屏蔽的路径。
  7. 統計各分片條目數與實际頁面數是否對得上。

把生成挂進發布流程

最省事的做法是让地图跟随發布流程自動更新:内容上线、下架、修改标题时触發重新生成,而不是靠人工每周手動導出。之後定期抽检即可,重点看两個指标——地图條目數與站内實际可抓取頁面數的差异,以及地图 URL 的異常狀態碼比例。差异持續扩大,往往意味着有頁面被悄悄移除,或者新增頁面根本没進地图。

站点地图是运营的体检表,不是一次性的提交動作。保持它和站点現状一致,比追求條目數量更重要。