站点地图不是提交一次就可以放進收藏夹的文件。很多站点在項目初期認真配置了 sitemap,之後内容更新了几百篇、栏目改版两三次,地图里還是老样子:連結指向已下架的頁面、lastmod 停在半年前、單個文件塞進几萬條 URL。這样的清單對搜尋引擎的帮助會越来越小,還可能传递错誤信号。
先確認地图還在被正常讀取
在服務器日誌里過滤 sitemap 相關路径,看看最近一次被訪問是什么时候、返回的是什么狀態碼。如果長期没有记錄,先排查三件事:robots.txt 是否誤挡、文件是否返回 200、服務器是否對這類静態文件做了鉴權或跳轉。地图本身也需要被抓到,否則後面所有優化都是空谈。
分片:按什么维度切更實用
常见的上限是單個文件不超過 5 萬條 URL、未压缩体积不超過 50MB。中小站点往往用不到上限,但提前分片有額外好處:出問题时影响范围可控,也方便按類型观察抓取情况。
- 按栏目或内容類型:文章、产品、問答各一份,便于對照各栏目的抓取與索引資料。
- 按更新狀態:把近期新增或大改的頁面單獨放一份,日常重点观察。
- 單獨處理特殊资源:图片、视频、新闻類地图的字段要求不同,不要和普通頁面混在一個文件里。
索引文件別混入普通連結
分片之後需要一個索引文件把子地图地址串起来,這個文件里只放子地图的地址。把普通頁面連結也塞進去,容易让解析工具产生歧义,也给後續维護添麻烦。每個子地图地址要是可訪問的完整 URL,不要用相對路径。
lastmod 怎么寫才不是噪音
lastmod 的作用是告诉蜘蛛這頁最近确實變了。它最有價值的场景是内容有實质修改——补充了段落、更新了資料、修正了错誤。如果每次生成地图都把全站時間刷成当天,這個字段很快就會被当成無效信息。
- 只寫内容實质變化的時間,模板調整、样式改版不算。
- 格式用完整的日期時間寫法並带时区,避免解析歧义。
- 不要寫未来時間,服務器时区設定错誤时很容易出現這種情况。
- 下架或已 404 的頁面直接從地图里移除,而不是保留舊记錄。
地图不能替代内鏈
站点地图更适合做补充:帮助發現新頁面、把漏抓的頁面重新递出去。它替代不了正常的導航和内鏈结构。只靠地图被看见的頁面,通常回訪频率低、更新反馈慢,這就是常说的孤岛頁面。做地图的同时,也要回头看看這些頁面是不是缺少站内入口。
一次完整的自查清單
- 地图地址在 robots.txt 中正确声明,且没有被 Disallow 挡住。
- 索引文件與各子地图都能返回 200,没有重定向鏈。
- 抽查地图里的 URL,確認没有 404、软 404 和已下架頁面。
- 核對 URL 是否與頁面 canonical 一致,避免协议、带不带 www 混用。
- 检查 lastmod 是否集中在同一天,若集中則說明生成逻辑有問题。
- 確認地图里不含 noindex 頁面和被 robots 屏蔽的路径。
- 統計各分片條目數與實际頁面數是否對得上。
把生成挂進發布流程
最省事的做法是让地图跟随發布流程自動更新:内容上线、下架、修改标题时触發重新生成,而不是靠人工每周手動導出。之後定期抽检即可,重点看两個指标——地图條目數與站内實际可抓取頁面數的差异,以及地图 URL 的異常狀態碼比例。差异持續扩大,往往意味着有頁面被悄悄移除,或者新增頁面根本没進地图。
站点地图是运营的体检表,不是一次性的提交動作。保持它和站点現状一致,比追求條目數量更重要。