hreflang タグ: ConveyThis からの完全な 2026 実装ガイド

Hreflang タグを発見し、多言語 Web サイト SEO に簡単に実装する方法を学びましょう。
クレジットカード不要 契約義務なし
G2 High Performer Spring 2023
G2 Easiest Setup Fall 2024
G2 Best Support Spring 2025

· アレックスB · ブログ

この投稿を次のように要約します: 11分で読めます

hreflang は、多言語 SEO で最も誤って実装されているタグです。500+ の国際サイトを監査した結果、同じ 5 つの間違いが約 80% に現れていることがわかりました。初めて正しく行う方法は次のとおりです — 誰も文書化していないエッジケースも含まれます。

検索コンソールを開いて、警告 “サイトに hreflang タグがありません” — またはさらに悪いことに、Google が翻訳されたページのランキングを停止し、その理由がわからないサイレント バリアント — を見たことがある場合は、このガイドが最適です。

hreflang は、何度も説明される技術的な SEO トピックの 1 つですが、ほとんどの説明では実際に本番環境で壊れる部分がスキップされるため、完全にクリックされることはありません。4 行の例は、23 の言語、地域バリアント、AMP ページ、およびサブドメインに存在するチェックアウト フローがあるまでは正常に機能します。その後、すべてが静かに崩壊し、ドイツの交通量は 4 分の 1 で 40% 減少します。

このガイドでは、現実世界で機能する実装について説明します。教科書版ではありません。Cloudflare がヘッダーをキャッシュするバージョンでは、Next。js はオンデマンドでページを生成し、CMS はサイトマップに存在しない末尾のスラッシュを追加します。

Hreflang が実際に何をするのか(そして何をしないのか)

hreflang は、ユーザーにさまざまな言語や地域で表示するページのバージョンを検索エンジンに指示します。それはランキングのシグナルではなく、人間関係のシグナルです。

この区別は重要です。hreflang を追加しても、フランス語のページのランクがフランスで高くなるわけではありません。Google に次のように伝えます。“この英語ページとこのフランス語ページは、同じコンテンツの同等の翻訳です。誰かがフランスからフランス語で検索するときは、フランス語のものを見せてください。” それがなければ、Google は依然としてフランス語ページをランク付けする可能性がありますが、英語ページをフランス語検索者に提供する可能性もあります —。さらに悪いことに、両方を重複コンテンツとして扱い、降格するコンテンツを選択する可能性があります。

Hreflang が行う 3 つのこと:

  • 適切な言語バージョンを適切なユーザーにルーティングします。
  • 翻訳されたページ間のコンテンツの重複によるペナルティを防止します。
  • 同じコンテンツの言語バリアント間でランキング信号を統合します。

Hreflang が行わない 3 つのこと:

  • コンテンツを翻訳します(明らかですが、述べる価値があります)。
  • 単一市場内のランキングを向上させます。
  • 翻訳品質の悪さを修正します。Google は翻訳品質を独立して評価することが増えています。

基本的な構文(そしてほとんどの例が不完全な理由)

ほとんどのガイドが示すバージョンは次のとおりです。それは正しいですが、最も重要な行も欠落しています

<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />

このスニペットは 3 つの言語バージョンを宣言します。部分的に動作します。問題: これらのタグを使用するすべてのページは、リスト内で自分自身を参照する必要があります。それ以外の場合、Google は参照を一方向として扱い、破棄する可能性があります。

英語ページの完全版は次のようになります:

<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

2 つのことが変わりました:

  • 自己参照フレフラン。 英語ページは現在、英語版であると宣言しています。これがなければ、このページの hreflang クラスター全体を無視する Google のアルゴリズムが文書化されます。
  • x-デフォルト。 これにより、指定されたバージョンに言語が一致しないユーザーのフォールバック ページが宣言されます。韓国人ユーザーがあなたのサイトにアクセスしたが、あなたが韓国人を持っていない場合、x-default は Google にどのページを提供するかを指示します。

