hreflang ジェネレーター

言語と URL の組を貼り付けて x-default を選ぶと、検証済みの hreflang セットを <link rel="alternate"> タグ、サイトマップの xhtml:link エントリ、HTTP Link ヘッダーとして出力します。ISO 639-1 の言語、ISO 15924 の文字体系、ISO 3166-1 の地域コードを照合し、en-uk、地域のみ、3 文字コード、重複タグ、相対 URL、x-default の欠落を検出します。各ページがセット全体を列挙するため相互リンクは保証されます。ブラウザー内で動作し、何も保存しません。

6 行中 6 行を受理。区切りはカンマ・タブ・セミコロン・縦線のいずれか、順序は自由、# で始まる行は無視されます。

どの言語にも一致しない訪問者に表示するページ。通常は言語選択ページか主要言語のページです。入力に明示的な x-default 行があればそちらが優先されます。

セット内のタグ 6 件 · エラー 0 件 · 警告 0 件

検出結果(1)

  • 情報セットに 2 個の異なるホストが含まれています。ccTLD 構成では正常ですが、入力ミスでないか確認してください。

セット

hreflang言語文字体系地域URL
dedehttps://www.example.com/de/
enenhttps://www.example.com/
en-GBenGBhttps://www.example.co.uk/
jajahttps://www.example.com/ja/
zh-HantzhHanthttps://www.example.com/zh-hant/
x-default既定https://www.example.com/

出力 — 同じセットをすべてのページに

  <link rel="alternate" hreflang="de" href="https://www.example.com/de/" />
  <link rel="alternate" hreflang="en" href="https://www.example.com/" />
  <link rel="alternate" hreflang="en-GB" href="https://www.example.co.uk/" />
  <link rel="alternate" hreflang="ja" href="https://www.example.com/ja/" />
  <link rel="alternate" hreflang="zh-Hant" href="https://www.example.com/zh-hant/" />
  <link rel="alternate" hreflang="x-default" href="https://www.example.com/" />

セット内のすべての URL の <head> にそのまま貼り付けます。各ページが自分自身を含む全代替を列挙するため、相互リンクが欠けることがありません。

検証と生成はブラウザー内で行われ、リクエストは一切送信されず、何も保存されません。言語・文字体系・地域コードは ISO 639-1、ISO 15924、ISO 3166-1 と照合します。このツールは見つかった内容を報告するだけで、どの市場にページが必要かは判断しません。

仕組み

