テクニカル SEO

Hreflang:初心者向けの簡単なガイド

河原田 隆徳 (TAKA)
Ahrefs 日本マーケティング統括。 国外 SaaS 企業における日本市場向けのマーケティングとローカリゼーションで 10 年以上の経験を積み、現在は Ahrefs の日本マーケティングを統括。ユーザーの皆さんと共に、Ahrefs を日本で盛り上げることを目標に、日々全力で取り組んでいます。

この記事はAhref­s公式ブログの日本語訳です。
原文:Hre­flang: The Easy Guide for Begin­ners
(著者: Joshua Hard­wick Reviewed by Sam Oh/ 原文の最終更新日:July 5, 2020)
※この記事は2020年7月5日時点の記載をもとに翻訳しています。Ahrefs公式ブログの記事は今後追記・再公開されることがありますことをご了承ください。

Webサイトに複数言語のコンテンツがある場合は、hreflang属性を理解して使用する必要があります。この記事では、hreflang属性の基本概念から実装、一般的な問題のトラブルシューティングまですべてを説明します。 

hreflangは単純なHTML属性ですが、理解するのが難しい場合があります。

Google の John Mueller 氏は、hreflang は「すぐに非常に難しくなる」ため、「SEO の最も複雑な側面の 1 つ」であると述べています。

TBH hre­flang is one of the most com­plex aspects of SEO (if not the most com­plex one). Feels as easy as a meta-tag, but it gets real­ly hard quickly.

— I am John (@JohnMu) Feb­ru­ary 19, 2018

しかし、だからといってがっかりしないでください。Hreflangは理解するのがそれほど複雑ではなく、 大幅に自動化できます。(それについては後ほど話します。)

このガイドで学べる内容は次のとおりです。

hreflangは、Webページの言語と地理的ターゲットを指定するために使用されるHTML属性です。異なる言語バージョンで同じページが複数ある場合は、hreflangタグを使用して、Googleなどの検索エンジンにこれらのバリエーションを通知できます。これは、ユーザーに正しいバージョンを提供するのに役立ちます。

たとえば、米国で「apple 公式ウェブサイト」をGoogleで検索すると、次のような最初の結果が表示されます。

米国で「apple 公式ウェブサイト」をGoogleで検索した結果

スペインで同じことを行うと、以下のバージョンのページ(/es)が表示されます。

スペインで「apple 公式ウェブサイト」をGoogleで検索した結果

hre­flangはこれを可能にします。

コンテンツを複数の言語へ翻訳するのに時間を費やした場合は、検索エンジンがユーザーに最も適切なバージョンを表示することを望むでしょう。

GoogleとYan­dexはどちらも、 これを行うためにhre­flangタグを調べます。

Bingは、hreflangは彼らにとって弱いシグナルであり、言語を識別するために主にコンテンツ言語の HTML 属性、リンク、サイトにアクセスしているユーザーに依存していると述べています。ただし、公式ドキュメントではhre­flangを使用することを推奨しています。

注:
Baiduはhreflangタグを考慮しません。これらはcontent-language HTML属性に依存します。

検索エンジンユーザーの母国語に対応することで、エクスペリエンスも向上します。その結果、多くの場合、クリックしてページを離脱して検索結果に戻る人が減り(つまり、滞在時間が長くなり)、直帰率が低くなり、ページ滞在時間が長くなります。その他の良いことはすべて、SEOやランキングへの影響としてプラスの効果があると私たちは信じています。

しかし、GoogleのGary Illyes氏がこの動画でほのめかしているように、hreflangクラスタ内のページは相互にランキングシグナルを共有するため、hreflangタグはランキングに直接影響を与える可能性もあります。最も一致するページがランキングの順位を決定しますが、ユーザーにとって最も関連性の高いページがSERPに表示されます。

これ自体が、適切な場合にhreflangを実装すべき十分な説得力のある理由になるはずです。

それから、 hreflang属性が重要であるもう1つの理由は、コンテンツの重複です

ページに2つのバージョンがあるとします。1つはイギリス英語の綴りで英国の読者をターゲットにし、もう1つはアメリカ英語の綴りで米国の読者をターゲットにしています。これら2つのページはほぼ同一であるため、Googleはこれらを重複コンテンツとみなして、インデックスに登録するバージョンを選択する可能性があります。

hreflangタグは、Google がこれらのページ間の関係を理解するのに役立ちます。検索結果には正しいバージョンが表示されるよう努めますが、それは保証されません。Hreflangタグはシグナルであり、ディレクティブではありません。hreflangクラスター内で同じ言語を使用するページのコンテンツをローカライズすることが依然としてベスト プラクティスです。

これは、価格設定(例:USDとGBP)、言語のバリエーション(例:米国と英国のゴミ箱 “trash­can vs. bin”)などをローカライズすることで実現できます。翻訳されたページはGoogleによって重複とはみなされないため、これは問題になりません。

hreflangタグは、シンプルで一貫した構文を使用します。

<link rel="alternate" hreflang="x" href="https://example.com/alternate-page" />

コードの各部分の意味を簡単な英語で示します。

  1. link rel=“alternate”: このタグ内のリンクは、このページの代替バージョンです。
  2. hreflang=“x”: これは別の言語であり、その言語はxであるため、代替です。
  3. href=“https://example.com/alternate-page”: 代替ページはこのURLにあります。

hreflangタグの作成は、選択した言語のコードを検索してタグに入力するだけで簡単です。hreflang は、任意の2文字のISO 639–1 言語コードをサポートします。(完全なリストはここでご覧ください。)

例:

無料のキーワード ツールに関するブログ投稿の英語版からドイツ語版 にhreflangタグを追加したいとします。最終的に得られるhreflangタグは次のとおりです。

<link rel="alternate" hreflang="de" href="https://ahrefs.com/blog/de/kostenlose-keyword-recherche-tools/" />

言語コード(ドイツの場合は de)とURLを入力するだけでした。

ロケール(地域)をターゲットにする(オプション作業)

言語を指定してそのままにするのは問題ありませんが、hreflangタグは地域や国の追加もサポートしています。これも2文字のコードですが、今回はISO 3166–1 alpha-2形式(完全なリストはこちら)です。これを追加する必要があるのは、特定のロケールの特定の言語の話者をターゲットにしたい場合のみです。例えば:

英国で英語を話す人: 

<link rel="alternate" hreflang="en-gb" href="https://example.com/uk/hello" />

米国で英語を話す人: 

<link rel="alternate" hreflang="en-us" href="https://example.com/us/hello" />

ここの構文は、hreflang=” lan­guage-coun­try.” であることがわかります。

両方を指定する必要がある理由について
単一の製品を販売するeコマースストアを経営していると想像してください。このストアは米国と英国の両方に発送しますが、どちらも主に英語を話す国です。ただし、米国の顧客はドルでの購入を希望するのに対し、英国の顧客はポンドでの購入を希望します。

この問題を解決するには、製品ページの2つのバージョンを作成します。1つは価格をドルで表示し、もう1つはポンドで表示するのです。

価格は別として、これら2つのページは同一であるため、hreflangタグを使用して、2つのバージョンが存在する理由を検索エンジンに伝える必要があります。

製品ページの2つのバージョンを作成して、1つは価格をドルで表示、もう1つはポンドで表示したイラスト図

または逆のこと、つまり、同じ国にいる複数の言語を話す人をターゲットにする必要がある場合もあるでしょう。

たとえば、カナダでの低予算なロードトリップに関するブログ投稿があると想像してください。カナダには英語とフランス語、2つの公用語があります。カナダ人の56.9%と21.3% がそれぞれ英語とフランス語を話すため、この投稿には2つの言語バリエーションを用意しておくと役立つでしょう。

hre­flang タグの実装はかなり簡単です。そのための3つの方法については後ほど説明します。ただし、どの方法を選択する場合でも、常に覚えておく必要がある3つの黄金律があります。

ルール #1:hreflang タグは双方向であるべき

hre­flang タグはペアで機能することを理解することが重要です。つまり、イタリア語版を指す英語ページにhreflangタグを追加するとき、イタリア語版は英語ページを指すhreflangタグで好意を返さなければなりません。

タリア語版を指す英語ページにhreflangタグを追加する方法のイラスト図

これにより、検索エンジンに対して両方のページを制御できること、およびそれぞれのページが互いの関係について合意していることが証明されます。

これは、Facebookで関係ステータスを設定するのと似ています。ジェニファー・アニストンやブラッド・ピットと交際中であると簡単に宣言できますが、彼らが同じステータス表示をしない限り、誰もあなたのことを信じないでしょう。

そのため、タグが壊れている場合、または関係がまだ完全に確立されていない場合、検索結果に間違ったページ、複数のページ、または正しいURLの間違ったタイトルが表示されることがあります。

ルール #2:自己参照のhreflang属性は良い習慣

Google は、 「各言語バージョンは、他のすべての言語バージョンと同様に、それ自体をリストする必要がある」と述べています。平易に言うと、これはすべてのページに自己参照のhreflangタグ、つまり自分自身を指すタグが必要であることを意味します。

したがって、英語のページ (https://example.com/hello) とイタリア語のページ (https://example.com/ciao) の間にhreflangタグを追加する場合は、それぞれに次のhreflangタグが必要です。

<link rel="alternate" hreflang="it" href="https://example.com/ciao" />
<link rel="alternate" hreflang="en" href="https://example.com/hello" />

1つ目はページの代替イタリア語バージョンのURLを指定し、2つ目はページ自体を指す自己参照タグです。

イタリア語のページには、これらのhreflangタグが両方とも必要です。

英語のページ とイタリア語のページでhreflangタグと自己参照のhreflangタグの動きを示すイラスト図
注:
Google の John Mueller 氏は最近 、「自己参照のhreflangはオプションの方法ですが、良い習慣である」と述べました。これは、この問題に関するGoogleの公式推奨と矛盾します。したがって、私たちのアドバイスは、それらを使用することです。

ルール #3:X‑default タグは推奨されますが、必須ではありません

hre­flang x‑default タグは、他の言語バリアントが適切でない場合にユーザーに表示されるデフォルト ページまたはフォールバックページを指定します。これらを使用する必要はありませんが、Google は 使用することを推奨しています。これは次のようになります。

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

プロのヒント
hreflangタグは、最適一致ベースで機能します。言い換えれば、Googleは、ユーザーの国や言語設定などのさまざまなシグナルに基づいて、最も一致すると判断したコンテンツのバージョンを返します。

これがどのように機能するかを説明するために、Googleがスペインにいる英語を話すユーザーに対して結果を返していると想像してください。

Googleはまず、言語と国が一致するもの(en-es など)を探し、存在する場合はそのページを返します。

そうでない場合は、一致する言語コード(en-us など)を探します。重要なのは、国コードは関係ないということです。Googleは単に一致する言語コードを探すだけです。

それが存在しない場合、Googleはx-defaultバージョンにフォールバックします。

hreflang属性を実装するには3つの方法があります。

  1. HTMLタグ
  2. HTTPヘッダー
  3. サイトマップ

1. HTMLを使用したhreflangタグの実装

hreflangを初めて使用する場合は、基本的なHTMLタグを使用するのがおそらく最も簡単で迅速な実装方法です。必要なのは、Webページの<head>タグに適切なhreflangタグ(前述のとおり)を追加することだけです。

例:

私たちは最近、ドイツ語ロシア語中国語スペイン語など、いくつかの言語でAhrefsブログを立ち上げました。現在、メインブログの英語版の投稿をこれらの言語に徐々に翻訳しています。私たちがすでに中国語とドイツ語の両方に翻訳した投稿の1つは、最高の無料キーワード調査ツールのリストです。

3つのバリエーションすべてのURLは次のとおりです。

英語https://ahrefs.com/blog/free-keyword-research-tools/
ドイツ語https://ahrefs.com/blog/de/kostenlose-keyword-recherche-tools/
中国語:https://ahrefs.com/blog/zh/free-keyword-research-tools/

この設定でhreflangタグを正しく実装するには、次のコードを各ページの<head>セクションに追加します。

<link rel="alternate" hreflang="en" href="https://ahrefs.com/blog/free-keyword-research-tools/" />
<link rel="alternate" hreflang="de" href="https://ahrefs.com/blog/de/kostenlose-keyword-recherche-tools/" />
<link rel="alternate" hreflang="zh" href="https://ahrefs.com/blog/zh/free-keyword-research-tools/" />
<link rel="alternate" hreflang="x-default" href="https://ahrefs.com/blog/free-keyword-research-tools/" />

この方法の問題はかなり時間がかかり、すぐに面倒になってしまうことです。

その好例として、無料のキーワード調査ツールのリストもスペイン語に翻訳する場合は、戻ってそのページの他のすべてのバリエーションに別のhre­flangタグを追加する必要があります。

 ページに含めることができるhre­flangタグの数に制限はありません。

2. hreflang HTTP ヘッダーの実装

PDFなどの非HTMLページの場合、HTMLの<head>にタグを配置してhreflangを実装することはできません。理由は、HTMLがないからです。このような場合、HTTPヘッダーを使用して、ドキュメントバリアントの相対言語を指定できます。この方法は通常のWebページでも問題なく機能しますが、他のコンテンツタイプでより一般的に使用されます。

無料のキーワード調査ツールの投稿の各バージョン(英語、スペイン語、ドイツ語)をPDFに変換すると想像してください。

これらの各ファイルのHTTPヘッダーは次のようになります。

HTTP/1.1 200 OK
コンテンツタイプ: アプリケーション/PDF
リンク: <https://ahrefs.com/blog/free-keyword-research-tools.pdf>; rel="代替";hreflang="x-default",
<https://ahrefs.com/blog/free-keyword-research-tools.pdf>; rel="代替";hreflang="en",
<https://ahrefs.com/blog/de/kostenlose-keyword-recherche-tools.pdf>; rel="代替";hreflang="de",
<https://ahrefs.com/blog/zh/free-keyword-research-tools.pdf>; rel="代替";hreflang="zh"

3. XML サイトマップに hreflang を実装する

サイトマップには、ページとそのバリアントの hre­flang を指定するための関連マークアップを含めることができます。これには、xhtml:link 属性を使用できます。

元の例(無料キーワードツールのリストの3つのHTMLバリアント)を使用して実行すると、サイトマップの完全なマークアップは次のようになります。

<URL>
<loc>https://ahrefs.com/blog/free-keyword-research-tools/</loc>
<xhtml:link rel="alternate" hreflang="x-default" href="https://ahrefs.com/blog/free-keyword-research-tools/" />
<xhtml:link rel="alternate" hreflang="en" href="https://ahrefs.com/blog/free-keyword-research-tools/" />
<xhtml:link rel="alternate" hreflang="de" href="https://ahrefs.com/blog/de/kostenlose-keyword-recherche-tools/" />
<xhtml:link rel="alternate" hreflang="zh" href="https://ahrefs.com/blog/zh/free-keyword-research-tools/" />
</url>
<URL>
<loc>https://ahrefs.com/blog/de/kostenlose-keyword-recherche-tools/</loc>
<xhtml:link rel="alternate" hreflang="x-default"
href="https://ahrefs.com/blog/free-keyword-research-tools/" />
<xhtml:link rel="alternate" hreflang="en" href="https://ahrefs.com/blog/free-keyword-research-tools/" />
<xhtml:link rel="alternate" hreflang="de" href="https://ahrefs.com/blog/de/kostenlose-keyword-recherche-tools/" />
<xhtml:link rel="alternate" hreflang="zh" href="https://ahrefs.com/blog/zh/free-keyword-research-tools/" />
</url>
<URL>
<loc>https://ahrefs.com/blog/zh/free-keyword-research-tools/</loc>
<xhtml:link rel="alternate" hreflang="x-default"
href="https://ahrefs.com/blog/free-keyword-research-tools/" />
<xhtml:link rel="alternate" hreflang="en" href="https://ahrefs.com/blog/free-keyword-research-tools/" />
<xhtml:link rel="alternate" hreflang="de" href="https://ahrefs.com/blog/de/kostenlose-keyword-recherche-tools/" />
<xhtml:link rel="alternate" hreflang="zh" href="https://ahrefs.com/blog/zh/free-keyword-research-tools/" />
</url>

これは、hreflang属性を実装する最も非効率的で悪夢のような方法のように見えるかもしれませんが、多くの場合、その逆です。その理由は、すべてが1つのファイルで定義されているためです。ページにわずかな変更を加えたり削除したりするたびに、複数のHTMLドキュメントを編集する必要はありません。

さらに、ヘッダーの追加のオーバーヘッドとHTMLのコード追加は、多数のhreflangタグがサイトの速度に影響を与える可能性があることを意味しますが、サイトマップを介して実装すると同じ速度の低下が発生することはありません。

注:
hreflangタグは、実装方法に関係なく、クロール時に処理されます。サイトマップにタグを配置しても、サイトマップの更新時にタグが処理されるわけではありません。

このガイドの前半で、GoogleのJohn Mueller氏のツイートを紹介しました。彼は、hreflang属性が SEOの最も複雑な部分であると述べています。ここでもまた、適切な対策として次のとおりです。

TBH hre­flang is one of the most com­plex aspects of SEO (if not the most com­plex one). Feels as easy as a meta-tag, but it gets real­ly hard quickly.

— I am John (@JohnMu) Feb­ru­ary 19, 2018

彼の理由は、「すぐに本当に難しくなるから」です。

これは大規模な多言語サイトでは間違いなく当てはまります。しかし、あなたがここでhreflangタグの実質的な初心者向けガイドを読んでいることを考えると、あなたのWebサイトは数万人の顧客を持つ多国籍ブランドの1つではなく、むしろ中小規模のWebサイトであると思います。多言語コンテンツを含むサイト。

もしそうなら、良いニュースがあります:

hre­flang タグの生成と実装は、大幅に自動化できます。

これを行うには、このGoogle スプレッドシートテンプレートのコピーを作成し、以下の手順に従いましょう。

1. 言語と地域を選択する

Googleスプレッドシートの「設定」タブに移動します。Webサイトのデフォルト言語(または言語ロケール)と、他の最大4つのバリエーションを選択します。

たとえば、Ahrefsブログ用にこのシートを設定する場合、英語をデフォルトとして指定し、次にスペイン語、ドイツ語、ロシア語、中国語を4つの代替バリエーションとして指定します。

Googleスプレッドシートの「設定」タブでWebサイトのデフォルト言語と他の言語を選択する画面

2. URLを貼り付ける

URL」タブに進みます。最大5つの列が表示され、各列には前のステップで選択した言語に対応するヘッダーセルがあります。「x‑default」値の列もあります。

Googleスプレッドシートの「URL」タブ

必要に応じて URL をシートに貼り付けます。

たとえば、これをAhrefsブログで行う場合は、英語の投稿(主言語/デフォルト言語)を最初の列に貼り付けます。次に、関連する翻訳版のURLを他の列に貼り付けます。

Ahrefsブログの英語の投稿(デフォルト言語)を最初の列に貼り付けて、関連する翻訳版のURLを他の列に貼り付けた例

Web サイト上のすべての関連する国際ページに対して、これを実行します。

3. hreflang XML サイトマップをダウンロードする

「結果」タブに移動すると、XML サイトマップの自動生成コードが表示されます。

Googleスプレッドシートの「結果」タブで、XML サイトマップの自動生成コードが表示された画面

列 A のすべてをコピーし、XMLドキュメントに貼り付けます。

列 A のすべてをコピーし、XMLドキュメントに貼り付けた画面

これをウェブサイトにアップロードし、Search Con­sole 経由でGoogleに送信してください。

4. シートの変更を記録する

Webサイトに翻訳されたページを追加または削除するときは、その変更をこのGoogle シートに記録してください。ページを削除する場合は、そのURLも削除します。ページの新しい翻訳版をWebサイトに追加する場合は、それを適切な列に追加します。

シートはサイトマップコードをその場で再生成します。古いコードの代わりに、それをコピーしてサイトマップに貼り付けるだけです。

hreflang属性を常に把握しようとしても、ほとんどの場合、何らかの間違いがすり抜けてしまいます。そのため、Web サイトでhre­flangの問題を定期的に監査し、できるだけ早く問題の芽を摘むことが重要です。

これを行う最も簡単な方法は、 Ahref­sのサイト監査ツールを使用してWe­bサイトを 定期的にクロールすることです。

Site Audit(サイト監査)は、hreflangに関連する問題を含む数百ものSEO関連の問題についてサイトをチェックする、クラウドベースのクローラーです。

Site Auditで検出される可能性のある9つのhreflang関連の問題と、それらの修正方法を次に示します。

1. 自己参照のhreflangアノテーションがない

この警告は、自己参照のhreflangタグが1つ以上のページにない場合にトリガーされます。

なぜ問題になるのか

先ほどのポイントを繰り返すと、Googleは 「各言語バージョンは、他のすべての言語バージョンと同様に、それ自体をリストする必要がある」と述べているため、Webページにhreflangタグを追加するときは常に、自己参照のhreflangタグを使用することが重要です

直し方

影響を受けるページを確認し、選択した方法を使用して各ページに自己参照のhreflangタグを追加します。

2. hreflangアノテーションが無効である

この警告は、1つ以上のURLに無効な言語またはロケールコードを含むhreflangタグが含まれている場合にトリガーされます。

なぜ問題となるのか

検索エンジンは無効なhreflangタグを無視します。つまり、ページの別のバージョンを見落とす可能性があります。これは、検索エンジンがページの最適なバージョンをユーザーに表示できない可能性があることを意味するため、SEOにとって良くありません。

直し方

影響を受けるページを確認します。「有効な hreflang」列をチェックして、各ページの無効な hre­flang タグを確認します。これらを削除して、有効な言語または言語と場所のコード形式を使用する hre­flang タグを使用してください。

3. hreflangで複数の言語で参照されているページ

この警告は、hreflangアノテーションで1つ以上のURLが複数の言語で参照されている場合にトリガーされます。

例えば:

<link rel="alternate" hreflang="en" href="http://example.com/page.html" />
<link rel="alternate" hreflang="de" href="http://example.com/page.html" />

なぜ問題となるのか

各コンテンツは1つの言語または言語地域のみを提供する必要があります。2つ以上の矛盾する参照があると検索エンジンが混乱し、両方のhreflang属性が無視される可能性があります。

直し方

影響を受けるページを確認し、hreflang属性でそのページを参照しているURLにエラーがないか検査します。間違ったhreflang属性を削除して、言語ごとに正しい属性を1つだけ残します。

4. 相互のhreflangが欠落している(リターンタグがない)

この問題は、hreflangアノテーションで宣言されたページの確認(リターン)リンクが欠落している場合に発生します。

なぜ問題となるのか

hreflangタグは双方向です(つまり、hreflang注釈でページAがページBにリンクしている場合、ページ Bも逆にページAにリンクする必要があります)。

直し方

影響を受けるページを確認します。必要に応じて、双方向のhreflangタグを追加します。

この問題を確認する別の方法は次のとおりです……
Google Search Con­soleのインターナショナルターゲティングレポートに移動し 、「言語」タブを選択します。リターンタグの欠落に関連する問題にはフラグが付けられます。
Google Search Consoleのインターナショナルターゲティングレポートで、「言語」タブを選択した画面

このレポートは、存在しない言語または言語+国コードが使用されている問題にもフラグを立てます。

5. non-canonical(非正規化)へのHreflang

この問題は、1つ以上のページのhreflangタグでnon-canonical URLを参照すると発生します。

なぜ問題となるのか

Rel=“alternate” hreflang=“x” は、ページの翻訳(ローカライズ)バージョンを表示するように検索エンジンに指示します。一方、rel=canonical 属性は、これが正式な(正規)バージョンではないことを示すフラグを設定します。これら2つの属性は互いに矛盾しており、検索エンジンを混乱させます。

直し方

影響を受けるページを確認します。hreflangアノテーションを変更して、正規URLのみを指すようにします。または、不正な正規タグが含まれるページを見つけた場合は、そのタグをページから削除して、hreflang属性が正しく理解され、検索エンジンが従うようにします。

同じ言語で複数バージョンのページがありますか?
Googleはそれらを重複とみなし、正規URLとして1つのURLのみを選択する場合があります。

たとえば、米国用 (「en-us」) と英国用 (「en-gb」) の2つの製品ページがあるとします。両方のページの内容はほぼ同じですが、唯一の違いは、価格が一方のページでは米ドルで表示され、もう一方のページでは英国ポンドで表示されていることです。

Googleがこれらのいずれかを正規として選択すると、1つを除くすべてがインデックスから除外されます。

特定のページでこれが発生している可能性があると思われる場合は、 Search Con­sole のURL 検査ツールを使用して、Google がそのページをどのように認識しているかを確認してください。

Search Console のURL 検査ツールの画面
Search Console のURL 検査ツールを使用して、Google がそのページをどのように認識しているかを確認する画面

6. HreflangとHTML言語の不一致

この問題は、1つ以上のURLで宣言されたhreflangとHTML言語属性の間に矛盾がある場合に発生します。

なぜ問題となるのか

GoogleはHTML言語属性を使用しませんが、他の検索エンジンやブラウザは使用します。これら2つの属性を相互に一貫性を保つことが重要です。

直し方

影響を受けるページを確認します。HTML言語属性を変更して、宣言されたhreflang属性との一貫性を確保してください。

7. 壊れたページへのhreflang

この問題は、1つ以上のページのhreflangアノテーションで壊れたURLを参照すると発生します。

なぜ問題となるのか

Googleやその他の検索エンジンは、存在しないコンテンツをユーザーに表示することはできません。そのため、無効なページを指すhreflang属性は、Googleやその他の検索エンジンによって無視される可能性が高くなります。

直し方

影響を受けるページを確認します。hreflangアノテーションを変更して、作業ページへ確実にリンクするようにしましょう。

8. hreflangでの同じ言語の複数ページ

この問題は、1つ以上のURLが、hreflang注釈で同じ言語(または言語の場所)の2つ以上のページを参照している場合に発生します。

なぜ問題となるのか

hreflangアノテーションで同じ言語(または言語の場所)の複数のページを参照すると、検索エンジンが混乱するだけです。彼らはそのような指示を無視したり、誤解したりすることがよくあります。

直し方

影響を受けるページを確認します。hreflangアノテーションの1つを削除して、言語ごとに1つのページのみが参照されるようにします。

9. X デフォルトのhreflangアノテーションが欠落している

この問題は、ページにx-default hre­flangアノテーションがない場合に発生します。

なぜ問題となるのか

x‑default hreflang属性はオプションですが、Googleでは 「一致する言語がない場合にページを制御する」方法としてこれらを推奨しています。SEOのベスト プラクティスは、すべてのhreflangアノテーションにx-defaultタグを使用することです。

直し方

影響を受けるページを確認します。それぞれに「x‑default」hreflang属性が設定されていることを確認してください。これが、特定の言語または地域に固有ではないページを指していることを確認してください。

……。

時間の経過とともに発生する可能性のあるhre­flangの問題を常に把握するには、Ahref­sのサイト監査ツールで毎日、毎週、または毎月のクロールをスケジュールすることを検討してください。これはプロジェクト設定で行うことができます。

Ahrefsのサイト監査ツールのプロジェクト設定で定期的なクロールをスケジュールする画面

 スケジュールされたクロールごとに、関連プロジェクトのローカリゼーションレポートに新しい問題が表示されるため、定期的に確認してください。

Ahrefsのサイトエクスプローラーを使って間違ったランキングをチェックする

チェックしたい言語のドメイン、サブドメイン、サブフォルダのパスをAhref­sのサイトエクスプローラーに貼り付け、「概要」レポートの「オーガニック検索」タブに移動します。

検索トラフィック別に国のリストを見てみましょう。それらはあなたが期待するものですか?

ここで、当社のWebサイトのドイツ語版 ( ahrefs.com/de) はドイツだけでなく、オーストリアやスイスなどの他のドイツ語圏の国でもランクされていますが、これは予想通りです。しかし、米国やインドからのトラフィックも来ており、これは奇妙に思えます。

Ahrefsのサイトエクスプローラーを使って間違ったランキングをチェックする画面

このようにサイトのさまざまなバージョンを確認することは、hreflangタグに関する潜在的な問題を探す良い出発点となります。

ベストプラクティスに従うことは依然として賢明ですが、検索エンジンが特定の問題を無視する場合があります。通常、これは検索エンジンが同じ問題を何度も繰り返し確認し、検索エンジン側で原因を説明できると判断した場合に発生します。

Googleが「修正」した確認済みのhreflangタグの問題をいくつか紹介します。

1. ダッシュの代わりにアンダースコアを付ける

Gary Illyesは、このTwit­terスレッドで 、Googleのパーサ(プログラムの一種)がこの一般的なエラーの原因であると述べています。

2. en-GBではなくen-UKにする

John MuellerはRed­ditのAMA(Ask Me Anything)でこれをカバーしました。英国は予約済みコードであるため、この問題を修正できます。

en-GBではなくen-UKにして問題を修正した画面

3. 自己参照を持たない Hreflang

GoogleのJohn Mueller氏は最近 、自己参照のhreflangはオプションですが、良い習慣であると述べました。

Self-ref­er­en­tial hre­flang is option­al, but you’re right – it’s a good practice!

— I am John (@JohnMu) June 29, 2018

4. 相対URLと絶対URL

@SamGooch Both canon­i­cal & hre­flang can use rel­a­tive paths. Absolute is a bit more .. absolute though, so I’d rec­om­mend that where possible.

— I am John (@JohnMu) Feb­ru­ary 23, 2016

多くの場合、WebサイトはCookie、IPアドレス、ブラウザ言語の組み合わせに基づいてユーザーを自動リダイレクトします。これは、ユーザーにとって質の悪いイライラするエクスペリエンスをもたらす可能性があり、コンテンツのインデックスを作成しようとする検索エンジンにとっては問題となることがよくあります。特に、hreflangタグに必要な接続が切断される可能性があります。

Googleのコメントは次のとおりです。

コンテンツを適応させるために IP分析を使用しないでください。IPロケーション分析は難しく、一般に信頼性がありません。さらに、Googleがサイトのバリエーションを適切にクロールできない可能性があります。すべてではありませんが、ほとんどのGoogleクロールは米国から発信されており、サイトのバリエーションを検出するために場所を変更することはありません。ここに示す明示的な方法(hreflang、代替 URL、および明示的なリンク)のいずれかを使用します。

常に、検索エンジンクローラーをどこからのユーザーと同じように扱います。検索エンジンbotをユーザーとは異なる扱いをしている場合、それはクローキングとみなされ、Googleのウェブマスターガイドラインに違反します。

同じ検出ロジックを使用して、小さなバナーでユーザーにページのより良いバージョンを提案することができます。

小さなバナーでユーザーにページのより良いバージョンを提案する

このバナーでスペースを取りすぎないように注意してください。大きすぎると、バナーがインタースティシャルとして見られる可能性があります。

URL内の文字をUTF-8でエンコードすることはGoogleにとって問題ありませんが、技術スタックに障害点があり、それがサポートされていない可能性があります。

サイトのハイジャックに使用される可能性があるため、本文にhreflangタグを含めることはできません。特定の条件下でタグをボディセクションに強制的に挿入することができます。

これは <head> の破壊として知られており、<head> セクション内で閉じられていないiframeやタグなどが原因である場合もあれば、JavaScriptでさまざまなものを挿入した場合に発生する場合もあります。DOM ブレークポイントを使用して トラブルシューティングを行います。

これらを確認するには、Googleのツールの1つを実行してレンダリングされたDOMを確認するか、Chromeで「右クリック」>「検査」を選択してChrome Dev­Tool­sのEle­mentsパネルを検索する必要がある場合があります。

DOM ブレークポイントを使用した画面

hre­flangはそれほど複雑ではありません 。必要なのは、組織化を維持し、可能な限り実装を自動化し、必然的に発生する問題を常に把握し、それらの問題をできるだけ早く修正することだけです。

質問は?コメントまたはTwit­terでお知らせください。


著者プロフィール

Ahrefsブログ著者Joshua Hardwickのプロフィール写真

Joshua Hard­wick
Ahrefsのコンテンツ責任者(わかりやすく言うと、私たちが公開するすべてのブログ記事が素晴らしいことを保証する責任者です)。