ガイド

サイトマップインデックス完全ガイド

サイトが大きくなったら、複数のサイトマップを1つのインデックスにまとめるのが定石です。仕組み、書き方、運用ルールを実例付きで解説します。

執筆: WebDoctor編集部·2026年7月16日·2 分で読めます


サイトマップインデックスとは、ページのURLではなく他のサイトマップファイルを列挙する「サイトマップのためのサイトマップ」です。ルート要素に<sitemapindex>を使い、1ファイルあたりURL 50,000件・非圧縮50 MBという上限を超える大規模サイトが、複数のサイトマップを1つの入口にまとめるために使います。検索エンジンにはインデックスのURLを1つ登録するだけで、配下のすべてのサイトマップが発見されます。

インデックスが必要になるのはいつか

次のいずれかに当てはまったら導入のタイミングです。

  • 上限への接近:URLが50,000件、または非圧縮で50 MBに近づいたとき。これは必須の分割です。
  • コンテンツ種別ごとの整理:商品・記事・カテゴリページなどを別々のサイトマップに分けると、Search Consoleでどの種別のインデックス状況が悪いかを切り分けられます。
  • 言語・地域ごとの整理:多言語サイトで言語別にサイトマップを分ける運用です。
  • 日付ごとの整理:ニュースサイトやアーカイブの多いサイトで、月別・年別に分割する運用です。

つまり、上限超過という「義務」だけでなく、診断しやすさのための「戦略」としても使えます。

書き方:実例

構造は通常のサイトマップとよく似ています。<url>の代わりに<sitemap>を使い、<loc>には子サイトマップのURLを書きます。

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

名前空間は通常のサイトマップと同じhttp://www.sitemaps.org/schemas/sitemap/0.9です。子サイトマップはgzip圧縮(.xml.gz)でも構いません。

守るべきルール

  • 最大50,000サイトマップ:1つのインデックスが参照できる子サイトマップは最大50,000件です。理論上は50,000×50,000 = 25億URLまで扱えます。
  • 入れ子は禁止:インデックスの中に別のインデックスを載せることはプロトコルで認められていません。参照できるのは通常のサイトマップだけです。
  • 子の<lastmod>:各<sitemap>エントリには、その子サイトマップファイルの最終更新日時を任意で記載できます。正確に記載しておくと、クローラーは変更のあったサイトマップだけを優先的に再取得できます。
  • ホストの一致:子サイトマップのURLは、原則としてインデックスと同じホストで配信されている必要があります。

Search Consoleにはインデックスだけを登録する

Google Search ConsoleにはインデックスファイルのURLだけを登録すれば十分です。Googleがインデックスをたどって配下のサイトマップをすべて処理し、Search Console上には子サイトマップごとの検出URL数とエラーが個別に表示されます。子を1つずつ登録し直す必要はなく、二重登録はレポートを読みにくくするだけです。robots.txtのSitemap:行にも、インデックスのURLを1行書けば完了です。

検証ツールは子サイトマップをどうチェックするか

WebDoctorのサイトマップ検証ツールにインデックスのURLを入れると、まずインデックス自体(名前空間、各<loc>の形式、lastmodの妥当性、入れ子の有無)を検証し、続いて配下の子サイトマップの一覧を表示します。各子サイトマップはワンクリックで個別に検証でき、大規模サイトでも問題のあるファイルだけを素早く特定できます。

よくある間違い

間違い正しい方法
インデックスの中にインデックスを載せる入れ子は禁止。階層は「インデックス→サイトマップ」の2段まで
インデックスにページURLを直接書くページは子サイトマップ側に。インデックスはサイトマップのみ参照
ルート要素を<urlset>のまま使うインデックスのルート要素は<sitemapindex>
子とインデックスを両方Search Consoleに登録登録はインデックスのみ。子は自動的に処理される
存在しない・404の子サイトマップを残す削除したサイトマップはインデックスからも除去する

導入の手順まとめ

  1. URLを種別・言語・日付など一貫した基準で複数のサイトマップに分割する(各5万件・50 MB以下)。
  2. <sitemapindex>を作成し、各子のURLと正確な<lastmod>を記載する。
  3. robots.txtのSitemap:行とSearch Consoleにインデックスのみを登録する。
  4. 再生成をデプロイフローに組み込み、子の増減がインデックスに反映されるようにする。

分割前のサイトマップに他の問題がないかは、サイトマップエラーの修正ガイドで確認できます。

サイトマップインデックス大規模サイトテクニカルSEO

Frequently asked questions

サイトマップインデックスはいつ必要ですか?
1つのサイトマップがURL 50,000件または非圧縮50 MBの上限に近づいたときは必須です。それ以外でも、商品・記事などのコンテンツ種別、言語、日付ごとにサイトマップを分けてインデックス状況を切り分けたい場合に有効です。
インデックスの中に別のインデックスを入れられますか?
いいえ。sitemaps.orgプロトコルはインデックスの入れ子を認めていません。インデックスが参照できるのは通常のサイトマップ(urlset)だけで、階層は「インデックス→サイトマップ」の2段までです。
Search Consoleには子サイトマップも登録すべきですか?
不要です。インデックスファイルのURLを1つ登録すれば、Googleが配下のサイトマップをすべて処理し、子ごとの検出URL数やエラーも個別に表示されます。二重登録はレポートを読みにくくするだけです。
1つのインデックスには何件まで載せられますか?
最大50,000件のサイトマップを参照できます。各サイトマップが最大50,000 URLを持てるため、理論上は1つのインデックスで25億URLまでカバーできます。それを超える規模なら、複数のインデックスをそれぞれ登録します。
子サイトマップのlastmodには何を書きますか?
その子サイトマップファイル自体の最終更新日時をW3C形式で書きます。正確に保つと、クローラーは変更のあったサイトマップだけを優先して再取得できます。正確に管理できない場合は省略しても構いません。

チェックを実行

あわせて読みたい