Sitemap 协议硬限制:单个文件最多 50000 个 URL 且未压缩不超过 50MB。超过就要拆分成多个,再用索引文件把它们串联起来。
-
分片数
-
首片 URL 数
-
末片 URL 数
-
预估总大小(MB)
| 分片文件 | 序号范围 | URL 数 |
|---|
-
分片数 = ⌈URL 总数 ÷ 每片上限⌉;末片 URL 数 = 总数 − 上限 × (分片数 − 1);大小估算按每条 URL 平均约 80 字节(含 <url> 标签与换行)计算。
为什么要拆 Sitemap
Sitemap 协议对单个文件有两条硬限制:
- 最多包含 50000 个 URL
- 未压缩时文件大小不超过 50MB
超过任一限制,搜索引擎会直接拒绝解析整个文件——不是截断,是全部失效。对于一个有几十万商品的电商站,拆分成多个 sitemap 是必须的。
索引文件的写法
拆分后需要再建一个"sitemap 索引文件",它不含 URL,只列出所有分片的位置:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap1.xml</loc>
<lastmod>2026-10-02</lastmod>
</sitemap>
</sitemapindex>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap1.xml</loc>
<lastmod>2026-10-02</lastmod>
</sitemap>
</sitemapindex>
索引文件同样受 50000 条限制(即最多 5 万个 sitemap),超大站点需要多级索引。然后把这个索引文件的地址提交到搜索引擎的站长平台。
三种常见的拆分维度
| 维度 | 适用场景 | 优点 |
|---|---|---|
| 按数量顺序切分 | 通用场景,最简单 | 实现容易,任何站点都能用 |
| 按内容类型 | 商品 / 文章 / 分类 分开 | 某类更新时只需重传对应分片 |
| 按更新时间 | 高频更新的资讯站 | 新内容集中在少数分片,抓取效率高 |
实际推荐做法是按内容类型拆,再在类型内按数量切。这样增量更新友好:新增商品只需要重新生成商品类的分片,其他分片原样不动。
容易被忽略的几点
- 分片不要频繁变动:如果每次生成时分片顺序都变,搜索引擎会把大量 URL 当成"新出现"重新抓取,浪费抓取预算。保持稳定顺序(如按 ID 排序)。
- .gz 压缩要一并提交:提交 sitemap1.xml.gz 即可,无需同时提供未压缩版本,搜索引擎能自己解压。
- 分片内 URL 必须同域:一个 sitemap 里的所有 URL 必须属于同一主机名(子域名可视为不同主机)。
- 别忘了 robots.txt 声明:在 robots.txt 加上 Sitemap: https://example.com/sitemap-index.xml,这是让引擎发现 sitemap 最可靠的方式。
你可能还想问
为什么要拆分?
单个文件有数量与体积上限,超出后搜索引擎可能无法完整读取;拆分成多个再建索引文件能保证全部被处理。
索引文件怎么写?
用一个索引文件列出所有子文件地址,再把索引提交给搜索引擎;子文件自身不再互相引用,避免混乱。
更新后要重新提交吗?
内容变动后更新对应子文件的时间标记即可;搜索引擎会按标记重新抓取,不必每次全量重提交。
速查在线工具箱