XMLサイトマップは、検索結果に表示させたいURLを検索エンジンへ知らせるためのファイルです。多言語サイトでは、各URLに対応する言語版の情報も記載できます。送信しただけで、すべてのページの取得や検索への登録が保証されるわけではありません。

hreflangをどこで管理するか決める
言語版の指定方法には、HTML、HTTPヘッダー、XMLサイトマップがあります。Googleでは3つとも同等に扱われます。XML方式がすべてのサイトで優れているわけではなく、CMSの出力、更新担当、扱うファイルに合わせて選びます。
サイトマップにまとめる方法では、ページのHTMLに言語版の情報を追加せずに管理できます。一方、公開されているURLとサイトマップの対応を継続して更新する必要があります。複数の方法を併用する場合は、不一致が起きないようにしてください。Googleの言語版の指定方法を参照できます。

各URLに、自分自身を含む言語版を記載する
同じ内容の日本語版と英語版がある場合、それぞれのURLの項目に同じ対応関係を入れます。下記のURLは説明用です。xhtmlの名前空間を宣言し、URLは完全な形で記載します。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/ja/product/</loc>
<xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/product/" />
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/product/" />
</url>
<url>
<loc>https://example.com/en/product/</loc>
<xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/product/" />
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/product/" />
</url>
</urlset>自分自身への指定と、相手から戻る指定を確認します。言語別のトップページを並べるだけでは、製品や記事ごとの対応にはなりません。翻訳が存在しないページを、存在するものとして出力しないようにします。
言語と地域のコードを取り違えない
誤った設定 | 意図 | 正しい設定 | 解説 |
en-UK | イギリス向け英語 | en-GB | イギリスのISO国コードは GB(United Kingdomではない) |
jp | 日本語 | ja | 日本語のISO言語コードは ja。jp は国コード |
zh-CN | 繁体字中国語 | zh-TW または zh-Hant | CN は中国本土(簡体字圏)を指す |
eu | ヨーロッパ全域 | (設定不可) | EU という地域コードはGoogleがサポートしていない。国単位での指定が必要 |
x-defaultは、指定した言語・地域に一致しない場合の案内先として検討します。言語選択ページや既定のページを指定できますが、必須ではありません。

URL数だけでなく、非圧縮の容量も確認する
1つのサイトマップは、50,000 URLまたは非圧縮で50MBが上限です。どちらかを超える場合は分割します。hreflangの子要素はURL数の上限には数えませんが、ファイル容量には含まれます。Googleのサイトマップ作成ガイドを参照してください。
元となるページがN件あり、すべてをL言語で公開するなら、URLの項目はN×L件です。各項目にL個の言語版リンクを入れると、リンク要素はN×L²個になります。以下は、その条件での試算です。
条件 | URLエントリ総数 | 1エントリあたりのリンク数 | 総ノード数 |
1万ページ × 2言語 | 20,000 | 2 | 40,000 |
1万ページ × 20言語 | 200,000 | 20 | 4,000,000 |
分割したファイルは、サイトマップインデックスでまとめる方法があります。言語別や製品・記事別に分けると、更新処理や問題の調査を分担しやすくなります。分割単位は必須の型ではなく、容量と管理方法に合わせて決めます。
配置先と送信方法を、管理しているサイトに合わせる
同じドメインのサブディレクトリで言語を分けている場合は、対象URLを含むサイトマップを用意し、Search Consoleで送信するか、robots.txtから場所を知らせます。配置する階層や、送信するプロパティの対象範囲も確認します。
複数ドメインでは、各サイトで管理する方法と、1か所に集約する方法があります。集約する場合は、Search Consoleで対象サイトの所有権を確認して送信する方法や、各サイトのrobots.txtから、そのサイトのURLを記載したサイトマップを参照する方法があります。どちらかが常に優れているわけではありません。詳しい条件はGoogleの複数サイト向け送信手順に従ってください。
robots.txtに場所を示す記述例です。実際に管理するサイトマップのURLへ置き換えます。
Sitemap: https://example.com/sitemap.xml
サイトマップと、実際のページを照合する
検索に出したい正規URLを掲載し、削除済みページやリダイレクト前のURLが残っていないかを確認します。パラメーター付きURLが一律に使えないわけではありません。追跡用パラメーターと、内容や言語を区別するパラメーターを分け、正規化の方針に合わせます。
取得できない場合は、HTTPの応答、認証やアクセス制限、空の本文、XMLの構文、応答にかかる時間を調べます。動的生成が一律に禁止されているわけではありませんが、安定して取得できるように生成方法やキャッシュを検討します。
canonicalとサイトマップで別のURLを示している場合は、どちらを検索に出したいかを確認します。タグの機械的な優先順位だけで結果を断定せず、Search Consoleで選ばれた正規URLも見ます。サイトマップの掲載と、利用者がたどる内部リンクの整備は両方必要です。
検証フェーズ | 推奨ツール・手法 | チェック項目 |
生成前 | CMS/DBクエリ | 言語コードの正当性、正規URLリストとの突合 |
生成後(デプロイ前) | Screaming Frog SEO Spider | ローカル環境でXMLをクロールし、相互参照の欠如や非正規URLの混入を検出 |
デプロイ後 | Hreflang Tags Testing Tool | 公開されたXMLを解析し、クラスターの整合性を可視化 |
運用中 | Google Search Console | カバレッジレポートでエラー推移を監視 |

ページの追加・削除や言語の追加時には、生成結果と公開URLを再確認します。関連する設定の点検は多言語サイトのSEO実装ガイドで説明しています。