Hreflang タグの実践:書き方、地域ページ、相互参照、よくあるミス
1. hreflang が解決すること:加点要素ではなく、誤判定の防止
まずよくある誤解を正しましょう。hreflang はランキングを上げません。Google は公式に何度も、hreflang タグはランキング要因ではないと説明しています。これが解決するのは別の問題です。ドイツ語ページと英語ページが同じ製品を扱っている場合、Google はドイツ語ページを英語ページの重複コンテンツと判定する可能性があります。
hreflang がないと、Google は言語検出だけを頼りに、どのバージョンをどの国のユーザーに表示するかを推測するしかありません。推測を誤ると、ドイツ語ユーザーが英語ページにたどり着き、直帰率が上がって順位が下がります。hreflang はあなたが Google に渡す説明書です。これらのページは互いの翻訳版であり、ユーザーの言語に応じて振り分けてください、と伝えるものです。
| よくある誤解 | 実際の状況 | 結果 |
|---|---|---|
| hreflang でランキングが上がる | ランキング要因ではなく、バージョン選択にのみ影響 | 追加しても順位は上がらない |
| 書けば必ず反映される | 一式のルールは1箇所破ると全体が無効 | 国際ターゲティングレポートにエラーが出る |
| 英語ページにだけ書けばよい | 各バージョンのページすべてに書き、相互参照する | 片側だけのタグは効かない |
| rel=alternate で代用する | それはレスポンシブ/モバイル版用 | 多言語には hreflang が必須 |
2. 3つの設置方法:サイト規模で選ぶ
hreflang は3箇所に置けます。3つの方法は効果は同じですが、運用コストとクロール速度が異なります。サイトの言語バージョン数とページ数で選びます。
| 設置方法 | 構文の形 | 向いている規模 | クロール速度 |
|---|---|---|---|
| head の link タグ | link rel=”alternate” hreflang=”de” | 言語バージョン5以下、ページ200以下 | 即時、ページのクロールに合わせて |
| XML sitemap | xhtml:link 子タグ | 多言語の大規模サイト、推奨 | 3〜7日で再クロール |
| HTTP header | レスポンスヘッダーの Link フィールド | PDF など非 HTML のみ | ファイルのクロールに合わせて |
たとえば、あなたのサイトに英語、ドイツ語、フランス語、スペイン語、アラビア語の5言語があり、各言語50の商品ページ、合計250ページあるとします。head link テンプレートで一括出力すれば、各ページの head に5行のタグを入れるだけで、維持コストは抑えられます。12言語、2000ページに拡大したら、head link ではページが遅くなるので、XML sitemap に移行し、プログラムで alternative エントリを一括生成しましょう。
HTML ページでは HTTP header 方式を使わないでください。それは PDF ダウンロードリンク用です。3つの方式を混在させると同じタグ群が重複宣言され、Google はそのうち1つを採用するため、原因調査が難しくなります。
sitemap 方式では、各 URL ノードの下に xhtml:link 子タグを2つ置き、1つは英語版、もう1つはドイツ語版を指し、さらに x-default を1つ追加します。この方式の利点は、言語版を変更するときに sitemap 1ファイルだけ直せばよく、ページごとに head を修正しなくてよいことです。欠点は、Google が sitemap を再クロールするまで3〜7日の遅延があり、緊急修正には使えないことです。ページ数が500を超える多言語サイトでは、手書きせずプログラムで自動生成することをおすすめします。
三、言語コードと国コード、地域ページ、相互参照
コードのルールは hreflang で最も間違えやすい部分です。言語コードは ISO 639-1 の2文字小文字(de、fr、ar)、国コードは ISO 3166-1 の2文字大文字(DE、AT、US)を使います。言語コードだけならその言語の全地域を表し、国コードを加えると特定の国を表します。
| 書き方 | 意味 | 活用シーン |
|---|---|---|
| hreflang=”de” | ドイツ語、国を問わない | ドイツとオーストリアで1ページを共用 |
| hreflang=”de-DE” | ドイツ国内のドイツ語 | ドイツ専用のローカライズ内容 |
| hreflang=”de-AT” | オーストリア国内のドイツ語 | オーストリアの価格・法規制の差分ページ |
| hreflang=”en-GB” | イギリス英語 | 英ポンド建て価格ページ |
| hreflang=”x-default” | フォールバックのデフォルト版 | すべてのグループに必要で、通常は英語ページを指す |
地域ページの判断:ドイツとオーストリアで価格、法規制、連絡先だけが違い、商品内容が同じなら、ドイツ版1つとオーストリアの差分ページ1つで十分です。ドイツ語圏のすべての国で全文を翻訳しないでください。独立した地域ページを作るべきかの境界線は国別にランディングページを作るを参照し、doorway ページと判定されないようにしましょう。
相互参照の具体的な書き方:ドイツ語ページの head に hreflang=”en” を書いて英語ページを指し、英語ページの head にも hreflang=”de” を書いてドイツ語ページを指す必要があります。両ページにはそれぞれ自己参照(自分の言語版を書く)も必要で、どちらにも x-default を付けます。1つでも漏れると、Google はタグ群全体を使いません。
自己参照のタグはよく見落とされます。「他のバージョンを指す」ことばかり考えて、「自分自身も指す」ことを忘れてしまうのです。正しいタグセットでは、英語ページに hreflang=”en” で自分の正規 URL を指す行を入れ、ドイツ語ページにも hreflang=”de-DE” で自分を指す行を入れます。Google はこの自己参照によって、そのバージョンが正規版の一つであると認識します。これが欠けていると、Google はタグセットが不完全だと判断し、処理せずスキップします。
4. よくあるエラー一覧と調査手順
hreflang は公開後 3 から 7 日以内に必ず検証してください。Search Console の国際ターゲティングレポートに具体的なエラーが表示されるので、次の表に沿って一つずつ修正します。
| 誤りのタイプ | 発生原因 | 修正アクション |
|---|---|---|
| URL が 404 を返す | 相手ページを削除したのにタグを残している | タグを削除するか、新しいページを指すよう変更する |
| noindex ページが含まれている | noindex にしたバージョンに hreflang を残している | タグセットからそのページを外す |
| 言語コードの大文字小文字が違う | de-DE ではなく de-de と書いている | 国コードを大文字に修正する |
| HTTP と HTTPS が一致していない | sitemap は http、実際のページは https | すべて https の完全な URL に統一する |
| ページネーションやフィルタページが混ざっている | 商品一覧のフィルタパラメータ付きページを言語版とみなしている | canonical ページにだけタグを書いている |
| x-defaultの欠落 | フォールバックタグを忘れている | 各セットに英語ページを指すタグを 1 つ追加する |
調査手順は 3 ステップです。まず Rich Results Test かサードパーティの hreflang チェックツールで 1 つの URL を実行し、タグセット全体が揃っているか確認します。次に Search Console の国際ターゲティングレポートで、Google が実際に検出したエラー数を確認します。最後に修正後に「修正を検証」ボタンで送信します。Google の再評価には約 2 から 4 週間かかります。多言語コンテンツ公開の 5 つの関門はこちらをご覧ください多言語コンテンツ公開フロー。hreflang はその最後の関門です。
見落としやすい境界線が一つあります。hreflang は「互いに翻訳版である」ページにのみ有効です。ドイツ語ページと英語ページに、言語が違うだけでまったく別の記事を書いているなら、無理に hreflang で組にしてはいけません。Google は内容が本当に相互翻訳かを判断し、内容が一致しない場合は同じくセット全体を無視します。言語をまたぐページは、同じ製品・同じテーマの翻訳であり、構成や段落数がおおむね対応している必要があります。
翻訳の品質も hreflang の効果に影響します。機械翻訳による偽のローカライズページは、タグが正しくても、内容の品質が低いため Google は該当国に表示しません。そのため hreflang を公開する前に、コンテンツは翻訳後編集の抜き取り検査を通す必要があります。用語と数字のローカライズについては多言語サイトのグラフ処理。
FAQ よくある質問
hreflang は head に置くのか、それとも sitemap に置くのか?
hreflang タグで本当に順位は上がりますか?
hreflang を書いたのに反映されないのはなぜですか?
ドイツとオーストリアはどちらもドイツ語ですが、hreflang は2つ必要ですか?
x-default とは何ですか?必ず付ける必要がありますか?
hreflang のエラーを修正してから効果が出るまでどのくらいかかりますか?
最後に
hreflang は「正しくやっても褒められず、間違えると全部台無しになる」典型の技術ポイントです。順位を上げる効果はありませんが、1 行書き漏らす、1 文字間違えるだけで、苦労して作った多言語コンテンツが Google に重複と判定され、努力が水の泡になりかねません。
実践は 3 ステップ。今週は検査ツールで主要な製品ページ 5 件の hreflang が一式そろっているか抜き取り確認します。来週は 4 つの鉄則に沿って相互参照、自己参照、x-default、絶対 URL を补齐します。3 週目は Search Console の国際ターゲティング レポートでエラーがゼロになったのを確認してから「修正を検証」をクリックします。アーキテクチャの面でサブディレクトリと独立サイトのどちらにするかまだ迷っているなら、まずHreflangの多言語対応の全体判断に戻ってください。
覚えておきたい一言。hreflang は順位を上げるためのものではなく、Google に翻訳の関係図を渡すためのものです。図は完全で、双方向で、受け皿が必要で、1 本欠けると図全体が無効になります。