ここで、ほとんど正しく説明されていない部分があります。同じロジックがフランス語のページとドイツ語のページにも当てはまります。各ページには、それ自体を含むすべての言語バージョンと x-default をリストする必要があります。英語のソースだけではありません。

フランス語のページでは:

<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

英語のページと同じです。それがポイントです。hreflang 宣言は相互的である必要があります — すべての言語バージョンは他のすべての言語バージョンを参照する必要があります。ページ A がページ B を指している場合、ページ B はページ A を指さなければなりません。Google はこれら “リターン タグ” を呼び出します。これらは国際 SEO で最も失敗した検証ルールです。

言語コード: チートシート

hreflangコードはフォーマットに従います language または language-REGION。言語では ISO 639-1 (2 文字、小文字)が使用されます。リージョンは ISO 3166-1 Alpha 2 (2 文字、大文字)を使用します。最も一般的な混乱:

コード実際に何を意味するのかよくある間違い
en英語(どの地域でも)En-US を指す場合は “en” を使用します
en-US米国ユーザー向け英語En-us(小文字領域)— 無効と書きます
en-GBイギリス向け英語En-UK — UK の書き込みは有効な国コードではありません
zh-Hans簡体字中国語(文字ベース)リージョンではなくスクリプトを意味するときに zh-CN を使用します
zh-Hant繁体字すべての繁体字中国語ユーザーに zh-TW を使用します
pt-BR / pt-PTブラジル語 / ヨーロッパポルトガル語Just “pt” — を使用すると、ブラジルとポルトガルは大きく異なります
es-419ラテンアメリカスペイン語(国連地域コード)中南米全体の代役としてes-MXを使用する
x-default比類のない言語のフォールバックそれを省略する;それを地域固有のページを指す

英国は国コードではありません。 これは、私が 10 年間の監査で見た中で最も頻繁に発生したエラーです。英国の ISO 3166-1 コードは GB です。使用 en-GBない en-UK。Google は無効なコードを黙って無視します — タグは存在しますが、何も実行しません。

3 つの実装方法

フレフランは 3 か所で宣言できます。それぞれにトレードオフがあります。

方法1:HTML <head> タグ(最も一般的)

に配置されるタグ <head> 各ページのセクション。デバッグが簡単で、検査が簡単で、すべての CMS でサポートされています。欠点: すべてのページに他のすべての言語のタグを含める必要があります。つまり、10 言語の 50 ページのサイトを生成して同期を維持するには、500 個の hreflang 宣言が必要です。

サイトのページが ~10,000 ページ未満の場合、または CMS が hreflang 生成を自動的に処理する場合は、この方法を使用してください。

方法 2: HTTP ヘッダー(HTML 以外のファイルの場合)

hreflang は HTTP リンク ヘッダーとして送信できます。これは、PDFのような非HTMLリソースに対してhreflangを宣言する唯一の方法です:

Link: <https://example.com/en/file.pdf>; rel="alternate"; hreflang="en",
      <https://example.com/fr/file.pdf>; rel="alternate"; hreflang="fr"

複数の言語で存在するダウンロード可能なアセット — 製品マニュアル、規制文書、ホワイトペーパーがある場合は、HTTP ヘッダーを使用してください。

方法 3: XML サイトマップ(大規模サイトの場合)

数十万ページあるサイトの場合、hreflang を宣言します <head> タグが扱いにくくなる。サイトマップベースの hreflang はより効率的で、HTML を無駄なく維持します

<url>
  <loc>https://example.com/</loc>
  <xhtml:link rel="alternate" hreflang="en"
              href="https://example.com/" />
  <xhtml:link rel="alternate" hreflang="fr"
              href="https://example.com/fr/" />
  <xhtml:link rel="alternate" hreflang="x-default"
              href="https://example.com/" />
</url>

