指南

Sitemap 索引文件完全指南

当一个站点地图装不下整个网站时,索引文件负责把多个站点地图组织起来。本文用一个完整示例讲清它的语法、规则,以及最容易踩的坑。

作者: WebDoctor 编辑部·2026年7月16日·2 分钟阅读


Sitemap 索引文件是「站点地图的站点地图」:一个以 <sitemapindex> 为根元素的 XML 文件,里面列出的不是页面地址,而是其他站点地图文件的地址。当 URL 超过 50,000 条、文件超过 50 MB,或者你想按内容类型、语言、日期来组织抓取入口时,就需要它。

什么时候需要索引文件

  • 触及硬限制:单个站点地图最多 50,000 条 URL、未压缩不超过 50 MB。超过任一上限就必须拆分,并用索引把拆分后的文件列出来。
  • 按内容类型组织:文章、产品、分类页各用一个站点地图,在 Search Console 里能分别看到每类页面的收录比例,定位问题快得多。
  • 按语言或日期组织:多语言站点按语言拆分,新闻或归档类站点常按月份拆分。

即使远未触顶,出于组织目的提前使用索引也完全符合协议。分块的额外好处在排查阶段最明显:当收录率突然下降时,你可以立刻看出是全站问题还是某一类页面的问题——如果只有产品站点地图的收录率掉了,问题多半出在产品页模板或其生成逻辑上。

完整示例

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-posts.xml</loc>
    <lastmod>2026-07-16T08:00:00+00:00</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-products.xml</loc>
    <lastmod>2026-07-10</lastmod>
  </sitemap>
</sitemapindex>

结构与普通站点地图几乎相同:命名空间一样,只是 <url> 换成了 <sitemap>,且每个条目只允许 <loc>(必填)和 <lastmod>(可选)两个子元素。完整定义见 sitemaps.org 协议

协议规则

  • 一个索引文件最多引用 50,000 个站点地图,自身同样不得超过未压缩 50 MB。
  • 不允许嵌套:索引只能指向普通站点地图,不能指向另一个索引文件。理论容量因此是 50,000 × 50,000 条 URL,足够任何规模的网站使用。
  • <loc> 必须是完整绝对 URL,且与索引文件位于同一主机。
  • 子条目的 <lastmod> 表示对应站点地图文件的最后修改时间。把它写准很有价值:搜索引擎可以只重新抓取发生变化的子文件,而不必每次全量重读。
  • 子文件本身可以是 gzip 压缩的 .xml.gz;索引里照常写它的完整地址即可。

关于 <lastmod> 再多说一句:对一个包含几十个子文件的大站来说,这是索引里唯一能帮搜索引擎「省力」的字段。生成脚本应在写入某个子文件时记录时间,而不是在索引生成时给所有条目统一盖章——后者会让每个子文件看起来都刚刚变过,字段随即失效。

只需提交索引文件

在 Google Search Console、Bing Webmaster Tools 或百度搜索资源平台提交时,只提交索引文件即可,子站点地图会被自动发现和处理。Search Console 处理完成后,会在索引条目下方展示每个子文件的状态。robots.txt 里的 Sitemap: 行同样只需写索引地址。重复提交每个子文件不算错误,但会让报告变得杂乱。

验证器如何检查索引

像我们的站点地图验证器这样的工具,对索引的检测分两层:先验证索引文件本身——根元素与命名空间、每条 <loc> 的格式、<lastmod> 的日期格式、条目数量;然后列出全部子站点地图,供你逐个一键验证。第二步不能省,因为索引有效并不代表子文件有效——实际排查中最常见的情况,恰恰是索引本身没问题,而某个子文件返回 404 或包含格式错误。

常见索引错误

错误后果修复
索引里嵌套另一个索引协议禁止,嵌套条目被忽略拉平结构,索引只指向普通站点地图
子文件返回 404该文件包含的所有 URL 都不会被抓取逐个验证子文件,修复或移除失效条目
子条目 <loc> 用相对路径条目无效改为完整绝对 URL
所有 lastmod 都等于同一构建时间字段失去参考价值,被搜索引擎无视只在子文件内容变化时更新它的 lastmod
索引与子文件不在同一主机子文件可能被忽略统一域名与协议,或在对应主机的 robots.txt 声明
在 <sitemapindex> 里直接列页面 URL解析报错或条目被忽略页面 URL 放进子站点地图,索引只列文件

生成工具通常已经帮你做好

大多数站点地图生成工具在 URL 超限时会自动拆分并生成索引,常见的命名方式是 sitemap.xml 作为索引,加上 sitemap-1.xml、sitemap-2.xml 等子文件。你需要确认的只有两件事:对外暴露和提交的是索引地址,以及每个子文件都能正常访问、内容有效。改版或更换生成工具后尤其要复查——旧的子文件路径如果已经失效,而索引还在引用它们,等于给搜索引擎递了一份带死链的清单。

无论索引是手写还是工具生成,上线前都值得完整验证一遍:把索引地址粘贴进验证器,先确认索引本身有效,再逐个检查子站点地图。如果查出问题,对照常见错误修复指南逐项处理即可。

站点地图索引大型网站技术 SEO

Frequently asked questions

索引文件也有 50,000 条和 50 MB 的限制吗?
有。一个索引最多引用 50,000 个站点地图,自身未压缩不超过 50 MB。每个子站点地图再各自遵守同样的限制,所以总容量对任何网站都绰绰有余。
可以在索引里同时列出页面和站点地图吗?
不可以。<sitemapindex> 的条目只能是站点地图文件的地址;页面 URL 必须放进某个子站点地图。混写会导致解析错误或条目被忽略。
网站规模不大,可以提前使用索引吗?
可以,协议对此没有限制。按内容类型拆分成几个小的站点地图并用索引汇总,反而便于在 Search Console 中分块监控各类页面的收录情况。
子站点地图必须和索引在同一主机上吗?
应保持同一主机,包括一致的 www 形式和协议。确需跨主机时,需要在托管子文件那台主机的 robots.txt 中声明相应站点地图,否则可能被搜索引擎忽略。

立即检测

继续阅读