Sitemap 是站点运营里最容易被“提交一次就忘掉”的配置。刚上线时大家會認真生成,過几個月栏目調整、内容下线、URL 改名之後,地图里可能已经混進不少失效地址。搜尋蜘蛛再次讀取时,拿到的就是一份過期的 URL 清單。
它不直接决定收錄,但會影响蜘蛛發現新地址的效率。下面是一份偏日常维護的 sitemap 自查流程,适合按季度或大改版後执行。
先看地图里有没有“不该出現”的地址
打開 sitemap,随机抽几十條 URL 逐個訪問。重点不是看它能不能打開,而是看它返回了什么狀態。
- 404 與 410:已经刪除且没有替代頁面的地址,應该從 sitemap 移除。繼續留着只會让蜘蛛反复来確認。
- 301 與 302:如果地图里给的是舊地址,蜘蛛會先跳轉一次才到目标頁。更好的做法是直接在地图里寫最终地址。
- noindex 頁面:加了 noindex 的頁面不必再放進 sitemap,两個信号互相矛盾。
- 參數篩選頁:排序、篩選、追踪參數生成的 URL,除非确有獨立價值,否則不要批量塞進地图。
- 登入、草稿、预览連結:這些地址本就不该被公開發現,放進 sitemap 等于主動递出去。
lastmod 要真實,別批量刷成同一天
lastmod 是告诉蜘蛛“這個頁面最後一次實质性修改是什么时候”。它的價值在于帮助蜘蛛判断哪些地址值得優先重訪。
如果每次生成 sitemap 都把全站 lastmod 寫成当天,這個字段就會失去区分度。蜘蛛多次看到“所有頁面每天都在更新”,慢慢就不會再參考它。比較稳妥的做法是:只更新真正改過正文、标题或主要结构的頁面;模板調整、广告位更換、CSS 修改這類不影响内容的改動,不必改 lastmod。
如果程序無法准确輸出 lastmod,宁可省略這個字段,也不要寫一個不真實的日期。
分片與索引文件自查
内容量大的站点,sitemap 通常會被拆成多個文件,再由一個索引文件统一引用。這里有几個容易忽略的点:
- 單個 sitemap 文件建议不超過 5 萬條 URL,未压缩体积不超過 50MB。超過後蜘蛛可能只讀取一部分。
- 索引文件里引用的每個分片地址都要能正常打開,不能返回 404 或 5xx。
- 分片命名最好有規律,比如按栏目或按月切分,方便自己排查,也方便在日誌里對應。
- 如果分片是動態生成的,注意生成時間。列表頁查询過慢會導致蜘蛛請求超时,最好加一层缓存。
更新後看抓取日誌,而不是只看提交成功
在搜尋资源平台提交 sitemap 後,提示“成功”只代表文件被讀取,不代表地址會被抓取。更有效的观察方式是看服務器日誌:
- 蜘蛛是否定期来抓 sitemap 文件本身;
- 讀取 sitemap 後,是否在短時間内訪問了其中新增的地址;
- 地图里的 404 地址是否還在被反复請求;
- 分片文件是否出現 5xx 或超时,導致蜘蛛中途放弃。
如果發現蜘蛛频繁抓 sitemap 却不抓正文,可以回头检查地图里有效地址的比例。無效地址越多,整份地图的“信任度”就越低。
一份可以照着做的自查清單
- 抽样訪問 30 到 50 條 URL,记錄狀態碼與最终地址。
- 检查 sitemap 中是否包含 noindex、登入頁、草稿、预览連結。
- 核對 lastmod 是否與頁面實际改動一致,避免全站同一天。
- 確認分片數量、大小、索引引用都正常。
- 在 robots.txt 中正确声明 sitemap 地址。
- 提交後观察一周抓取日誌,看新增地址是否被發現。
- 大改版、批量下线、栏目合並後,重新生成並复核一次。
把這些检查並入日常运维,比每次出問题再回头翻 sitemap 要省事。地图不需要“全”,但需要“准”。