同じ相互主義ルールが適用されます。サイトマップ内の各 URL エントリには、それ自体を含むすべての言語バージョンがリストされる必要があります。

方法を混ぜないでください。 サイトごとに 1 つのアプローチを選択し、それに固執します。からの競合する hreflang 信号 <head> サイトマップは、この場合の Google の動作が文書化されておらず一貫性がないため、デバッグするのが最も面倒なバグの 1 つです。

監査の 80% で私が目にする 5 つの間違い

Image listing common hreflang mistakes

1。自己参照 hreflang がありません

英語のページにはフランス語版とドイツ語版がリストされていますが、英語版とは言及されていません。Google は hreflang クラスター全体を無視します。修正: すべてのページに、それ自体を指す hreflang タグを含める必要があります。

2。非相互リターンタグ

英語のページはフランス語のページを指します。フランス語のページは後ろを指していません。Googleはこれを壊れているとみなし、関係を破棄する可能性がある。修正: すべての参照は相互的である必要があります。フランス語のページには、英語の代替ページとして英語のページをリストする必要があります。

3。リダイレクトされた URL に hreflang をポイントします

あなたの英語ページではフランス語版を宣言しています https://example.com/fr/ しかし、そのURLは301-リダイレクトされます https://example.com/fr/home/。Google はリダイレクトに従いますが、hreflang シグナルは弱められ —、場合によっては完全に無視されます。

修正: hreflang はリダイレクト チェーンではなく、最終的な正規 URL を指す必要があります。200 以外のフレフラン ターゲットにフラグを立てるクローラーによる監査。

4。フレフランと正典の矛盾

フランス語のページには、英語のページを指す正規表現があります(正規表現のタグを誰かがコピーペーストしたため)。Google はこれを次のように読み取り“フランス語のページは英語のページの単なる複製です”、フレフランの関係は無視されます。修正: 翻訳されたすべてのページは自己正規化する必要があります。フランス語のページの正典は、英語の原文ではなく、それ自体を指しています。

5。言語と地域コードを一貫性なく混合します

一部のページでは宣言しています hreflang="en"、 他の人は宣言します hreflang="en-US"。Google はこれらを個別の言語クラスターとして扱います。言語ごとに 1 つの戦略を選択し、サイト全体でそれに固執します。

エッジケースは誰も文書化しません

エッジケース1: リージョンのみのターゲティング(enなしのen-CA)

ページの英語-カナダ語版はありますが、グローバル英語版はありません。使用しないでください hreflang="en" 単独 — Google はカナダのページを英国のユーザーに提供する可能性がありますが、これはおそらくあなたが望んでいることではありません。代わりに、宣言します hreflang="en-CA" 具体的には x-default カナダ人以外の英語話者を扱います。

エッジケース2: 同じコンテンツ、異なる領域

同じテキストを含む同じ製品ページの米国、英国、オーストラリアの英語版。これは問題ありません — 各領域を明示的に宣言します:

<link rel="alternate" hreflang="en-US" href="https://example.com/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />
<link rel="alternate" hreflang="en-AU" href="https://example.com/au/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

コンテンツが同一であっても、地域固有の価格、通貨、配送を持つ製品では、地域のフレフラン バリアントが価値があります。

エッジケース3:モバイルとデスクトップのバリエーション

個別の m。サブドメイン モバイル ページがある場合、各モバイル ページには、他のモバイル言語バリアントを指す独自の hreflang 宣言が必要です。モバイルフランス語ページをデスクトップ英語ページに向けないでください — Google はこれを壊れたクラスターとみなします。

エッジケース4: サブドメインとサブディレクトリ

どちらも hreflang で動作します。fr。example。com と example。com/fr/ は同様に有効です。選択は運用(DNS、ホスティング、分析)— であり、それ自体は SEO 要素ではありません。重要なのは一貫性です。1 つの構造を選択し、それをすべての言語に適用します。

