為什么要把站点地图拆開
站点地图不是越大越好。單個 sitemap 文件有硬性上限:最多 5 萬條 URL,未压缩体积不超過 50MB。超過之後,文件會被截断或直接判定無效,後半部分的 URL 相当于白寫。分片加索引文件,本质上是把一次投递改成分批投递。
索引文件承担什么角色
sitemap index 本身不列具体 URL,只列出各個子 sitemap 的地址。搜尋蜘蛛先讀索引,再按需進入分片。因此索引文件要保持轻量、路径稳定,不要频繁改文件名或換目錄,否則每次變動都等于重新介绍一遍自己。
分片怎么切比較合理
- 按内容類型切:文章、商品、标簽頁各自成片,便于單獨观察抓取情况。
- 按更新時間切:新内容單獨一片,老内容归档到另一片,避免每次更新都動整個大文件。
- 按語言或地区切:多語言站点各片獨立,减少互相干扰。
- 單個分片留出余量:不要顶到 5 萬條上限,控制在两萬到三萬條,後續增删更灵活。
几個容易被忽略的细节
- 分片里的 URL 要返回 200,頁面本身不能是 noindex,否則等于把地址送到门口又被挡回去。
- 不要放重定向地址,sitemap 里應该是最终地址。
- 文件訪問要稳定:sitemap 自己返回 500、超时或走多次跳轉,都可能让這一批 URL 卡在發現阶段。
- lastmod 只在内容真正變化时更新,批量刷時間戳會让该字段的可信度下降。
- 在 robots.txt 里声明索引文件地址,比分散声明多個分片更清晰。
分片與内鏈是两套系統
sitemap 解决的是地址被知道,内鏈解决的是地址被走通、被抓取路径覆盖到。只靠分片投递、頁面之間没有連結的 URL,通常發現得慢、抓得也浅。比較稳的做法是:分片保覆盖率,内鏈保優先級。
怎么確認分片真的被讀了
不要只看提交成功。對照服務器日誌,看搜尋蜘蛛是否訪問了索引文件、訪問了哪些分片、哪些分片里的 URL 迟迟没有請求记錄。差异明顯的分片,往往是文件過大、更新過频,或者返回狀態不稳定。
分片不是為了让提交數字好看,而是让每一批 URL 都有被稳定發現的机會。
节奏比數量更重要
结构简單、更新频率稳定、每片体量适中,通常比一次性塞進几百萬條 URL 更有效。分片文件本身也是頁面,它既要被讀到,也要被稳定地讀到。