この記事の要点:
- XMLサイトマップは、検索結果に出したい正規のURLの一覧を検索エンジンに伝えるファイルで、インデックスを約束するものではない
- locは必須で、lastmodは重要な変更をした日だけ更新する。Googleはchangefreqとpriorityを使わない
- noindex・別URLへのcanonical・転送や404・robots.txtで止めたURLは載せない
- 1ファイルは50MB(圧縮前)または50,000URLまで。超えるときはサイトマップ インデックスで分けてまとめる
- Search Consoleで送信したら「成功しました」だけで安心せず、検出されたページ数と公開しているページ数を比べる
XMLサイトマップとは
XMLサイトマップとは、検索結果に出したいページのURLを一覧にして、検索エンジンに伝えるためのXML形式のファイルです。Googleはこのファイルを手がかりにページを見つけ、どのURLを、いつごろ見直せばよいかを判断します。
サイトマップは「このURLを見つけてください」という案内であり、インデックス(検索エンジンのデータベースへの登録)を約束するものではありません。載せたURLでも、内容や重複の状況によっては登録されないことがあります。
HTMLサイトマップとの違い
| 種類 | 読む相手 | 形式 | 目的 |
|---|---|---|---|
| XMLサイトマップ | 検索エンジンのクローラー | XMLファイル(例:/sitemap.xml) | URLの一覧と更新日を機械的に伝える |
| HTMLサイトマップ | サイトを訪れた人 | 普通のWebページ | サイトの全体像を見せ、目的のページへ案内する |
この記事は主に検索エンジン向けのXMLサイトマップを扱います。サイトを作るときの「サイトマップ」は、ページの階層を描いた構成図を指すこともあります。
HTMLサイトマップの作り方と、当サイトの例
HTMLサイトマップは、訪れた人が目的のページを探せるよう、主なページへのリンクを分類して並べたページです。作るときは次の点を確かめます。
- 分類ごとに見出しを付け、階層をメニューと合わせる
- 記事が多い場合は全記事を並べず、一覧ページやカテゴリーへのリンクにまとめる
- 公開中のページと自動でそろう仕組みにし、リンク切れを定期的に点検する
当サイト(seoagent.jp)では、利用者向けのサイトマップ(/sitemap/)にフッターと同じ分類で主なページ・機能のページ・規約類へのリンクを並べ、記事は記事一覧とトピックのページからたどれるようにしています。検索エンジン向けには、SEOプラグイン(Rank Math)のXMLサイトマップ(/sitemap_index.xml)をrobots.txtのSitemapの行で示しています(2026年10月14日に確認)。
XMLサイトマップが必要なサイトの目安
Googleは、ページ同士が適切にリンクされていれば、サイトマップがなくても多くのページを見つけられると説明しています。そのうえで、ページ数が多いサイト、公開したばかりで外部からのリンクが少ないサイト、どこからもリンクされていないページが多いサイト、動画や画像が多いサイトでは役立つとしています。
| サイトの状況 | 判断の目安 |
|---|---|
| ページ数が少なく(目安として500ページ程度以下)、すべてのページがメニューや内部リンクでつながっている | なくても困らないことが多い。CMSが自動で出すなら、そのまま使えばよい |
| 記事やページを毎週のように追加・更新している | 用意する。lastmod(最終更新日)で更新を伝えられる |
| ECサイトの商品ページなど、数千〜数万のURLがある | 用意する。種類ごとに分け、サイトマップ インデックスでまとめる |
| 開設したばかりで、外部からのリンクがほとんど無い | 用意して、Search Consoleから送信する |
| サイト移転やURLの変更をした直後 | 新しいURLのサイトマップを用意し、送信する |
作っておいて害はないため、迷ったら用意しておけば十分です。
XMLサイトマップの書き方(タグとサンプル)
基本の形(urlset)
1つのファイルに、ページごとの<url>を並べます。例の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-10-01</lastmod>
</url>
<url>
<loc>https://example.com/blog/sitemap-guide/</loc>
<lastmod>2026-10-05T10:30:00+09:00</lastmod>
</url>
</urlset>
| タグ | 役割 | Googleでの扱い・書き方の注意 |
|---|---|---|
| urlset | ファイル全体を囲む | xmlns(名前空間)を必ず書く |
| url | 1ページ分の情報を囲む | ページの数だけ繰り返す |
| loc | ページのURL | 必須。「https://」から始まる絶対URLで、正規のURLを書く |
| lastmod | 最終更新日 | 正確だと確かめられる場合に使われる。「2026-10-01」または時刻とタイムゾーン付きで書く |
| changefreq | 更新の頻度 | Googleは使用しない |
| priority | サイト内での優先度 | Googleは使用しない |
URLに「&」などの記号が入る場合は、「&」のようにエスケープします。ファイルはUTF-8で保存します。
lastmodの正しい付け方
- 本文、構造化データ、リンクなど、ページの重要な部分を変えた日にする
- フッターの年号やサイドバーの「人気記事」が変わっただけでは更新しない
- サイトマップを作り直した日時を、全ページに一律で入れない
例:ブログの記事に新しい手順の節を足したときは、その記事のlastmodだけを更新します。全ページの日付が毎日そろって変わるサイトマップは、Googleから「当てにならない値」と見なされやすくなります。
上限とサイトマップ インデックス
1つのサイトマップは、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-10-05</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
</sitemap>
</sitemapindex>
例:商品ページが12万件あるECサイトなら、商品を3つのファイルに分け、記事・カテゴリーのファイルと合わせてインデックスにまとめます。インデックスの中に、別のインデックスを入れることはできません。種類ごとに分けておくと、Search Consoleで「商品ページだけ登録が少ない」といった偏りに気づきやすくなります。
画像・動画・ニュース・多言語の拡張
画像、動画、ニュース記事の情報や、言語ごとの対応ページ(hreflang)も、名前空間を追加してサイトマップに書けます。通常のブログや企業サイトでは、まず基本の形が正しく出ているかを優先します。
サイトマップに載せるURL・載せないURL
サイトマップは「検索結果に出したい正規のURLの一覧」です。Googleは、サイトマップに載っていることを正規のURLを選ぶ手がかりの1つにします。迷うURLは、次の表で判断します。
| URLの種類 | 載せるか | 理由 |
|---|---|---|
| 記事・サービス・商品など、検索から来てほしいページ | 載せる | サイトマップの本来の対象 |
| noindexを付けたページ | 載せない | 「登録して」と「登録しないで」の矛盾した合図になる |
| 別のURLをcanonicalに指定しているページ | 載せない | 正規のURLだけを載せる |
| 301などで転送しているURL、404のURL | 載せない | 転送先・現存するURLに置き換える |
| robots.txtでクロールを止めているURL | 載せない | Googleが中身を読めない |
| 並べ替え・絞り込みのパラメータ付きURL(例:?sort=price) | 原則載せない | 中身が重なるURLが増える |
| 記事がまだ無いカテゴリー一覧、検索結果ページ | 載せない | 読者にとって中身の薄いページ |
| ログイン後のページ、テスト環境のURL | 載せない | 検索から来ても使えない |
例:不動産会社のサイトで、成約済みで削除した物件ページがサイトマップに残っていると、Googleは404のURLを繰り返し確かめに来ます。物件の掲載終了と同時にサイトマップから外れる仕組みにしておきます。
「https://」と「http://」、wwwの有無、末尾のスラッシュの有無など、URLの表記も1つにそろえます。
作り方:WordPress本体のサイトマップとSEOプラグイン
WordPress本体のサイトマップ
WordPressは、バージョン5.5から本体にサイトマップの機能があります。特に設定しなくても、次のようなURLで出力されます。
- インデックス:
https://example.com/wp-sitemap.xml - 投稿:
/wp-sitemap-posts-post-1.xml、固定ページ:/wp-sitemap-posts-page-1.xml - カテゴリー・タグ:
/wp-sitemap-taxonomies-category-1.xmlなど - 投稿者:
/wp-sitemap-users-1.xml
本体のサイトマップは手軽ですが、「記事のないタグ」や「投稿者アーカイブ」まで載ることがあり、細かい除外はコードで指定する必要があります。管理画面の「設定」→「表示設定」で「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていると、本体のサイトマップは出力されません。公開前のチェックを外し忘れていないか確かめます。新しくメディアを公開するときの確認項目の全体は「オウンドメディアの立ち上げ手順」にまとめています。
SEOプラグインのサイトマップ
SEOプラグインの多くは、本体のサイトマップを止めて、独自のサイトマップ(例:/sitemap_index.xml)を出します。noindexにしたページを自動で外す、投稿タイプごとに含めるかを選べる、といった設定が画面から行えるのが利点です。
| 状況 | 向いている方法 |
|---|---|
| 小規模なブログで、特に除外したいページが無い | WordPress本体のサイトマップ |
| noindexのページや記事のないタグを外したい、SEOプラグインを既に使っている | SEOプラグインのサイトマップ(本体の分は止める) |
| WordPress以外の仕組みで作ったサイト、数万件以上の商品データがある | データベースから自動で書き出すスクリプト、CMSの機能 |
どの方法でも、送信するサイトマップは1系統にします。本体のwp-sitemap.xmlとプラグインのsitemap_index.xmlを両方送信していると、片方だけが古い内容のまま残ることがあります。プラグインの切り替え後は、両方のURLをブラウザで開き、どちらが有効かを確かめます。
手で書く・ツールで作る場合
数十ページの静的なサイトなら、上のサンプルを手で書いても構いません。ただし、ページを追加・削除するたびに更新が必要です。更新を忘れやすい運用なら、公開の作業と同時にサイトマップが作り直される仕組みを選びます。
Search Consoleで送信する手順
- サイトマップのURLをブラウザで開き、XMLが表示されること、載っているURLが想定どおりであることを確かめます。
- Search Consoleで対象のプロパティを選び、左のメニューから「インデックス作成」→「サイトマップ」を開きます(オーナー権限が必要です)。
- 「新しいサイトマップの追加」に、サイトマップのURL(例:sitemap_index.xml)を入力し、「送信」を押します。
- 「送信されたサイトマップ」の一覧に表示され、ステータスが「成功しました」になることを確かめます。
robots.txtに次の1行を書いておく方法もあります。Search Consoleを使っていない検索エンジンにも場所を伝えられます。
Sitemap: https://example.com/sitemap_index.xml
サイトマップは公開したまま更新すれば、Googleが定期的に読み直します。内容を変えるたびに送信し直す必要はありません。1 ページずつ URL 検査から依頼する方法との使い分けは「インデックス登録をリクエストする手順」で説明しています。サイトマップはサイトのルート(例:https://example.com/)に置くのが基本です。
サイトマップ レポートの見方とステータス
ステータスの意味と対処
| ステータス | 意味 | まず確かめること |
|---|---|---|
| 成功しました | 読み込みと処理ができた | 「検出されたページ」の数が、載せたつもりの数と合っているか |
| エラーあり | 読み込めたが、形式などに問題がある | サイトマップ名をクリックして詳細を開き、エラーの種類と該当箇所を見る |
| 取得できませんでした | ファイル自体を取得できなかった | URLの打ち間違い、404、robots.txtでのブロック、ログインやIP制限がかかっていないか |
画面の文言は、表示言語や時期によって少し異なることがあります。「取得できませんでした」は、送信直後に一時的に出ることもあるため、URLを開けることを確かめてから時間をおいて再度見ます。
サーチコンソールのサイトマップでよく出るエラーと直し方
サーチコンソールのサイトマップ レポートでエラーが出たら、サイトマップの行を開いてエラー名を確かめ、直してから再送信します。主なエラーは次のとおりです(Search Console ヘルプ、2026年10月に確認)。
| エラー | 主な原因と直し方 |
|---|---|
| 取得できませんでした | URLの誤り(404)、robots.txtでのブロック、未対応の手動による対策。URLを開き、ルールを外す |
| 解析エラー | URLの「&」などがエスケープされていない |
| サイズの上限超え | 解凍後50MB超か50,000URL超。分けてサイトマップ インデックスにまとめる |
| 無効な日付 | lastmodがW3C Datetimeの形式でない |
| インデックスのネスト | インデックスの中に別のインデックスがある |
| パスの不一致 | サイトマップと載せたURLでwwwの有無が違う |
このレポートに出るのは、レポートかAPIで送信したサイトマップだけで、robots.txtで知らせたものは出ません。レポートからサイトマップを削除しても、載っていたURLがGoogleから消えるわけではありません。
載せたURLが登録されているかを見る
サイトマップ レポートで分かるのは「読み込めたか」と「URLをいくつ見つけたか」です。そのURLが検索結果に登録されたかは、「ページのインデックス登録」レポートで確かめます。
- サイトマップ レポートで、送信したサイトマップの行をクリックします。
- 「ページのインデックス登録を表示」を開くと、そのサイトマップのURLに絞り込んだ状態でレポートが表示されます。
- 「登録済み」と「未登録」の数を比べ、未登録の理由(例:「クロール済み – インデックス未登録」「代替ページ(適切な canonical タグあり)」)を確認します。
「代替ページ」や「noindex タグによって除外されました」がサイトマップのURLに多い場合は、載せるURLの選び方に問題があります。登録されない理由ごとの対処は「インデックスされない原因と確認手順」にまとめています。個々のURLは、URL検査ツールで「サイトマップ」の欄に送信済みのサイトマップが表示されるかも確かめられます。
よくある失敗と対処
| 起きること | 主な原因 | 直し方 |
|---|---|---|
| 新しい記事がサイトマップに出てこない | プラグインやサーバーのキャッシュが古いまま | キャッシュを消して作り直し、公開のたびに作り直されるようにする |
| サイトマップにnoindexのURLが混ざっている | noindexの設定とサイトマップの設定を別々に管理している | noindexのページを自動で除外する設定にする |
| http://やwwwありのURLが載っている | サイトのURL設定と、実際の正規URLが違う | CMSのサイトURLを正規のURLに合わせ、作り直す |
| 「取得できませんでした」が続く | 本番公開後もベーシック認証やIP制限が残っている | サイトマップのURLを、ログインしていないブラウザで開けるようにする |
| サイトマップ名を送ったのに古い内容が読まれる | 本体とプラグインのサイトマップを両方送信している | 使わない方をSearch Consoleで削除し、送信を1系統にする |
| lastmodが全ページ同じ日付 | 作り直した日時を一律に入れている | 各ページの実際の更新日を出す設定に直す |
当サイト(seoagent.jp)の実例
当サイト(seoagent.jp)では、SEOプラグインのサイトマップが古いキャッシュのまま残り、載っていたURLが4件だけという状態でした。キャッシュを作り直し、サイトの反映のたびに作り直すようにした結果、サイトマップのURLは4件から72件になり、その後、記事の追加で150件を超えています。あわせて、記事がまだ無い一覧ページはnoindexにして、サイトマップからも外しました。
この件は、Search Consoleの「成功しました」だけでは気づけません。「検出されたページ」の数を、公開しているページ数と比べることが確認の基本です。
ほかのテクニカルSEOの記事は「テクニカルSEOの記事一覧」にまとめています。
よくある質問
サイトマップのファイル名や置き場所に決まりはありますか。
ファイル名は自由です。置き場所はサイトのどこでもかまいませんが、Googleは、Search Consoleから送信しない場合、サイトマップが対象にできるのは置いたディレクトリ以下のURLだけだと説明しています。サイトのルートに置けば、サイト全体のURLを載せられます。
記事を更新するたびに、Googleへサイトマップを知らせる必要がありますか。
必要ありません。公開しているサイトマップを更新しておけば、Googleが定期的に読み直します。以前あった、サイトマップの更新をURLで知らせる「ping」の仕組みは、Googleが2023年に廃止を発表し、現在は使えません。場所は、Search Consoleでの送信かrobots.txtのSitemapの行で伝えます。Bingには、Bing Webmaster Toolsから送信することもできます。
XMLサイトマップがあれば、HTMLサイトマップは要りませんか。
読む相手が違います。XMLサイトマップは検索エンジン向け、HTMLサイトマップはサイトを訪れた人向けの案内です。メニューやカテゴリーの一覧で目的のページにたどり着けるなら、HTMLサイトマップは無くても困らないことが多いです。
サイトマップを分ける場合、Search Consoleには何を送信しますか。
サイトマップ インデックス ファイルを1つ送信すれば、その中の各サイトマップも読まれます。種類ごとのサイトマップを個別に送信しても構いません。個別に送信しておくと、サイトマップ レポートで種類ごとの状態を見分けやすくなります。
SEOAGENTでできること
SEOAGENTでは、接続したWordPressへ記事を公開・予約公開し、公開後はSearch Consoleと連携して記事ごとの検索データを確認できます。サイトマップの生成は、WordPress本体やプラグインの機能で行います。


