为什么要把站点地图拆开
站点地图不是越大越好。单个 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 更有效。分片文件本身也是页面,它既要被读到,也要被稳定地读到。