hreflang(エイチレフラング)とは、同じ内容のページを複数の言語・地域向けに公開しているときに、「このURLは日本語版、このURLは英語版、このURLは英国向け英語版」と検索エンジンへ伝えるための指定です。
多言語サイトでは、単に翻訳ページを作るだけでなく、各言語版が互いに対応するページであることをGoogleへ明示すると、ユーザーの言語や地域に合うURLを検索結果へ表示しやすくなります。
30秒でわかる結論
- hreflangは、同じページの言語・地域別URLをGoogleへ伝える指定
- 日本語なら
ja、英語ならen、米国向け英語ならen-USのように指定する - 各言語版には「自分自身+他のすべての対応ページ」を指定する
- ページAからBを指定したら、BからAへの戻り指定も必要
- HTML・HTTPヘッダー・XMLサイトマップの3方法があり、通常は1つ選べばよい
- 一致する言語がないユーザー向けには
x-defaultを利用できる - hreflangは翻訳機能でも順位を上げるタグでもなく、適切な言語・地域版を伝える仕組み
hreflangとは?
hreflangは、Googleに対してページの言語・地域ごとの代替版を伝えるために使います。 たとえば、日本語版と英語版で同じサービスを説明している場合、2つのURLが同じコンテンツのローカライズ版だと明示できます。
初心者向けに言い換えると
「このページとこのページは別記事ではなく、言語や地域が違う同じページです」と検索エンジンへ伝える目印です。
例
日本語版:https://example.com/ja/service/
英語版:https://example.com/en/service/
hreflangを正しく設定すると、Googleがユーザーの言語や地域に合うURLを検索結果へ提示する判断材料になります。
hreflangはどんなサイトで必要?
hreflangが役立つのは、同じページについて複数の言語版・地域版を持つサイトです。
日本語+英語サイト
必要度:高
同じ内容を日本語と英語で公開しているなら、各言語版を対応付けます。
米国・英国向け英語
必要度:高
言語は同じでも価格・通貨・配送条件など地域差がある場合に使います。
日本語だけのサイト
基本不要
言語・地域別の代替ページがなければhreflangは必要ありません。
自動翻訳だけ
設計確認が必要
実際にクロール可能な別URLとして各言語版を提供しているか確認します。
hreflangの基本的な書き方
HTMLで指定する場合は、ページの <head> 内に link rel="alternate" を追加します。
日本語版と英語版の例
<link rel="alternate" hreflang="ja"
href="https://example.com/ja/service/" />
<link rel="alternate" hreflang="en"
href="https://example.com/en/service/" />
ここで重要なのは、日本語ページにも英語ページにも同じ対応関係を記述することです。
自分自身のURLも指定する
hreflangでは、各ページから他言語版だけでなく、自分自身の言語版も指定します。
日本語ページに書く例
<link rel="alternate" hreflang="ja"
href="https://example.com/ja/service/" />
<link rel="alternate" hreflang="en"
href="https://example.com/en/service/" />
英語ページ側にも同じ2つを指定します。
「他言語版だけ」を書かない
Google公式では、各言語版について、そのページ自身を含むすべての代替版を指定するよう案内しています。
相互参照が必要
hreflangでは、ページAがページBを代替版として指定したら、ページBからページAへの指定も必要です。
日本語ページ ⇄ 英語ページ
片方向だけでは、第三者サイトが勝手に自分のページを別言語版として指定するような状況を防げないため、Googleは相互参照を確認します。
戻りリンク不足は代表的な設定ミス
日本語版から英語版を指定しているのに、英語版から日本語版へのhreflangがない場合、その指定が正しく処理されない可能性があります。
言語コードの書き方
Googleでは、hreflangの言語コードにISO 639-1形式を使います。
| 指定 | 意味 |
|---|---|
| ja | 日本語 |
| en | 英語 |
| de | ドイツ語 |
| fr | フランス語 |
| es | スペイン語 |
日本向けだから jp と書くのではありません。
hreflangの最初の値は国ではなく言語です。
国コードだけは指定できない
JP や US のような地域コードだけをhreflangへ指定することはできません。最初に言語コードが必要です。
地域まで指定する場合
同じ言語でも、国・地域によって内容が異なる場合は、言語コードに地域コードを追加できます。
| 指定 | 意味 |
|---|---|
| en-US | 米国向け英語 |
| en-GB | 英国向け英語 |
| en-CA | カナダ向け英語 |
| fr-CA | カナダ向けフランス語 |
地域コードはISO 3166-1 Alpha 2形式を使います。
米国と英国で内容が違う場合
<link rel="alternate" hreflang="en-US"
href="https://example.com/us/service/" />
<link rel="alternate" hreflang="en-GB"
href="https://example.com/uk/service/" />
x-defaultとは?
x-default は、指定したどの言語・地域にも一致しないユーザー向けのデフォルトURLを示す値です。
言語選択ページをx-defaultにする例
<link rel="alternate" hreflang="ja"
href="https://example.com/ja/" />
<link rel="alternate" hreflang="en"
href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default"
href="https://example.com/language-selector/" />
Google公式では、x-defaultは特に言語選択ページや、どの指定言語にも一致しないユーザー向けのフォールバックページに適しています。
x-defaultは言語コードではない
「その他の言語」という意味ではなく、明示した言語・地域に一致しない場合のデフォルト先です。
hreflangを設定する3つの方法
Googleでは、hreflang相当の言語・地域版指定を3つの方法で行えます。
| 方法 | 向いているケース |
|---|---|
| HTML | 一般的なWebページ |
| HTTPヘッダー | PDFなどHTML以外 |
| XMLサイトマップ | 多数の多言語URLを一括管理 |
Googleから見ると3つの方法は同等です。 全部同時に実装しても検索上の追加メリットはなく、むしろ管理が複雑になります。
初心者は1方式に統一する
通常のWordPressサイトなら、テーマや多言語プラグインがHTML hreflangを正しく出力できるなら、その方式だけで十分です。
HTMLで設定する方法
HTML方式は、各ページの <head> 内に対応する link タグを記述します。
3言語の例
<link rel="alternate" hreflang="ja"
href="https://example.com/ja/page/" />
<link rel="alternate" hreflang="en"
href="https://example.com/en/page/" />
<link rel="alternate" hreflang="de"
href="https://example.com/de/page/" />
URLは /en/page/ のような相対URLではなく、https:// から始まる完全なURLを指定します。
HTTPヘッダーで設定する方法
PDFなど、HTMLの <head> にlink要素を書けないファイルでは、HTTPレスポンスヘッダーで指定できます。
PDFの例
Link: <https://example.com/ja/file.pdf>; rel="alternate"; hreflang="ja",
<https://example.com/en/file.pdf>; rel="alternate"; hreflang="en"
一般的なWordPress記事でこの方法を選ぶ必要は通常ありません。
XMLサイトマップで設定する方法
大規模な多言語サイトでは、XMLサイトマップで言語・地域版の対応関係を管理する方法もあります。
各URLに対して、対応する全言語版を xhtml:link で指定します。
ページ数が多い場合、HTML内のタグ管理よりサイトマップ生成システムで一括管理した方が運用しやすいケースがあります。
手作業で大規模サイトを管理しない
10言語×数千ページのようなサイトでは、hreflangの組み合わせが急増します。CMSや生成システムで自動管理できる設計を優先してください。
canonicalとhreflangの違い
canonicalとhreflangはどちらもURLの関係を検索エンジンへ伝えますが、目的が違います。
| 項目 | canonical | hreflang |
|---|---|---|
| 目的 | 代表URLを示す | 言語・地域版を対応付ける |
| 対象 | 重複・類似URL | ローカライズ版 |
| 検索結果 | 代表URLへ統合する意図 | 適切な言語版を出し分ける意図 |
英語版から日本語版へcanonicalしない
日本語版と英語版を両方検索結果へ出したいなら、通常は各言語ページを自己canonicalにし、hreflangで相互に対応付けます。片方をもう片方へcanonicalすると、言語別ページを独立して扱ってほしい意図と矛盾しやすくなります。
多言語サイトのURLはどう分ける?
Googleは、言語ごとに異なるURLを使用する方法を推奨しています。
| 方式 | 例 |
|---|---|
| サブディレクトリ | example.com/en/ |
| サブドメイン | en.example.com |
| 国別ドメイン | example.de |
どの方式でもhreflangは利用できます。 Google公式では、代替URL同士が同一ドメインである必要はないとしています。
hreflangでよくある設定ミス
相互参照がない
日本語ページから英語ページを指定したのに、英語ページから日本語ページへ戻る指定がないケースです。 代表的なミスなので、全言語版で同じ対応表になっているか確認します。
自分自身を指定していない
各ページには、そのページ自身の言語版も含めます。
言語コードと国コードを間違える
日本語は ja です。日本の国コード JP だけを指定することはできません。
相対URLを使う
Googleは完全修飾URLを指定するよう案内しています。
https://example.com/en/ のように、プロトコルとドメインを含めます。
対応しないページ同士を結ぶ
日本語の商品Aページから英語版トップページへhreflangするのではなく、原則として同じ内容の対応ページ同士を結びます。
HTML・サイトマップ・ヘッダーで内容が食い違う
複数方式を同時利用して内容が不一致になると管理が難しくなります。 特別な理由がなければ1方式に統一します。
hreflangは重複コンテンツ対策?
hreflangは単純な「重複コンテンツを消すタグ」ではありません。 目的は、言語・地域ごとのローカライズ版の関係をGoogleへ伝えることです。
同じ英語で米国版・英国版のように内容が非常に近い場合、hreflangによってそれぞれの対象地域を示すことができます。
canonicalとの役割分担が重要
各地域版を検索結果へ出したいなら、代表URLへ一本化するcanonicalだけで処理するのではなく、各ページを適切にcanonical化しつつhreflangで地域関係を示します。
hreflangを設定するとSEO順位は上がる?
hreflangを設定しただけで検索順位が上がるとGoogleが保証しているわけではありません。
主な目的は、同じコンテンツの複数言語・地域版について、検索ユーザーに適切なURLを提示できるよう検索エンジンへ情報を渡すことです。
「SEO強化タグ」と考えない
hreflangは順位を上げるために追加するものではなく、多言語・多地域サイトのURL関係を正確に伝えるための技術設定です。
WordPressではどう設定する?
WordPressでは、多言語プラグインや多言語対応テーマがhreflangを自動出力する場合があります。
確認するポイント
- 各言語ページに固有URLがあるか
- 日本語・英語など対応ページ同士が紐付いているか
- hreflangが自動出力されているか
- 自己参照があるか
- 戻りリンクがあるか
- canonicalと矛盾していないか
- 同じhreflangをテーマとプラグインの両方で重複出力していないか
多言語プラグインを使っている場合は、手作業でhreflangを追加する前に、実際のHTMLソースを確認してください。
設定後の確認方法
hreflangは見た目には影響しないため、設定後にHTMLソースや生成サイトマップを確認します。
対応ページを開く
hreflang出力を確認
自己参照を確認
相互参照を確認
言語・地域コードを確認
大規模サイトでは自動検証ツールを使い、相互参照漏れや404 URL、誤った言語コードを定期的に確認すると管理しやすくなります。
どんな場合にhreflangを使わなくてよい?
単一言語だけのサイト
日本語ページしかなく、地域別の代替版もなければhreflangは基本的に不要です。
内容がまったく別のページ
日本語の記事Aと英語の記事Bが別テーマなら、単に言語が違うだけでhreflangの対応ページにはしません。
翻訳版URLが存在しない
将来英語版を作る予定があるだけなら、存在しないURLを先にhreflangで指定しないでください。
教科書判定
多言語サイトは「同じ内容の各言語版を相互に結ぶ」が基本
初心者は、hreflangを「同じページの日本語版・英語版・地域版の対応表をGoogleへ伝える仕組み」と理解すれば十分です。
実装では、各言語版に固有URLを用意し、自分自身を含む全対応ページを指定し、相互参照させることが最重要です。 通常のWordPressサイトなら、多言語プラグインが正しくHTML hreflangを出力しているか確認すればよく、3方式を重複して設定する必要はありません。
FAQ
Q.日本語サイトだけでもhreflangは必要ですか?
通常は必要ありません。hreflangは同じコンテンツに複数の言語・地域版がある場合に使います。
Q.日本語はjpと指定すればよいですか?
日本語の言語コードはjaです。JPは日本を表す地域コードで、地域コードだけをhreflangへ指定することはできません。
Q.hreflangとcanonicalは両方必要ですか?
役割が違います。canonicalは代表URL、hreflangは言語・地域版の対応関係を示します。各言語版を独立して検索結果へ出したい場合は、通常は各ページを適切にcanonical化し、hreflangで相互関係を示します。
Q.x-defaultは必須ですか?
必須ではありません。ただし、どの指定言語にも一致しないユーザー向けの言語選択ページなどがある場合は利用価値があります。
Q.HTMLとXMLサイトマップの両方にhreflangを入れた方が強いですか?
検索上の追加メリットはありません。GoogleはHTML・HTTPヘッダー・XMLサイトマップの方法を同等としており、管理しやすい1方式を選ぶ方が設定ミスを減らしやすくなります。
まとめ
この記事の結論
- hreflangは言語・地域別の代替URLをGoogleへ伝える仕組み
- 各ページ自身を含むすべての対応版を指定する
- 対応ページ同士は相互参照が必要
- 言語はja・enなど、地域付きならen-USのように指定する
- x-defaultで一致しない言語向けのデフォルトURLを指定できる
- HTML・HTTPヘッダー・XMLサイトマップの3方式がある
- canonicalや自動リダイレクトと役割を混同しない
hreflangで最も大切なのは、コードを入れること自体ではなく「どのページとどのページが同じ内容の言語・地域違いなのか」を正しく対応付けることです。 多言語サイトではURL設計を先に整理し、その対応関係をhreflangへ反映してください。
「URL正規化とは?canonicalとの違いも解説」「重複コンテンツとは?SEO上の問題と対策」もあわせて確認してください。