「XMLサイトマップって、結局どう作ればいいの?」
SEO対策を本格的に進めていくと、ほぼ確実にこの疑問にぶつかります。 XMLサイトマップは、検索エンジンにサイト内のページを効率よく伝えるための仕組みです。正しく設定すれば、クロールの効率が上がり、新しいページや更新したページがより早くインデックスされます。
逆に言えば、XMLサイトマップが存在しない、もしくは設定が不適切なサイトでは、せっかく作ったページがGoogleに認識されないまま放置されるリスクがあります。
特にページ数が多いサイトや、頻繁にコンテンツを更新するサイトでは、XMLサイトマップの最適化がSEOの成果を大きく左右します。
この記事では、XMLサイトマップの基本的な役割から、具体的な作り方、Google Search Consoleへの送信手順、そしてSEO効果を最大化するための設定ポイントまで、実務で使えるレベルで解説します。
SEO対策の全体像をまだ把握できていない方は、先にSEO対策とは?初心者でもわかる完全ガイドを読んでおくと、この記事の内容がより理解しやすくなります。
XMLサイトマップとは?SEOにおける役割
XMLサイトマップの定義 — 検索エンジンへの「地図」
XMLサイトマップとは、サイト内に存在するページのURLを一覧化したXML形式のファイルのことです。 検索エンジンのクローラーに対して「このサイトにはこれらのページがあります」と伝えるための、いわば地図のような役割を果たします。
通常、Googleのクローラーはリンクをたどってページを発見します。 しかし、内部リンクが不十分なページや、新しく公開したばかりのページは、クローラーが自力で見つけられないことがあります。
XMLサイトマップを設置しておけば、クローラーがサイト構造を把握しやすくなり、見落としのリスクを大幅に減らせます。
XMLサイトマップとHTMLサイトマップの違い
サイトマップには、XMLサイトマップとHTMLサイトマップの2種類があります。 混同しやすいので、ここで明確に区別しておきましょう。
| 項目 | XMLサイトマップ | HTMLサイトマップ |
|---|---|---|
| 対象 | 検索エンジン(クローラー) | 人間(サイト訪問者) |
| 形式 | XML(機械読み取り用) | HTML(ブラウザ表示用) |
| 設置場所 | ルートディレクトリ | サイト内のページとして公開 |
| 目的 | クロール効率の向上 | ユーザーのサイト内ナビゲーション |
SEOの文脈で「サイトマップ」と言えば、ほぼXMLサイトマップを指します。 HTMLサイトマップはユーザビリティ向上には役立ちますが、クローラーへの直接的な効果はXMLサイトマップのほうが圧倒的に大きいです。
XMLサイトマップがSEOに効く理由
XMLサイトマップは、直接的に検索順位を上げるものではありません。 しかし、SEOの土台となる「インデックス」の部分に強く影響します。
まず、クロール効率の向上です。 サイト内のすべてのURLをクローラーに伝えることで、ページの発見漏れを防げます。 数百ページ、数千ページを抱える大規模サイトでは、この効果は無視できません。
次に、インデックス速度の改善です。 新規ページを公開した際、XMLサイトマップに追加しておけば、クローラーがより早くそのページを認識し、インデックスに登録します。 記事を公開してから検索結果に表示されるまでのタイムラグを短縮できるということです。
さらに、クローラーに対する情報提供という効果もあります。 XMLサイトマップには、各URLの最終更新日(lastmod)や更新頻度(changefreq)、優先度(priority)といったメタ情報を含められます。 これにより、クローラーがどのページを優先的にクロールすべきかの判断材料を提供できます。
内部SEOの全体像については、内部SEO対策の完全ガイドで詳しく解説しています。
XMLサイトマップの作り方
方法1:WordPressプラグインで自動生成する
WordPressを使っているなら、プラグインで自動生成するのが最も手軽で確実な方法です。 代表的なプラグインとその特徴を比較します。
| プラグイン | 特徴 | おすすめの場面 |
|---|---|---|
| Yoast SEO | SEO設定と一体管理。XMLサイトマップ自動生成 | SEO全般を一括管理したい場合 |
| All in One SEO | 多機能。サイトマップのカスタマイズ性が高い | 細かい設定をしたい場合 |
| XML Sitemaps(旧Google XML Sitemaps) | サイトマップ生成に特化。軽量 | サイトマップだけを追加したい場合 |
| Rank Math | 無料で高機能。サイトマップ含むSEO機能が充実 | コストを抑えつつ高機能を求める場合 |
Yoast SEOでの設定手順
- WordPressの管理画面から「Yoast SEO」をインストール・有効化する
- 左メニューの「Yoast SEO」から「設定」を開く
- 「サイトの機能」タブ内にある「XMLサイトマップ」がオンになっていることを確認する
https://あなたのドメイン/sitemap_index.xmlにアクセスし、サイトマップが生成されていることを確認する
Yoast SEOの場合、投稿・固定ページ・カテゴリーなど、コンテンツタイプごとにサイトマップが自動で分割されます。 ページ数が増えても管理しやすい構造になっているのがメリットです。
不要なページを除外する設定
プラグインで自動生成すると、noindexに設定しているページやタグアーカイブなど、インデックスさせたくないURLまで含まれることがあります。 Yoast SEOの場合は、「検索での見え方」からコンテンツタイプごとに「検索結果に表示」をオフにすれば、サイトマップからも自動的に除外されます。
方法2:オンラインツールで作成する
WordPressを使っていない静的サイトや、小規模なサイトの場合は、オンラインのサイトマップ生成ツールが便利です。
代表的なツールは以下の通りです。
- XML-Sitemaps.com — URLを入力するだけで自動生成。500ページまで無料
- Screaming Frog SEO Spider — サイトをクロールして自動生成。高機能だが有料(500URLまで無料)
- Sitemap Writer Pro — デスクトップアプリ。大規模サイトにも対応
XML-Sitemaps.comでの手順
- XML-Sitemaps.com にアクセスする
- サイトのURLを入力して「Start」をクリックする
- クロールが完了したら、生成されたXMLファイルをダウンロードする
- ダウンロードした
sitemap.xmlをサイトのルートディレクトリにアップロードする
注意点として、オンラインツールで生成した場合は、新しいページを追加するたびに手動で再生成する必要があります。 更新頻度が高いサイトでは、プラグインやCMS側の自動生成機能を使うほうが運用コストは低くなります。
方法3:手動でXMLファイルを記述する
XMLサイトマップの仕様はシンプルなので、手動で作成することも可能です。 開発者や、サイトマップに含めるURLを厳密にコントロールしたい場合に有効な方法です。
基本的な記述フォーマットは以下の通りです。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2026-04-01</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://example.com/about/</loc>
<lastmod>2026-03-15</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
各タグの意味
| タグ | 必須/任意 | 説明 |
|---|---|---|
<loc> | 必須 | ページのURL。完全修飾URLで記述する |
<lastmod> | 任意 | 最終更新日。W3C Datetime形式(YYYY-MM-DD) |
<changefreq> | 任意 | 更新頻度の目安。always / hourly / daily / weekly / monthly / yearly / never |
<priority> | 任意 | サイト内での相対的な優先度。0.0〜1.0(デフォルトは0.5) |
手動作成の場合は、XMLの構文エラーに注意してください。
タグの閉じ忘れや、URLに含まれる & を & にエスケープし忘れるといったミスが多発します。
作成後は、後述するバリデーションツールで必ずチェックしましょう。
方法4:CMS・フレームワークの機能で自動生成する
WordPress以外のCMSやフレームワークでも、XMLサイトマップの自動生成に対応しているものがあります。
- Next.js —
next-sitemapパッケージを使えば、ビルド時に自動生成できる - Shopify — デフォルトで
/sitemap.xmlが自動生成される - Wix — 自動生成。手動での編集は不可
- Drupal — 「Simple XML Sitemap」モジュールで対応
Next.jsの場合、next-sitemap をインストールし、next-sitemap.config.js を設定するだけで、ビルドのたびに最新のサイトマップが生成されます。
動的ルーティングを多用するサイトでも、additionalPaths オプションで柔軟にURLを追加できます。
Google Search Consoleへの送信方法
なぜSearch Consoleに送信するのか
XMLサイトマップをサーバーに設置しただけでは、Googleが即座に認識してくれるとは限りません。 robots.txtにサイトマップのURLを記載する方法もありますが、最も確実なのはGoogle Search Consoleから直接送信する方法です。
Search Consoleから送信するメリットは3つあります。
1つ目は、送信直後にGoogleにサイトマップの存在を通知できること。 クローラーが次にサイトを訪れるタイミングを待つ必要がありません。
2つ目は、サイトマップのステータスを確認できること。 エラーの有無、検出されたURL数、インデックスされたURL数などが一目でわかります。
3つ目は、問題が発生した場合にエラー内容を具体的に把握できること。 XML構文エラーやURLの問題など、修正すべきポイントを特定できます。
送信手順(ステップバイステップ)
事前準備
Google Search Consoleにサイトを登録していない場合は、先にプロパティの追加と所有権の確認を済ませてください。
送信手順
- Google Search Console にログインする
- 左メニューから「サイトマップ」を選択する
- 「新しいサイトマップの追加」欄に、サイトマップのURLを入力する(例:
sitemap.xmlまたはsitemap_index.xml) - 「送信」ボタンをクリックする
- ステータスが「成功しました」と表示されれば完了
送信後、「送信されたサイトマップ」の一覧にステータスが表示されます。 「成功しました」となっていれば問題ありませんが、「エラーがあります」と表示された場合は、エラー内容を確認して修正が必要です。
robots.txtへの記載
Search Consoleへの送信と併せて、robots.txtにもサイトマップのURLを記載しておくことを推奨します。 Google以外の検索エンジン(Bingなど)にもサイトマップの場所を伝えられるためです。
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
robots.txtはサイトのルートディレクトリに設置します。
Sitemap: ディレクティブは、ファイルのどこに記載しても有効ですが、慣例としてファイル末尾に記載するケースが多いです。
Bing Webmaster Toolsへの送信
Googleだけでなく、Bingにもサイトマップを送信しておくと、検索流入の取りこぼしを防げます。 Bing Webmaster Toolsでも、Search Consoleと同様の手順でサイトマップを送信できます。
2026年現在、BingはMicrosoft Copilotの検索基盤としても利用されているため、Bing経由のトラフィックの重要性は以前より高まっています。
XMLサイトマップの最適な設定
含めるべきページ・除外すべきページ
XMLサイトマップには、インデックスさせたいページだけを含めるのが基本原則です。 不要なURLが混在していると、クロールバジェット(Googleがサイトに割り当てるクロールの上限)を浪費してしまいます。
含めるべきページ
- トップページ
- 主要なカテゴリーページ
- 個別の記事・商品ページ(公開中のもの)
- 重要な固定ページ(会社概要、サービス紹介など)
除外すべきページ
- noindexを設定しているページ
- canonicalで別のURLを指定しているページ
- パラメータ付きの重複URL(例:
?sort=priceなど) - 検索結果ページ、ログイン後のページ
- 404エラーを返すページ
- リダイレクト元のURL
このルールを守ることで、クローラーに「このサイトのサイトマップは信頼できる」と判断してもらえます。 不正確なサイトマップを送り続けると、Googleがサイトマップ自体を無視するようになる可能性もあるため、定期的な精査が重要です。
lastmod(最終更新日)の正しい設定
lastmodは、Googleがページの再クロールの優先度を判断する際に参考にする情報です。 ただし、正しく設定しなければ逆効果になります。
やってはいけないのは、全ページのlastmodを一律で現在日時に更新することです。 内容が変わっていないのにlastmodだけ更新すると、Googleはlastmodの信頼性を疑い、最終的にこの情報を無視するようになります。
正しい運用は、ページの内容を実際に更新したときだけlastmodを更新するというものです。 CMSのプラグインを使っている場合は、記事を更新すれば自動的にlastmodも更新されるため、基本的には手を加える必要はありません。
changefreqとpriorityの現実的な扱い
changefreq(更新頻度)とpriority(優先度)について、2026年現在の実態をお伝えします。
結論から言うと、Googleはこの2つの値をほぼ参考にしていません。 Google公式ドキュメントでも、changefreqとpriorityは「かなり無視する」と明言されています。
そのため、この2つの設定に時間をかける必要はありません。 設定するなら、以下のようにシンプルに分けるだけで十分です。
| ページ種別 | changefreq | priority |
|---|---|---|
| トップページ | daily | 1.0 |
| カテゴリーページ | weekly | 0.8 |
| 個別記事・商品ページ | monthly | 0.6 |
| 固定ページ(会社概要等) | yearly | 0.4 |
ただし、繰り返しますがGoogleはこの値をほぼ見ていません。 設定の労力は最小限にして、lastmodの正確性やURL選定の品質に注力するほうがSEO効果は高いです。
サイトマップのサイズ制限と分割
XMLサイトマップには、Googleが定めるサイズ上限があります。
- 1ファイルあたりのURL数:最大50,000件
- 1ファイルあたりのファイルサイズ:最大50MB(非圧縮時)
この上限を超える場合は、サイトマップインデックスファイルを使って分割します。
<?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-04-01</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-pages.xml</loc>
<lastmod>2026-03-20</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-categories.xml</loc>
<lastmod>2026-03-15</lastmod>
</sitemap>
</sitemapindex>
サイトマップインデックスには、最大50,000件のサイトマップURLを含められます。 つまり、理論上は50,000 x 50,000 = 25億URLまで対応可能です。
実務的には、コンテンツタイプごと(投稿・固定ページ・カテゴリーなど)に分割するのが一般的です。 Yoast SEOなどのプラグインを使っていれば、この分割は自動で行われます。
サイトマップのバリデーション(検証)
XMLサイトマップを作成・更新したら、必ずバリデーションを行いましょう。 構文エラーがあると、Googleがサイトマップを正しく読み取れず、送信しても効果がありません。
検証方法
- Google Search Console — 送信時にエラーがあれば通知される
- XMLサイトマップバリデーター — XML Sitemap Validator などのオンラインツールで構文チェック
- ブラウザでの直接確認 —
https://あなたのドメイン/sitemap.xmlにアクセスし、XMLが正しく表示されるか目視確認
よくあるエラーとしては、以下のものがあります。
- URLに
&が含まれている(&にエスケープが必要) <loc>タグ内のURLがhttp/httpsで始まっていない- XMLの宣言(
<?xml version="1.0"...>)が欠落している - 文字コードがUTF-8以外になっている
- 存在しないURL(404)がサイトマップに含まれている
エラーを放置すると、サイトマップ全体が無効と判定される場合もあるため、送信前のチェックは必須です。
FAQ
Q. XMLサイトマップがないとSEOに悪影響がありますか?
サイトマップがなくても、Googleはリンクをたどってページを発見できます。 そのため、小規模なサイト(数十ページ程度)で、内部リンク構造がしっかりしていれば、サイトマップがなくても大きな問題にはなりません。
ただし、100ページ以上のサイト、新しいドメイン、頻繁に更新するサイトでは、サイトマップの設置を強く推奨します。 クロール効率とインデックス速度に明確な差が出るためです。
Q. サイトマップの更新頻度はどのくらいが適切ですか?
理想的には、サイトの内容が更新されるたびにサイトマップも更新するべきです。 CMSのプラグインを使っていれば自動更新されるため、特に気にする必要はありません。
手動で管理している場合は、最低でも月1回は更新内容を反映させましょう。 新しいページを公開したのにサイトマップに追加し忘れるのは、よくあるミスです。
Q. 画像サイトマップや動画サイトマップも必要ですか?
通常のWebページであれば、標準のXMLサイトマップだけで十分です。 画像サイトマップや動画サイトマップは、画像検索や動画検索からのトラフィックを重視する場合に有効です。
ECサイトで商品画像の検索流入を狙いたい場合や、YouTubeに埋め込まずにサイト上で動画を公開している場合は、専用のサイトマップを検討する価値があります。
Q. サイトマップを送信したのにインデックスされないのはなぜ?
サイトマップの送信は、インデックスを保証するものではありません。 Googleはサイトマップを参考にしますが、最終的にインデックスするかどうかはページの品質やサイト全体の評価に基づいて判断します。
インデックスされない場合は、以下の点を確認してください。
- ページにnoindexタグが設定されていないか
- robots.txtでクロールをブロックしていないか
- ページのコンテンツが薄くないか(低品質コンテンツと判定されていないか)
- canonicalタグが別のURLを指していないか
- サーバーエラー(5xx)が発生していないか
Q. 複数のサイトマップを送信しても問題ありませんか?
問題ありません。 Search Consoleでは、1つのプロパティに対して複数のサイトマップを送信できます。
コンテンツタイプごとに分けたサイトマップを個別に送信しても、サイトマップインデックスでまとめて送信しても、どちらでも構いません。 管理のしやすさで選んでください。
まとめ
XMLサイトマップは、SEOの「派手な施策」ではありません。 しかし、検索エンジンにサイトの情報を正しく伝えるための、極めて重要な基盤です。
改めて、この記事のポイントを整理します。
XMLサイトマップの基本
XMLサイトマップは、検索エンジンにサイト内のURLを伝えるためのXMLファイルです。 クロール効率の向上、インデックス速度の改善、ページの発見漏れ防止に効果があります。
作り方の選択肢
WordPressならプラグイン(Yoast SEO等)で自動生成するのが最も手軽です。 それ以外のサイトでは、オンラインツール、手動作成、CMS/フレームワークの機能を活用してください。
送信と運用のポイント
Google Search Consoleから送信し、エラーがないか定期的に確認すること。 robots.txtにも記載して、Google以外の検索エンジンにも対応すること。
設定の最適化
インデックスさせたいページだけを含め、lastmodは実際の更新時のみ変更する。 changefreqとpriorityはGoogleがほぼ無視しているため、最小限の設定で問題ありません。
サイトマップの設定は一度やれば終わりではなく、サイトの成長に合わせて継続的にメンテナンスしていくものです。 定期的にSearch Consoleのステータスを確認し、エラーや除外URLの状況を把握する習慣をつけておきましょう。
XMLサイトマップの最適化を含めた内部SEO全体の進め方については、内部SEO対策の完全ガイドで体系的にまとめています。 また、SEO対策の全体像はSEO対策とは?初心者でもわかる完全ガイドで確認できます。
