站点地图(sitemap)很多站点上线时提交過一次,之後就再没打開過。時間一長,里面可能混着已经刪除的頁面、跳轉中的舊地址、带參數的篩選連結,甚至被 robots.txt 屏蔽的目錄。它本身不會直接带来排名,但作為 URL 發現的辅助入口,内容是否干净會影响蜘蛛對站点结构的判断。把它当成一份需要定期维護的清單,比一次性提交更有意义。
先想清楚 sitemap 應该放什么
sitemap 的定位是“希望被發現的規范 URL 清單”,不是全站 URL 導出。判断标准可以简單一些:
- 只放返回 200 狀態碼的頁面,且是最终規范版本;
- 優先放栏目頁、重要内容頁和更新較稳定的頁面;
- 不放重定向地址、404 頁面、被 noindex 的頁面;
- 不放站内搜尋结果頁、排序篩選參數頁、會话 ID 之類的临时連結。
如果站点規模不大,一份 sitemap 就够了;頁面較多时,用索引文件(sitemap index)拆分,按栏目或内容類型分组,後續排查也方便。
几個常见的混入問题
失效 URL 長期残留
栏目調整、文章合並、商品下架之後,原 URL 往往還留在 sitemap 里。蜘蛛按图索骥扑空,既浪費抓取,也容易让日誌里出現大量 404。可以用脚本定期抓取 sitemap 中的連結,批量检查狀態碼,把非 200 的挑出来,再决定是恢复、重定向還是刪除。
參數頁與站内搜尋结果混入
有些建站程序會自動把带參數的地址寫進 sitemap,比如篩選、排序、分頁參數。這類頁面内容重复度高,收錄價值有限,還可能拖出大量近似 URL。检查 sitemap 生成規則,把參數组合排除掉;确實需要被發現的篩選頁,考虑做静態化或獨立栏目。
數量與文件体积超限
單個 sitemap 文件有數量與体积上限,通常是 5 萬條 URL、未压缩 50MB。超出後搜尋引擎可能讀不全。用索引文件分片,並保證每份文件内的 URL 都属于同一站点、同一协议。
lastmod 随手填寫
lastmod 應该反映頁面的實质性修改時間。如果每次發布模板或改一個错別字就全站刷新,或者反過来,内容大改却從不更新,這個字段會失去參考價值。與其乱填,不如留空,或只對真正更新過的頁面寫入。
把自查變成固定動作
- 定期抓取 sitemap,統計各狀態碼數量,關注 3xx、4xx、5xx 的變化;
- 抽取部分 URL,核對頁面是否可訪問、是否與 sitemap 中的地址完全一致;
- 對照栏目和内鏈,確認重要頁面都出現在 sitemap 中;
- 检查 robots.txt 是否誤屏蔽了 sitemap 或其中的目錄;
- 清理無效項後,重新生成並提交,观察抓取日誌里對這批 URL 的訪問變化。
別把 sitemap 当成收錄開關
sitemap 的作用是帮助發現,不能替代内鏈、栏目導航和内容质量。頁面没有入口、没有價值,放進 sitemap 也不會自動获得好的结果。反過来,如果站内連結已经能顺畅到達,sitemap 更多是补充和核對工具。
把 sitemap 当作一份需要定期打掃的清單:地址是否還有效、是否值得被看到,比里面有多少條更重要。
建议每季度至少检查一次,栏目大調整或批量刪除内容後立即复查。维護成本不高,但能减少蜘蛛在無效地址上的空跑,也让站点结构更清晰。