ガイド

XMLサイトマップのエラー一覧と修正方法

サイトマップのエラーはほとんどが定番の原因に行き着きます。症状から原因を特定し、最短で修正するための実践ガイドです。

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


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の解析が壊れます。&&amp;<&lt;のように必ずエスケープしてください。

<!-- NG -->
<loc>https://example.com/page?a=1&b=2</loc>
<!-- OK -->
<loc>https://example.com/page?a=1&amp;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超過分割してサイトマップインデックスを導入

修正後の確認手順

  1. WebDoctorのサイトマップ検証ツールにURLを入力し、エラーと警告がゼロになるまで修正を繰り返す。
  2. Google Search Consoleでサイトマップを再送信し、ステータスが「成功しました」に変わるのを確認する。
  3. 数日後に「ページのインデックス登録」レポートで、送信したURLが正しく検出されているか確認する。

日々の運用ルールについてはサイトマップのベストプラクティスもあわせてご覧ください。

サイトマップエラー修正テクニカルSEO

Frequently asked questions

サイトマップのエラーで最も多いのは何ですか?
名前空間の誤り・欠落と、URL内の未エスケープの&です。どちらもパーサーがファイル全体または該当エントリを拒否する原因になります。名前空間はsitemaps.orgの仕様からそのままコピーし、URLはXMLライブラリでエスケープして生成するのが確実です。
Search Consoleの「取得できませんでした」はどう直せばいいですか?
まずブラウザでサイトマップのURLを直接開き、HTTP 200で生のXMLが返るか確認してください。404、リダイレクト、HTMLエラーページ、robots.txtによるブロックが主な原因です。配信を修正したら、Search Consoleでサイトマップを再送信します。
lastmodの正しい書き方は?
W3C datetime形式を使います。日付のみなら2026-07-16、時刻を含めるなら2026-07-16T09:30:00+00:00の形式です。スラッシュ区切りの日付やUnixタイムスタンプは無効で、未来の日付は検索エンジンに無視されます。
エラーと警告はどう違いますか?
エラーはプロトコル違反で、クローラーがファイルやエントリを拒否する可能性があるものです。警告は受理はされるものの、重複URLや不正なchangefreq値のように、修正すればクロールの質が上がる問題を指します。まずエラーをゼロにし、次に警告を潰していきましょう。

チェックを実行

あわせて読みたい