sitemap 管的是“發現”,不是“收錄”
很多人把 sitemap 当成一個“提交就能收錄”的按钮:文件生成好、丢進後台,然後坐等索引數量上涨。實际執行一段時間就會發現,提交前後蜘蛛的抓取节奏可能有變化,但收錄结果並不會因為一份文件就整体改變。sitemap 解决的是“發現”問题,不是“收錄”問题。它把一批 URL 明确摆到蜘蛛面前,减少“没人連結所以找不到”的情况;至于這些頁面最终進不進索引,仍然由頁面本身的质量、可索引狀態和站点整体情况决定。
哪些 URL 值得放進 sitemap
- 返回 200、允许索引的規范 URL:canonical 指向自己,robots meta 里没有 noindex。
- 有實质内容、确實希望被搜到的頁面:栏目主頁面、文章詳情、产品頁。
- 站内連結深度較深、入口較少的頁面,靠 sitemap 补一條發現路径。
- 新上线、内鏈還来不及铺開的頁面。
- 更新频繁、需要重新抓取的頁面,配合可靠的 lastmod 一起提交。
哪些 URL 放進去只會添乱
- noindex 頁面:一邊声明不许索引,一邊請蜘蛛来抓,信号互相矛盾。
- 301、302 跳轉地址:應该放跳轉後的目标,而不是跳轉前的舊地址。
- 404、410 或已经下线的頁面:長期挂着死鏈,既消耗抓取,也削弱文件的可信度。
- 站内搜尋结果頁、排序篩選參數頁:數量可能無限增長,且大多是重复内容。
- 分頁的深层頁面、标簽聚合頁:是否值得收錄要單獨判断,不要整批塞進去。
多版本 URL 只留一個
同一個頁面如果存在带參數、大小寫不同、结尾斜杠不同等多個版本,sitemap 里只寫規范版本。把几個版本一起提交,等于主動把重复内容送到蜘蛛面前,後面再靠 canonical 收口,效率會差很多。如果站点同时存在 http 與 https,或者 www 與非 www 並存,先在服務器层面统一跳轉,再谈 sitemap。
格式和维護上的几個细节
- 單個文件建议不超過 5 萬個 URL、未压缩体积不超過 50MB,超出就分片,再用索引文件匯總。
- 一份 sitemap 里只放同一域名下的 URL,不要混入其他域名。
- 文件地址寫在 robots.txt 中,方便蜘蛛找到;有多份时列出索引文件即可。
- 定期清理:下线的頁面、失效的 URL 该删就删,sitemap 是一份维護中的清單,不是一次性動作。
lastmod 不要随便填
lastmod 是给蜘蛛判断“這個頁面值不值得再来一趟”的參考。如果每次生成 sitemap 都把時間刷成当天,蜘蛛很快就會学會忽略這個字段;反過来,頁面确實做了大幅修改却從不更新,也會错過重新抓取的时机。宁可只给真正改過内容的 URL 寫 lastmod,也不要整批刷時間。
提交之後该看什么
- 抓取日誌里這些 URL 有没有被訪問,返回的是什么狀態碼。
- 索引报告里,這批 URL 是進入了索引,還是停在“已發現,尚未编入索引”。
- 被排除原因的分布:是 noindex、重定向,還是“已抓取,尚未编入索引”。
- 站点整体抓取量有没有被這批 URL 挤占。
如果日誌里根本看不到抓取,先检查 robots.txt 是否拦截、文件是否可正常訪問、URL 本身是不是跳轉地址。如果抓取了却不收錄,問题通常不在 sitemap,而在頁面内容和站点整体质量层面。
把 sitemap 当成一份“告诉蜘蛛有哪些頁面”的清單,而不是收錄的承诺书,很多困惑會自然减少。