エッジケース5:ページネーション

フランス語のブログ インデックスの 2 ページ目では、hreflang を英語のブログ インデックスの 1 ページ目ではなく 2 ページ目に宣言する必要があります。ページ区切り、クエリ パラメータ、フィルターなど、同等のページを同等のページにマップします。

エッジケース6:404ページと410ページ

ページの翻訳版が(まだ)存在しない場合は、その言語の hreflang を宣言しないでください。hreflang を 404 に指定することは、まったく宣言しないよりも悪いことです — Google はこれを壊れた関係とみなし、クラスター全体を降格させる可能性があります。

ライブ配信前に検証する方法

検証ニーズの 95% をカバーするツールは次の 3 つです

  • Google Search Console → 国際ターゲティング。 Google のクローラーによって検出された hreflang エラーを表示します。更新は遅いですが(変更後 3–7 日)、権威があります。
  • 叫ぶカエル。 サイト全体をクロールし、非相互的な hreflang、戻りタグの欠落、壊れた hreflang URL、および不一致を報告します。発売前の QA に最適な唯一のツールです。
  • Merkle の hreflang タグ テスト ツール。 無料のブラウザベースで、開発中のスポットチェックに適しています。

大規模な打ち上げの前に 3 つすべてを実行します。Search Console は Google が見たものをキャッチします。Screaming Frog は、あなたのサイトに実際に存在するものをキャッチします。Merkle はコードレビューで見逃したものをキャッチします。

自動ツールが hreflang をどのように処理するか

ConveyThis、Weglot などの Web サイト翻訳プラットフォームを使用している場合は、hreflang の生成を自動的に行う必要があります。プラットフォームはコンテンツをクロールし、新しいページを検出し、自己参照タグ、戻りタグ、x-default を含むすべての翻訳バージョン — に正しい hreflang タグを挿入します。

これは、手動翻訳パイプラインよりも翻訳プラットフォームを使用するための最も強力な議論です。200 ページのサイト全体で 12 言語で hreflang を手動で維持するということは、31,200 のタグ関係を追跡することを意味します。新しいページごとに 12 の新しい関係が追加され、12 か所で追加する必要があります。大規模な手動メンテナンス休憩。

プラットフォームを使用していても、検索コンソールで hreflang エラーが表示される場合、原因は通常、ヘッダーを削除する CDN キャッシュ層、タグを上書きする CMS プラグイン、または標準構造に干渉するリダイレクト ルールの 3 つのいずれかになります。これら 3 つはすべて修正可能ですが、翻訳プラットフォーム、ホスティング セットアップ、CDN 間の調整が必要です。

結論

フレフランは複雑ではありません。冗長です。複雑さは、宣言の量と、欠落しているタグの脆弱性から生じます。基礎を正しくする — 自己参照、相互参照、標準整合、x デフォルト存在 —、残りは単なるメンテナンスです。

ほとんどの国際サイトは、hreflang の設定ミスにより、潜在的な外国語トラフィックの 20–40% を失います。基本を修正すると、以前に誤ってランク付けされたり、間違ったオリジナルとマージされたりした言語バージョンで、意味のあるトラフィックの回復が見られる可能性があります。

これは、多言語 Web サイトで最も効果的な技術的な SEO 修正です。午後を過ごせ。


著者について

アレックス・ブラン、 ConveyThis の創設者

Alex は過去 10 年間、多言語 Web サイトのインフラストラクチャの構築に費やしてきました。彼はローカリゼーション、AI 検索、グローバル化の技術的側面について書いています。

LinkedIn: https://www.linkedin.com/in/alexburan/


Hreflang を手動でデバッグするのにうんざりしていませんか? ConveyThis 翻訳されたすべてのページに、有効で相互的な自己参照 hreflang タグを自動的に生成します — x-default およびエッジ ケースを含む。 APIドキュメントを参照してください

シェア: