← 戻る デスクの上の使い古された紙製世界地図に鉛筆とコーヒーカップが置かれており、温かいゴールデンアワーの光とフィルムグレインで撮影されている

hreflang タグは正しく設定する:スケール時のエラーを止める

SEO・AEO・GEO

2021 年、前のエージェンシーが「国際 SEO を対応した」というクライアントから 14,000 ページの e コマース サイトを引き継いだ。監査を始めて 3 週間で、Google Search Console から 31,000 件の hreflang エラーを発見した。31,000 件だ。このサイトは 7 つの言語バリエーションを持っていたが、すべてのページが自己参照タグを欠いていた。ドイツ語ページはフランス語 URL を指していた。x-default は完全に別の場所に 301 リダイレクトされている URL を指していた。英語以外の市場からのオーガニック トラフィックは 8 か月間停滞していて、誰も点と点を結んでいなかった。

そのプロジェクトは、hreflang 実装を翻訳スプリント中に追加する事後処理ではなく、一流のエンジニアリング課題として扱うようになった最大の理由だろう。

では本格的に掘り下げていこう。

---

hreflang が実際にすること(そしてしないこと)

多くの人がすでにおおまかな理解を持っているので、簡潔に説明します。hreflangはHTMLの属性(またはHTTPヘッダー、XMLサイトマップエントリ)で、ページのどのバージョンがどの言語と地域の組み合わせに対応しているかをGoogleに伝えます。ランキングを直接変更しません。Googleがどのユーザーに、どの国でどのURLを表示するかを変更します。

これだけです。指令ではなく、シグナルです。実装が壊れていたり矛盾していたりすれば、Googleはそれを無視できます。そして実際に無視しています。頻繁に。

これが何をしないかというと:ユーザーが間違った地域バージョンへのアクセスをブロックしたり、コンテンツ戦略に代わったり、機械翻訳のコピーにすぎない薄いローカライズ努力のない翻訳ページを補完したりはしません。

他の何よりもまずGoogleの公式hreflangドキュメントを読む価値があります。古いビスケットのように退屈ですが、正確です。

---

ほぼすべての監査で見られる5つの間違い

自己参照タグの欠落

これが大きな問題です。hreflangクラスタ内のすべてのページは、自分自身を指すタグを含める必要があります。他のバリエーションだけではなく。自分自身を。

example.com/en/product/の英語ページが/de/product//fr/product/を指すタグを持っているのに、/en/product/を指すhreflang="en"を忘れている場合、クラスタ全体は技術的には無効です。Googleは必ずしもハードエラーをスローしませんが、シグナルセット全体の信頼性を低下させます。

ブログ記事を読み、2つのバリアントを含む例を見たが、その例が悪く書かれていたため自己参照タグに気づかなかった開発者によって構築されたサイトでこの間違いを見てきました。名前は挙げません。

リターンタグが欠落しているか、壊れている

hreflangは双方向の関係です。英語ページがドイツ語ページを指している場合、ドイツ語ページは英語ページを指し返す必要があります。そのリターンタグを見落とすと、Googleは壊れたハンドシェイクと認識します。

私が言及した2021年のプロジェクトでは、開発者は英語テンプレートにのみhreflangを追加していました。ドイツ語、フランス語、スペイン語のテンプレートにはhreflangがまったくありませんでした。つまり、Googleは片側の会話を受け取っているだけで、合理的にそのすべてを無視していたわけです。

不正な言語コード

BCP 47言語タグを使用してください。つまり、英語全般にはen、イギリス英語にはen-GB、アメリカ英語にはen-USを使用します。en_GBではなく、englishでもなく、ENGでもありません。

昨年Seahawkで監査したフィンテック企業のサイトにlang="english-uk"があるのを見つけました。開発者は明らかにフォーマットを推測しただけです。それは14ヶ月間ライブでした。

x-defaultが欠落しているか、間違っている

x-defaultは、言語または地域が他のバリエーションのいずれにも一致しないユーザーに対応するページを指す必要があります。通常はホームページまたは言語選択ページです。これは単に「英語版」の同義語ではありません。x-defaultが404を返すURLを指しているのを見かけたことがありますし、リダイレクトチェーンを指しているのも見かけたことがあります。そして忘れられないことに、ステージング環境を指しているのも見かけたことがあります。

適切なフォールバックページがない場合、x-defaultを誤って使用するよりも、x-defaultを省略する方が実際には良いです。しかし、通常はx-defaultを持つべきです。

CanonicalとhreflangをともにIncorrectlyに使用する

canonical タグと hreflang タグが矛盾していてはいけません。/en-gb/page//en/page/ を指す canonical を持ちながら、同時に en-GB として自分自身を宣言する hreflang を持っていれば、信号が競合しています。canonical は事実上「このURLの優先版ではない」と言っており、一方 hreflang は「イギリス英語ユーザーにとって優先版である」と言っています。Google はどちらかの解釈を選ばなければならず、多くの場合どちらも選びません。

---

大規模サイトで実装する際に心を失わない方法

テンプレートレベル対ページレベル

50ページのサイトであれば、すべての hreflang タグを手作業で作成できます。5,000ページのサイトであれば、そうはいきません。プログラムで生成する必要があります。

私が見つけた最もシンプルなアプローチは、URL マッピングを構造化されたデータソース(データベーステーブル、あるいは小規模なプロジェクトであれば単純な JSON ファイル)に保存し、レンダリング時にタグを生成することです。WordPress では Yoast SEO と Rank Math の両方が標準的なセットアップではかなり上手く機能しますが、言語全体で URL 構造が異なり、予測可能な /en//de//fr/ というプレフィックスパターンに従っていない場合は、どちらも機能しなくなります。

URL が統一されていない場合(たとえば、example.com/en/running-shoes/ example.com/de/laufschuhe/ のような翻訳されたスラッグ)、明示的なマッピングテーブルが必要です。プラグインが自動的にそれを理解することはありません。2022年にスポーツウェアのクライアントで、翻訳されたスラッグが英語のものから完全に独立していた案件で、私はこれを高い代償で学びました。

XML サイトマップ方式

非常に大規模なサイトの場合、インライン HTML タグより XML サイトマップ方式を選びます。<head> をきれいに保つことができ、プログラムで監査しやすく、ページテンプレートに手を入れなくてもサイトマップを更新できます。

フォーマットは次のようになります(概念的に、コードフェンスなしで):各 <url> ブロックには複数の <xhtml:link> エントリが含まれ、自己参照を含めて言語バリアントごとに1つずつあります。xmlns:xhtml 名前空間宣言は <urlset> 要素に存在していなければならず、そうでなければ何もエラー表示せずに失敗します。

注意すべき点として、サイトマップ方式はGoogleが最近サイトマップをクロールしてインデックスしている場合にのみ機能します。大規模サイトでクロールバジェットの問題がある場合は、Googlebotがページをクロールするときにタグをインラインで読み込むため、HTML方式の方がより信頼できます。

非HTMLコンテンツのHTTPヘッダー

PDFやその他の非HTMLファイルにhreflangが必要ですか?HTTPヘッダーを使用します。サーバーはrel="alternate"とhreflang属性を含むLinkヘッダーを返します。実際にはまれなケースですが、数千の多言語PDFドキュメントを持つ大規模な法律事務所や金融機関を見てきており、このアプローチが実際に役立つことがあります。

---

実際に役立つツール

長年多くのツールを使ってきましたが、実際に使っているのは以下のものです。

  • Screaming Frog SEO Spider:クロールを実行してhreflangタブに移動します。欠落しているリターンタグ、欠落しているセルフリファレンス、破損したURL、無効な言語コードをすべて1か所にフラグします。これは国際的な監査のたびに最初に確認する場所です。年£199で、私が知っている技術SEOツールの中で最高のコストパフォーマンスです。
  • Ahrefs Site Audit:優れた二次チェック。特に同じプラットフォーム内のオーガニックトラフィックデータと相互参照したい場合に有効です。
  • Merkle社のhreflangタグテストツール:無料で https://technicalseo.com/tools/hreflang/ で利用可能。URLを貼り付けると、クラスタ全体をチェックしてくれます。修正途中の特定ページをスポットチェックするのに最適です。
  • Google Search Console:レガシーツール下の国際的なターゲティングレポート。更新は遅いですが、Googleが実装を実際にどのように読んでいるかに関する信実です。
  • Sitebulb: ビジュアルクローラーを好む場合で、初心者向けのレポート機能を重視するなら、Sitebulbはhreflang クラスター関係の可視化を適切に実行します。

使わないもの:静的なタグブロックを生成して、コピペするだけのhreflangジェネレーターツール。構文を学ぶ際には問題ありませんが、20ページを超える場合は無用の長物です。手動で保守に戻るからです。

---

大規模監査:機能する手法

200以上の多言語サイトで実施して改善した、すべての国際監査で実行する実際のステップバイステップです:

  1. Screaming Frogでサイトをクロールします。サイトがJSフレームワークを使用している場合は、JavaScriptレンダリングがオンになっていることを確認してください。
  2. hreflangデータをスプレッドシートにエクスポートします。URLをその意図したクラスターごとにグループ化します。
  3. すべてのクラスターをチェック:自己参照タグ、すべてのバリアントからの返却タグ、有効なBCP 47コード、一貫したカノニカル整合性。
  4. x-defaultのURLで200ステータスコードをチェック。301ではなく、200です。
  5. XMLサイトマップ方式を使用している場合はXMLサイトマップに対して相互参照します。サイトマップ内のすべてのURLが200を返す必要があります。
  6. Merkleテストツールで20~30ページのサンプルを実行して、Googleが実際に想定通りの内容を読み込んでいるか検証しましょう。
  7. Search Consoleから国際ターゲティングレポートを取得し、特に「返却タグなし」エラーを確認してください。これはほぼ常に、新しい言語を追加した際にテンプレートが更新されなかったことの症状です。
  8. 修正して2週間後に再クロールを実施し、Search Consoleでエラー数が減少したことを確認します(GSCデータが修正を完全に反映するには4~6週間かかることもあります)。

これは1回限りのプロセスではありません。四半期ごとに定期的なクロールをカレンダーに入れておきましょう。国際サイトは変わります。新しいページが追加され、古いページはリダイレクトされ、誰も見ていない間にhreflangクラスタが静かに壊れることもあります。

---

hreflangを使わない場合

ほとんどのガイドではこれがスキップされていて、本当にうんざりしています。

1つの言語で複数の地域(例えば、英語でイギリスとオーストラリアの両方)がある場合、hreflangは使う価値がありますが、そのユーザーグループを明確に区別する価値があるコンテンツの違いがある場合に限ります。イギリスとオーストラリアのページが95%同じなら、明確さよりも混乱を招く可能性があります。Googleは1つのバリアントを世界的に表示することを選択でき、hreflangシグナルはほぼ無視されます。

国際市場からのトラフィックが非常に少ない場合、hreflang実装に1週間を費やすのは最善の時間の使い方ではないかもしれません。<html lang="">属性とSearch Consoleでの地理的ターゲティング設定が適切なURL階層があれば、トラフィック量が本格的な実装を正当化するまでの間、十分にカバーできます。

そしてサイトがJavaScriptで動的にコンテンツを読み込むシングルページアプリケーションなら、まずレンダリング側を正しく修正してください。静的HTMLシェルではhreflangが完璧に実装されているのに、実際のページコンテンツがJavaScriptで描画されており、Googlebotはローディングスピナーしか見ていない場合を見かけたことがあります。国際化シグナルを心配する前に、インデックス可能性を修正しましょう。

---

よくある質問

hreflangタグはランキングに直接影響しますか?

いいえ。hreflangシグナルはGoogleに対して、どのURLをどのユーザーに配信するかを示すもので、そのURLをどのようにランク付けするかではありません。間接的には、適切なページが適切なユーザーの前に表示されることで、ポゴスティッキングが減少し、エンゲージメント指標が改善され、それがランキングに下流効果をもたらす可能性があります。しかし、hreflangタグを追加することからの直接的なランキング向上はありません。

Googleがhreflangの変更を処理するのにどのくらい時間がかかりますか?

通常、Search Consoleのデータに変更が完全に反映されるまで4~8週間です。クロール頻度が重要です。クロール速度が遅い大規模なサイトの場合、12週間まで伸びることがあります。変更を加えて翌日に結果を確認しないでください。自分自身を狂わせることになります。

Shopifyストアでhreflangを使用できますか?

はい。ただし、Shopifyのネイティブ国際化機能(Markets経由)は、サブフォルダまたはサブドメインを使用している場合、多くの作業を自動で処理します。異なる地域用に個別のストアを使用している場合は、テーマのカスタマイズまたはアプリ経由でhreflangを手動で実装する必要があります。ここでの出発点としてShopifyの公式国際SEOガイダンスを使用しました。かなり完全です。

言語ターゲティングと国ターゲティングの違いは何ですか?

言語ターゲティング(例:hreflang="es")は、どこにいるかに関わらずスペイン語話者にこれを表示するという意味です。国ターゲティング(例:hreflang="es-MX")は、スペイン語話者、特にメキシコ内のスペイン語話者に表示するという意味です。すべてのその言語話者に対してコンテンツが同じである場合は、言語のみのタグを使用してください。価格、通貨、または重要なコンテンツが地域によって異なる場合は、言語と国のタグを使用してください。

hreflangのエラーが修正後に増えました。なぜですか?

通常は、いくつかのタグを修正したことでGoogleがページをより積極的にクロールするようになり、以前は報告されていなかったエラーが見つかっているのです。修正が状況を悪くしたのではなく、レポーティングの仕様です。そのまま続けて、4週間後に再度クロール検査してください。

---

Hreflangは本当に、90%正しく実装することが0%の場合とほぼ同じくらい悪い分野の一つです。壊れたシグナルはノイズを生み出し、Googleがそれを信頼しなくなります。時間をかけて正しく実装し、定期的に監査し、インフラストラクチャとして扱ってください。あなたの国際オーガニックトラフィックは静かに感謝するでしょう。それが最高の感謝です。

← 戻る