很多人在後台提交了 sitemap,也看到狀態是“成功”,過几天去查收錄却發現頁面還是没進索引。于是開始怀疑 sitemap 没用,或者觉得是不是文件格式寫错了。實际情况通常更朴素:sitemap 只解决“告知”這一步,它管不了後面的事。
sitemap 的本职工作:帮 URL 被發現
搜尋引擎發現 URL 的途径主要有几條:站内連結、外部連結、歷史抓取记錄,以及 sitemap。對结构清楚、内鏈完整的小站来说,sitemap 的邊际價值不大,蜘蛛顺着連結就能爬到。但對下面几類情况它确實有用:
- 新站或新目錄,頁面還没有任何内鏈指向;
- URL 數量多,靠連結一层层爬效率太低;
- 頁面层級深,或者需要点击、提交才能到達;
- 包含大量非 HTML 资源,需要單獨說明。
注意這里的關鍵詞是發現。sitemap 让蜘蛛知道“有這么個地址”,但它不保證蜘蛛會来抓,更不保證抓完之後會收錄。
它不能替你做的事
- 不能提升頁面质量。内容單薄、和已有頁面高度相似,收錄决策不會因為它在 sitemap 里就改變。
- 不能保證抓取。抓不抓取决于站点的抓取配額和優先級,sitemap 只是一份候選清單。
- 不能改變規范判断。如果一组頁面被判定為重复,sitemap 里全列上也没用,索引里通常只會留下一條。
- 不能绕過 noindex 或 robots 限制。這两者的優先級高于 sitemap。
- 不能加速索引更新。它影响的是發現速度,不是索引的评估节奏。
換句话说,sitemap 是“提名”,不是“保送”。
提交了却没收錄,按這個顺序查
- 確認 URL 可被抓取:返回 200,没有被 robots.txt 挡住,没有 noindex。
- 看服務器日誌里蜘蛛到底来過没有。如果压根没来,問题出在發現或配額;如果来了很多次却没收錄,問题多半在頁面本身。
- 對比同類已收錄頁面,看内容是否過于接近、正文是否有可索引的實质内容。
- 检查 sitemap 里的 URL 是否和實际可訪問地址完全一致,包括 http/https、带不带 www、结尾斜杠、大小寫。
- 確認 sitemap 文件本身能正常訪問,且 lastmod 反映的是真實修改時間。
把 sitemap 当成一份推荐清單,而不是收錄開關,心態會顺很多。
几個常被忽略的细节
lastmod 別乱寫
每次生成都刷新全部 lastmod,會让這個字段失去參考價值,時間久了蜘蛛也就不再当真。只在内容确實變化时才更新。
數量與分片
單個文件有 URL 數量上限,超出要拆成索引文件。數量過于夸張的 sitemap,反而會稀释對重要頁面的注意力。
只放值得收錄的地址
把篩選參數頁、翻到第 20 頁的分頁、登入後才可见的地址都塞進去,等于在噪声里埋掉真正重要的 URL。
最後一点:收錄是结果,不是動作。優化 sitemap 能改善的只是“被發現”這一环,能不能進索引,最终還是要回到頁面本身有没有值得被索引的價值。