XMLサイトマップとは?作成方法からサーチコンソールへの送信・活用法まで徹底解説

この記事の目次
XMLサイトマップとは?役割と基本構造
XMLサイトマップとは、Webサイト内のページ一覧をXML形式で記述したファイルです。検索エンジンのクローラーに対して「このサイトにはどのようなページが存在するか」を体系的に伝える役割を果たします。ファイル名は通常 sitemap.xml とし、ドメインのルートディレクトリに設置します。
HTMLサイトマップがユーザー向けのページ一覧であるのに対し、XMLサイトマップは検索エンジン向けの技術的なファイルです。SEOにおいて基本的かつ重要な施策の一つとされており、Googleをはじめとする主要な検索エンジンがXMLサイトマップのプロトコルをサポートしています。
XMLサイトマップの基本構文
XMLサイトマップの基本的な構造は以下のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/page1/</loc>
<lastmod>2026-04-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>各要素の意味と役割は以下のとおりです。
| 要素名 | 必須/任意 | 説明 |
|---|---|---|
| <urlset> | 必須 | サイトマップ全体を囲むルート要素。xmlns属性でサイトマッププロトコルの名前空間を指定します。 |
| <url> | 必須 | 個々のURL情報を囲む親要素。各ページにつき1つずつ記述します。 |
| <loc> | 必須 | ページの完全なURL(絶対URL)を記述します。http/httpsの統一、末尾スラッシュの有無にも注意が必要です。 |
| <lastmod> | 推奨 | ページの最終更新日をW3C Datetime形式(YYYY-MM-DD)で記述します。Googleはこの情報をクロール優先度の判断に活用しています。 |
| <changefreq> | 任意 | 更新頻度の目安(always, hourly, daily, weekly, monthly, yearly, never)を記述します。Googleは現在この値をほぼ参照していないとされています。 |
| <priority> | 任意 | サイト内での相対的な優先度を0.0〜1.0で記述します。こちらもGoogleはほぼ参照していません。 |
実質的に重要なのは <loc> と <lastmod> の2要素です。特に <lastmod> は正確な日付を記述することで、クロール効率の向上が期待できます。
なぜXMLサイトマップが必要なのか
検索エンジンのクローラーは、リンクをたどってページを発見・クロールします。サイト内の内部リンクが適切に設計されていれば、クローラーは自然とページを発見できます。では、なぜわざわざXMLサイトマップが必要なのでしょうか。
クローラーの発見を助ける
大規模サイトや複雑な構造を持つサイトでは、クローラーがすべてのページを発見できない場合があります。XMLサイトマップは、クローラーが見落としがちなページの存在を明示的に伝える手段です。特に以下のケースでは効果が高いとされています。
- ページ数が多い大規模サイト(数千ページ以上)
- 内部リンクが十分でない孤立したページがある
- 新規サイトで外部リンクがほとんどない
- 動的に生成されるページが多い(ECサイトの商品ページなど)
- JavaScriptで生成されるコンテンツが含まれる
インデックス登録の効率化
XMLサイトマップを提供することで、検索エンジンは効率的にサイトをクロールできます。<lastmod> が正確に設定されていれば、更新されたページを優先的にクロールしてもらえるため、新しいコンテンツや更新内容が検索結果に反映されるまでの時間を短縮できます。
クロールバジェットの最適化
検索エンジンがサイトをクロールするリソースには限りがあります(クロールバジェット)。XMLサイトマップで重要なページを明示することで、クローラーが効率的にリソースを配分できるようになります。これはテクニカルSEOの重要な要素です。
Googleの公式見解
Googleは公式ドキュメントで「サイトマップがなくてもほとんどのページは発見できるが、サイトマップがあるとクロールの効率が向上する」と述べています。つまり、サイトマップは必須ではないものの、あって損はない施策といえます。特にSEOに力を入れているサイトであれば、設置しない理由はありません。
XMLサイトマップの作成方法
XMLサイトマップの作成方法は、サイトの運用環境によっていくつかの選択肢があります。
WordPress 5.5以降の標準サイトマップ機能
WordPress 5.5以降では、コアの標準機能としてXMLサイトマップが自動生成されるようになりました。特別な設定をしなくても、/wp-sitemap.xml にアクセスすればサイトマップを確認できます。
ただし、WordPress標準のサイトマップには以下の制限があります。
- 不要なページ(タグ、著者アーカイブ、添付ファイルページなど)を個別に除外できない
- 投稿タイプごとのon/off設定がない
<lastmod>(最終更新日)が出力されない<changefreq>や<priority>の設定ができない
そのため、本格的なWordPress SEO対策を行うなら、以下のSEOプラグインの利用を推奨します。
SEOプラグインでカスタマイズする方法
WordPressでは、SEOプラグインを使ってXMLサイトマップを自動生成・カスタマイズするのが最も一般的です。主要な3つのプラグインでの設定方法を解説します。
Yoast SEOの場合:
- Yoast SEO → 設定 → サイトの機能 → XMLサイトマップを「オン」にする
- 自動的に
/sitemap_index.xmlが生成される - 投稿・固定ページ・カテゴリーなどのサイトマップが自動で分割管理される
不要なページの除外方法(Yoast SEO):
- Yoast SEO → 設定 → コンテンツタイプ → 各投稿タイプの「検索結果に表示」をオフにすると、該当タイプがサイトマップから自動除外
- タグアーカイブ・著者アーカイブ:設定 → タクソノミー → 該当項目をオフ
- 個別ページの除外:各投稿の編集画面 → Yoastメタボックス → 「検索エンジンにこのページのインデックスを許可しますか?」を「いいえ」に設定
All in One SEOの場合:
- All in One SEO → サイトマップ → サイトマップを有効化
- 含めるコンテンツタイプやタクソノミーを選択
- 自動的にサイトマップが生成・更新される
不要なページの除外方法(All in One SEO):
- サイトマップ設定画面 → 「投稿タイプ」タブで含める/除外するコンテンツタイプを選択
- 「タクソノミー」タブでタグ・著者ページの除外を設定
- 「高度な設定」で添付ファイルページの除外も可能
Rank Mathの場合:
- Rank Math → ダッシュボード → モジュール → サイトマップを有効化
- Rank Math → サイトマップ設定 から詳細をカスタマイズ
- 投稿タイプごとにサイトマップへの含有/除外を切り替え可能
不要なページの除外方法(Rank Math):
- サイトマップ設定 → 各投稿タイプのトグルでon/offを切り替え
- タクソノミー(タグ・カスタムタクソノミー)も個別に除外可能
- 添付ファイルページはデフォルトで除外される設計
投稿タイプ別のon/off設定のポイント:
いずれのプラグインでも、以下のような投稿タイプは基本的にサイトマップから除外するのがおすすめです。
- 添付ファイル(メディア)ページ:中身のないページが大量に生成されるため除外
- 著者アーカイブ:著者が1人の場合や著者ページに独自コンテンツがない場合は除外
- タグアーカイブ:タグページが薄いコンテンツになりがちな場合は除外
- 日付別アーカイブ:カテゴリと重複するため除外が推奨
静的サイト・手動作成
WordPressを使用していないサイトやカスタムCMSの場合は、以下の方法でサイトマップを作成できます。
オンラインツール:
- XML-Sitemaps.com:URLを入力するだけでサイトマップを自動生成してくれるオンラインツールです。無料版は500ページまで対応しています。
- Screaming Frog SEO Spider:サイトをクロールしてXMLサイトマップを出力できます。無料版は500URLまで対応です。
手動で作成:
テキストエディタでXMLファイルを直接作成することも可能です。小規模なサイトであれば、前述の基本構造に従ってURLを列挙するだけで済みます。ただし、手動管理はページの追加・削除時に更新漏れが発生しやすいため、50ページ以上のサイトでは自動生成ツールの利用をおすすめします。
サイトマップインデックスの仕組みと構文
1つのサイトマップファイルには最大50,000 URLまで、ファイルサイズは50MB(非圧縮時)までという制限があります。大規模サイト(50,000URL以上)ではサイトマップを分割し、サイトマップインデックスファイルで管理する必要があります。
サイトマップインデックスの構文は以下のとおりです。
<?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-03-30</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-pages.xml</loc>
<lastmod>2026-03-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
<lastmod>2026-03-28</lastmod>
</sitemap>
</sitemapindex>サイトマップインデックス運用のポイント:
- サイトマップインデックスには最大50,000個のサイトマップを列挙できます
- コンテンツタイプ別(投稿用、固定ページ用、商品用など)に分割するのが一般的です
- Yoast SEOやRank Mathなどのプラグインは、URL数が増えると自動的にサイトマップインデックス形式で出力します
- 各サイトマップファイルにも50,000 URL・50MBの制限が適用されます
- gzip圧縮(.xml.gz)で配信すればファイルサイズを削減でき、サーバー負荷の軽減にも効果的です
サイトマップに含めるべきページ・除外すべきページ
XMLサイトマップには、すべてのページを無差別に含めればよいわけではありません。検索エンジンに評価してほしいページだけを含め、不要なページは除外することがSEO効果を最大化するポイントです。
以下の表を目安に、サイトマップへの含有・除外を判断しましょう。
| 含めるべきページ | 除外すべきページ |
|---|---|
| メインコンテンツ(記事、商品ページ等) | noindexを設定しているページ |
| カテゴリページ(良質なコンテンツがある場合) | サンクスページ、フォーム確認画面 |
| 重要な固定ページ(会社概要、サービス紹介等) | 管理画面、ログインページ |
| 画像サイトマップ(ECサイトなど画像が重要なサイト) | パラメータ付きURL(重複コンテンツの原因) |
| 動画サイトマップ(動画コンテンツがあるサイト) | 重複コンテンツ(www有無、http/https混在) |
| トップページ | リダイレクト元の旧URL(301設定済み) |
| 新規公開ページ(早期インデックスを促進) | 検索結果ページ(サイト内検索) |
| 定期更新されるページ | タグアーカイブ(内容が薄い場合) |
| 多言語サイトの各言語版ページ | ページネーションの2ページ目以降 |
画像サイトマップ・動画サイトマップについて
ECサイトや動画コンテンツを持つサイトでは、通常のXMLサイトマップに加えて画像サイトマップや動画サイトマップを活用することで、Google画像検索や動画検索からの流入を増やせる可能性があります。
- 画像サイトマップ:商品画像が多いECサイトでは、画像の
<image:loc>や<image:title>を記述することで、画像検索での露出を向上 - 動画サイトマップ:動画コンテンツには
<video:title>、<video:description>、<video:thumbnail_loc>などの情報を提供し、動画検索結果にリッチスニペットとして表示
判断基準
基本的な判断基準はシンプルです。「このページが検索結果に表示されてほしいかどうか」を考え、Yesならサイトマップに含め、Noなら除外します。迷った場合は、実際にそのページが検索流入を獲得しているか(サーチコンソールのデータ)を確認するとよいでしょう。
Googleサーチコンソールへのサイトマップ送信方法
XMLサイトマップを作成したら、Googleサーチコンソールに送信してGoogleに認識してもらいましょう。サーチコンソールを通じてサイトマップを送信することで、クローラーが迅速にサイトマップを認識し、記載されたURLのクロールを開始します。
送信手順
- Google Search Consoleにログインし、対象のプロパティを選択
- 左メニューの「サイトマップ」をクリック
- 「新しいサイトマップの追加」欄にサイトマップのURLを入力(例:sitemap.xml)
- 「送信」ボタンをクリック
送信後、ステータスが「成功しました」と表示されれば完了です。エラーがある場合は詳細が表示されるので、問題を修正して再送信してください。
Ping送信による通知:
サーチコンソール以外にも、以下のURLにアクセスするだけでGoogleにサイトマップの更新を通知できます(Ping送信)。
https://www.google.com/ping?sitemap=https://example.com/sitemap.xmlCMS側で記事公開時にPing送信を自動実行する設定にしておくと、最新のサイトマップを素早くGoogleに伝えられます。
送信後の確認ポイント
- ステータス:「成功しました」になっているか確認
- 検出されたURL数:意図したページ数と一致しているか確認
- エラーや警告:不正なURLやリダイレクトされるURLがないか確認
- カバレッジレポートとの整合性:「インデックスに登録済み」のURL数がサイトマップ送信URL数と大きく乖離していないか確認
robots.txtでの指定も忘れずに
サーチコンソールでの送信に加えて、robots.txtにもサイトマップの場所を記述しましょう。これにより、Google以外の検索エンジン(Bing、Yandexなど)もサイトマップを発見できます。
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xmlrobots.txtはドメインのルートディレクトリに配置し、サイトマップのURLは絶対URLで記述する必要があります。robots.txtの詳しい設定方法は「robots.txtの書き方と設定方法」をご覧ください。
XMLサイトマップの更新頻度とメンテナンス
XMLサイトマップは作成して終わりではなく、サイトの更新に合わせて継続的にメンテナンスする必要があります。
更新のタイミング
以下のタイミングでサイトマップの更新が必要です。
- 新しいページ(記事・商品ページなど)を公開した時
- 既存ページの内容を大幅に更新した時
- ページを削除・非公開にした時
- URLの構造を変更した時
- サイトリニューアルを行った時
WordPressでSEOプラグインを使用している場合は、記事の公開・更新・削除に連動してサイトマップが自動更新されるため、基本的には手動での更新は不要です。
lastmodの正確性
Googleは <lastmod> の値を参考にクロール優先度を判断しています。実際にはコンテンツを更新していないのに <lastmod> を頻繁に更新すると、Googleからの信頼性が低下し、lastmodの値自体が無視される可能性があります。lastmodは実際の更新日と一致させることが重要です。
定期的な健全性チェック
月に1回程度、以下の項目を確認することをおすすめします。
- サイトマップに記載されたURLが実際にアクセス可能か(404エラーがないか)
- リダイレクトされるURLが含まれていないか
- noindexを設定したページがサイトマップに残っていないか
- 新しく追加したページがサイトマップに含まれているか
- サーチコンソール上でエラーが発生していないか
サイトマップのよくあるトラブルと対処法
XMLサイトマップの運用では、さまざまなトラブルが発生することがあります。ここでは、よくある問題とその対処法をまとめます。
「取得できませんでした」エラー
Googleサーチコンソールでサイトマップを送信した際に「取得できませんでした」と表示される場合は、以下の原因が考えられます。
- robots.txtでサイトマップのURLがブロックされている:robots.txtの
Disallowルールでサイトマップファイル自体やそのディレクトリへのアクセスをブロックしていないか確認してください - サイトマップURLが正しくない:URLのスペルミス、http/httpsの不一致がないか確認
- サーバーエラー(500番台):サーバーが正常にレスポンスを返しているか確認。大量のURLを含むサイトマップの場合、サーバーのタイムアウト設定を見直す必要がある場合も
- XMLの構文エラー:XMLとして正しい形式になっているか、バリデーターで確認
「送信されたURLにnoindexタグが追加されています」
このエラーは、サイトマップに記載したURLにnoindexタグが設定されている場合に発生します。対処法は以下のとおりです。
- 意図的にnoindexにしているページ:サイトマップから該当URLを除外する。SEOプラグインでnoindex設定したページは通常自動除外されますが、手動サイトマップの場合は自分で除外が必要
- 意図せずnoindexになっているページ:HTMLの
<meta name="robots" content="noindex">やHTTPヘッダーのX-Robots-Tag: noindexが誤って設定されていないか確認し、不要なnoindexを削除
URL数が50,000を超えている
1つのサイトマップファイルに50,000を超えるURLを記載するとエラーになります。この場合はサイトマップインデックスファイルを使って複数のサイトマップに分割してください。WordPressのSEOプラグインは通常、自動的に分割してくれますが、カスタムCMSや手動管理の場合は手動で分割が必要です。
lastmodが更新されていない
記事を更新しても <lastmod> が変わらない場合、Googleがページの更新を認識できず、再クロールが遅れる原因になります。
- WordPressの場合:SEOプラグインが正しく動作しているか確認。プラグインの競合やキャッシュが原因のこともあります
- 静的サイトの場合:サイトマップ生成スクリプトがファイルの更新日を正しく取得しているか確認
- CDN利用の場合:CDNのキャッシュが古いサイトマップを返している可能性があるため、キャッシュをパージして確認
サイトマップのURLが正規URLと異なる
サイトマップに記載するURLは、canonical(正規URL)と完全に一致させる必要があります。wwwの有無、http/httpsの違い、末尾スラッシュの有無など、些細な違いでもGoogleは別URLとして認識します。正規URLに統一されているかテクニカルSEOの観点から確認しましょう。
関連記事
- robots.txtの書き方と設定方法
- Googleサーチコンソールの使い方と活用法
- テクニカルSEOとは?内部対策の重要ポイント
- WordPress SEOの基本対策ガイド
- noindexタグの正しい使い方と設定方法
- SEOとは?基礎知識と対策方法を解説
まとめ
XMLサイトマップは、検索エンジンにサイトのページ構成を正確に伝えるための重要なSEO施策です。特に大規模サイトや新規サイトでは、クローラーの効率的なページ発見を助け、インデックス登録の速度向上に貢献します。
本記事のポイントをまとめます。
- XMLサイトマップは検索エンジン向けのページ一覧ファイルで、
<loc>と<lastmod>が特に重要な要素 - WordPress 5.5以降は標準でサイトマップを自動生成するが、SEOプラグイン(Yoast SEO・All in One SEO・Rank Math)を使えば不要ページの除外や投稿タイプ別の設定が可能
- 50,000URL以上の大規模サイトではサイトマップインデックスで分割管理が必要
- 作成後はGoogleサーチコンソールへの送信とrobots.txtへの記述を忘れずに行う
- 含めるべきページ(メインコンテンツ、カテゴリ、画像・動画サイトマップ)と除外すべきページ(noindex、サンクスページ、パラメータ付きURL)を適切に判断する
- lastmodは実際の更新日と一致させ、信頼性を維持することが大切
- 「取得できませんでした」「noindexエラー」などのトラブルは、robots.txtの設定やnoindex指定を確認して対処
XMLサイトマップの適切な運用は、テクニカルSEOの基盤となる施策です。一度設定したら終わりではなく、サイトの成長や構造変更に合わせて定期的にメンテナンスを行い、常に最新かつ正確な状態を保ちましょう。













