站点地图(sitemap)本质上是一份交给搜尋蜘蛛的“可抓取地址清單”。它不能保證收錄,也不能代替内容质量和内鏈,但它能帮蜘蛛更快發現新頁面、更快注意到已有頁面的更新。很多站点的問题不是没做 sitemap,而是里面塞了太多不该出現的地址,让這份清單的可信度被稀释。
先明确它能做什么、不能做什么
sitemap 的作用是“指路”,不是“催收錄”。蜘蛛拿到清單之後,仍然會按自己的节奏判断哪些頁面值得抓、值得留。所以不要指望加大提交量就能換来流量,也不要因為提交了没收錄就拿它当唯一指标。把它理解成一份地图:地图画得准,別人找路就快;地图上标了一堆断头路,反而没人敢信。
一份可用的 sitemap,先過這四關
只放“能够被索引”的規范地址
清單里出現的每一條 URL,理想狀態下都應该是:返回 200、頁面主体内容完整、允许被索引、並且是 canonical 指向的那個版本。带 noindex 的頁面、需要登入才能看的頁面、纯參數组合出来的篩選頁、以及已经做了 301 的舊地址,都不适合放進去。宁可少放,也不要放错。
lastmod 要反映真實修改
如果每次生成 sitemap 都把全部頁面的 lastmod 刷成目前時間,蜘蛛很快會發現這個信号不可信,之後即使某頁真的更新了,也未必愿意優先回来看。比較稳妥的做法是:lastmod 跟随正文實际改動的時間,样式調整、推荐位轮換這類不影响主体内容的改動,不必频繁變動時間戳。
數量不要一口气全塞進一個文件
單個文件里的 URL 數量過多时,讀取和解析都會變慢。可以按栏目或内容類型拆分,再通過一個索引文件匯總,這样也便于定位問题:某個分卷出错了,一眼就能看出是哪個栏目。
在 robots.txt 里寫明位置
如果 sitemap 放在非常規路径下,最好在 robots.txt 顶部用一行声明指出它的地址。注意這一行只是提示位置,不要和禁止抓取規則混在一起寫,容易造成理解偏差。多個 sitemap 就寫多行,保持清晰。
這些常见错誤,值得逐個對一遍
- 把 404、410 地址留在清單里長期不清理;
- 同一篇内容同时提交 www 和非 www、带斜杠和不带斜杠的版本;
- 提交了大量只有排序參數差异、内容基本重复的列表頁;
- 把草稿、測試环境、预览連結的地址誤带進去;
- 清單里出現了 robots.txt 中明确禁止抓取的目錄;
- 文件编碼或格式不規范,導致解析失敗,而自己並不知情。
別只盯着 sitemap 本身
sitemap 是补充,不是主入口。真正决定蜘蛛爬行路径的,還是站内連結结构。可以顺手對比一下:清單里的重点頁面,是否都能從首頁沿導航点進去;如果一個重要頁面只存在于 sitemap 中,站内却没有任何入口,它的抓取表現通常也不會理想。
同时,结合服務器日誌看看蜘蛛實际訪問了哪些地址。如果日誌里频繁出現清單之外的舊地址或參數頁,說明還有歷史入口没清理干净,這时候修内鏈、修重定向,比繼續往 sitemap 里加東西更有效。
判断一份 sitemap 好坏的标准很简單:清單里的地址,是否都是你希望被看到、並且确實可以正常打開的内容頁。
日常维護可以這样做
- 内容發布後,確認新頁面已進入對應的分卷,而不是等下一次全量生成;
- 頁面下线或改址时,同步從清單中移除舊地址;
- 每月抽查一次清單样本,随机点開十几條,看返回狀態和 canonical 是否正常;
- 關注搜尋资源平台中關于 sitemap 的處理反馈,有报错就及时修;
- 改版、換域名、調整目錄结构之後,重新核對该文件並更新 robots.txt 中的声明。
站点地图的维護成本並不高,难的是保持它和站点現状一致。把它当成站内结构的一份“對帳單”,定期核對,比一次性提交几萬條地址更有價值。