XMLサイトマップのエラー一覧と修正方法
サイトマップのエラーはほとんどが定番の原因に行き着きます。症状から原因を特定し、最短で修正するための実践ガイドです。
XMLサイトマップのエラーは、その大半が「名前空間の誤り」「エスケープ漏れ」「URL形式の不備」「日付形式の誤り」「サイズ超過」「配信側の問題」という6つの型のどれかに当てはまります。つまり、症状さえ正しく読み取れば修正はほぼ機械的に行えます。この記事では、よくあるエラーを一つずつ取り上げ、原因と具体的な直し方を示します。
1. 名前空間の誤り・欠落
最も多く、最も影響が大きいエラーです。<urlset>(またはインデックスの<sitemapindex>)には、次の名前空間を一字一句正確に宣言する必要があります。
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
タイプミス、httpsへの書き換え、旧バージョン(0.84)の名前空間などがあると、パーサーはファイル全体を無効として扱います。sitemaps.orgの公式仕様からそのままコピーするのが確実です。
2. URL内の未エスケープ文字
URLに生の&が含まれていると、その時点でXMLの解析が壊れます。&は&、<は<のように必ずエスケープしてください。
<!-- NG -->
<loc>https://example.com/page?a=1&b=2</loc>
<!-- OK -->
<loc>https://example.com/page?a=1&b=2</loc>
対象となるのは& < > " 'の5文字です。手書きのサイトマップやテンプレートの文字列連結で起きがちなので、生成時にXMLライブラリを通すのが根本対策です。
3. 相対URL・スキームなしのURL
すべての<loc>は、スキームを含む完全な絶対URLでなければなりません。/page/のような相対パスや、//example.com/page/のようなスキーム省略形は無効です。必ずhttps://example.com/page/の形で記載してください。
4. lastmodの形式ミスと未来の日付
<lastmod>はW3C datetime形式のみ有効です。2026-07-16のような日付、または2026-07-16T09:30:00+00:00のようなタイムゾーン付き日時が使えます。16/07/2026やUnixタイムスタンプは無効です。また、未来の日付は検索エンジンに無視されるだけでなく、サイトマップ全体のlastmodの信頼を損ないます。生成時にサーバーの時計とタイムゾーン設定を確認してください。
5. URL 50,000件・50 MB超過
1ファイルの上限はURL 50,000件、非圧縮50 MBです。超えた場合はファイルを分割し、サイトマップインデックスにまとめます。詳しい手順はサイトマップインデックスのガイドで解説しています。
6. 配信側の問題:404・リダイレクト・HTML
ファイルの中身が正しくても、サイトマップのURLがHTTP 200でXMLを返さなければ意味がありません。よくあるのは、URLが404を返す、エラーページへリダイレクトされる、認証ページやHTMLのエラーページがsitemap.xmlの名前で返る、といったケースです。Google Search Consoleで「取得できませんでした」と表示される場合は、ほぼこの配信側の問題か、robots.txtでサイトマップURL自体をブロックしているのが原因です。ブラウザのシークレットウィンドウで直接URLを開き、生のXMLが表示されるか確認しましょう。
7. ホストの不一致とrobots.txtの矛盾
サイトマップ内のURLは、サイトマップを配信するホストと完全に一致している必要があります。wwwありとwwwなし、httpとhttpsの混在は典型的な失敗です。また、サイトマップに載せたURLをrobots.txtでブロックしていたり、ページ側にnoindexが付いていたりすると、クローラーは「クロールしてほしいのに拒否される」という矛盾したシグナルを受け取ります。サイトマップにはインデックスさせたい正規URLだけを載せてください。
症状から原因を特定する早見表
| 症状 | 考えられる原因 | 修正方法 |
|---|---|---|
| ファイル全体が無効と判定される | 名前空間の誤り、XML構文エラー | 名前空間を仕様どおりに修正、&などをエスケープ |
| 一部のURLだけ無視される | 相対URL、ホスト不一致、2,048文字超過 | 絶対URLに統一し、正規ホストに揃える |
| lastmodが反映されない | 形式が不正、未来の日付 | W3C形式に修正し、生成時刻を検証 |
| 「取得できませんでした」 | 404、リダイレクト、robots.txtのブロック | URLが200でXMLを返すよう配信を修正 |
| サイズ超過の警告 | URL 50,000件または50 MB超過 | 分割してサイトマップインデックスを導入 |
修正後の確認手順
- WebDoctorのサイトマップ検証ツールにURLを入力し、エラーと警告がゼロになるまで修正を繰り返す。
- Google Search Consoleでサイトマップを再送信し、ステータスが「成功しました」に変わるのを確認する。
- 数日後に「ページのインデックス登録」レポートで、送信したURLが正しく検出されているか確認する。
日々の運用ルールについてはサイトマップのベストプラクティスもあわせてご覧ください。