1. 1 行につき 1 エントリを読み取る — 言語タグと絶対 URL は順序自由で、カンマ・タブ・セミコロン・縦線・空白で区切る。# で始まる行は無視。x-default 行は任意
2. 各タグを言語・文字体系・地域に分解し(アンダースコアはハイフンとして扱う)、大文字小文字を正規化する: 言語は小文字(ja)、文字体系は先頭大文字(Hant)、地域は大文字(GB)
3. 各部分を検証する — 言語は ISO 639-1(2 文字。iw/in/ji/mo は廃止コードとして表示)、文字体系は ISO 15924、地域は ISO 3166-1 alpha-2 と照合。en-uk、地域のみ(us)、3 文字コード(eng)は理由付きで拒否
4. URL を検証する — http または https の絶対 URL で解析可能、行をまたいだタグの重複なし。同じ URL を 2 つのタグで使うことは許容するが表示し、フラグメント(#)も表示
5. x-default を決定する: 明示的な行が優先、なければセレクターで選んだ行。x-default が複数あればエラー、なければ警告。x-default を末尾にしたセット全体が出力対象
6. 同じセットをページごとに 1 回ずつ出力する: <head> 用の <link rel="alternate" hreflang="…" href="…"> 行、各 URL の xhtml:link を含むサイトマップの <url> ブロック、非 HTML 文書用の Link HTTP ヘッダー。各ページが完全なセットを持つため、すべてのページが相互に参照し、相互リンクが欠けることはない

hreflang とジェネレーターが検証する内容について

hreflang は Google と Yandex に対し、そのページがどの言語(および任意で地域)向けか、他の読者向けの同等ページがどこにあるかを伝えます。リダイレクトではなく注釈です。検索エンジンは従来どおりランキングを決めますが、同じページの複数の版が競合する場合、検索者の言語と国に合った版に差し替えることができます。Bing やその他の多くの検索エンジンは hreflang を無視し、代わりに HTML の lang 属性と content-language ヘッダーを読むため、hreflang はこれらのシグナルを置き換えるのではなく補完します。

タグは ISO 639-1 の言語コード(2 文字、つまり eng ではなく en)で始まり、任意で ISO 15924 の文字体系(zh-Hant、sr-Latn)と ISO 3166-1 alpha-2 の地域(en-GB、pt-BR)が続きます。順序と参照表が重要です。英国は UK ではなく GB、地域だけを単独で使うことはできず、es-419(ラテンアメリカ)のようなタグは国連 M.49 の地域番号で Google は受け付けません。ジェネレーターは検索エンジンが許容する大文字小文字を正規化し、単純に誤っていて黙って無視される部分は拒否します。

多くの実装を壊すルールが相互性です。ページ A がページ B をドイツ語版として指すなら、B も A を指し返す必要があり、セット内のすべてのページが自分自身を含む他のすべてのページを列挙しなければなりません。相互リンクが 1 つ欠けるだけで Google は双方の注釈を無視します。ジェネレーターは構造的にこの問題を回避します。すべてのページに対して同一の完全なセットを出力するため、間違える唯一の方法は別のページに別のセットを貼ることです。x-default は、セット内のどの言語にも一致しない訪問者向けのページ(通常は言語選択ページか主要言語)を指定します。任意ですが、なければその判断は検索エンジンに委ねられます。

3 つの設置方法はどれも同じ役割を果たし、必要なのは 1 つだけです。<head> 内の <link> タグ、XML サイトマップの xhtml:link エントリ(ページごとのテンプレート編集が非現実的でサイトマップが既に生成されている大規模サイトに最適)、または PDF などの非 HTML ファイルで唯一の選択肢である Link HTTP ヘッダーです。どれを使う場合も URL は絶対 URL かつ正規 URL でなければなりません。リダイレクトされる URL や非正規 URL を指す hreflang は破棄されます。ジェネレーターは見つけた内容を報告するだけで、ある市場に専用ページが必要かどうかは判断しません。

よくある質問

x-default は必要ですか?
任意ですが、セットが訪問者の持ちうるすべての言語をカバーしない場合は推奨されます。x-default は列挙された言語のどれにも一致しないときに表示する URL(通常は言語選択ページか主要言語のページ)を指定します。ジェネレーターは欠けていれば警告し、任意の行を x-default として選べます。入力内の明示的な x-default 行はセレクターより優先されます。
なぜ en-uk は拒否されるのですか?
英国の ISO 3166-1 コードが GB だからです。en-uk はウェブで最も多い hreflang の誤記で、Google は推測せずにタグを無視します。検出結果には修正形の en-GB が表示されるので、元データを直せます。
地域なしの言語や、地域だけの指定は使えますか?
言語のみ(de)は有効で、国を問わずすべてのドイツ語話者に一致します。地域のみ(ドイツの意味での de や us)は無効です。hreflang は必ず言語で始まります。ドイツを特に対象にするなら de-DE、スイスのドイツ語話者なら de-CH を使います。
2 つの言語が同じ URL を指しても問題ありませんか?
問題ありません。1 つのページが複数のタグを担うことができます。1 つの URL に en と en-US、あるいは es・es-ES・es-MX 向けのスペイン語ページなど、各タグが 1 回ずつ現れれば有効です。ジェネレーターは共有 URL を情報として表示し、意図どおりか確認できるようにしたうえで、両方のタグを出力に含めます。
Search Console の「返されるリンクがありません」とは何ですか?このツールで防げますか?
ページ A が B を注釈しているのに B が A を注釈していない状態です。セット内の各ページは自己参照を含むセット全体を持たなければなりません。このジェネレーターはすべての URL に同じ完全なブロックを出力するため、そのまま貼れば相互リンクが欠けることはありません。エラーが出るのは、後からページを個別に編集した場合か、セット内の URL がリダイレクトする場合だけです。
hreflang は HTML・サイトマップ・HTTP ヘッダーのどこに置くべきですか?
1 つを選んでください。HTML の <link> タグは小規模サイトで最も簡単、サイトマップの xhtml:link はスケールしやすくテンプレートに触れずに済み、HTTP Link ヘッダーは PDF などの非 HTML ファイルで唯一の方法です。複数の設置方法を併用することはできますが、互いに食い違えばエラーとして扱われるため、利点なく保守の手間が倍になります。
Bing は hreflang を使いますか?
Bing はページの言語と市場を hreflang ではなく、HTML の lang 属性、content-language のメタタグまたは HTTP ヘッダー、URL 構造から判断すると述べています。Google と Yandex は hreflang を読みます。両方を設定してください。Google と Yandex には hreflang、それ以外には正しい lang 属性です。
SSRチェッカーURLのコンテンツがHTMLに含まれているか、JavaScriptで生成されているかを確認します。JSを実行せずにブラウザとGooglebotとしてページを取得し、フレームワークとレンダリング方式(Next.js、Nuxt、React SPA、WordPressなど)を検出、クローラーが見る単語数・リンク・見出しを集計し、ボットのブロックやダイナミックレンダリングを検出します。無料・登録不要。robots.txt テスターrobots.txt を任意の URL パスとクローラーに対してテストします。サイトから取得するか貼り付けて、Googlebot、Bingbot、GPTBot、ClaudeBot、PerplexityBot またはカスタムユーザーエージェントを選ぶと、そのパスを許可またはブロックしている正確なルールが表示されます。クローラーごとの一覧表、構文の警告、Sitemap 行も確認できます。RFC 9309 準拠の照合、ブラウザー内で動作、データは保存しません。Google SERP シミュレーター公開前に、ページが Google 検索結果でどう表示されるかを確認できます。タイトル、meta description、URL を入力するか公開中のページから読み込むと、ピクセル単位で正確なデスクトップ・モバイルのプレビュー、ピクセル数と文字数のカウンター、Google がテキストを切り詰める正確な位置、チェック結果の一覧が表示されます。無料、登録不要、データは保存しません。