言語や地域の URL に hreflang を使用する

複数の言語でコンテンツを提供するウェブサイトや地域別にコンテンツを提供するウェブサイトの場合、Google では rel="alternate" hreflang="x" 属性を使用して、適した言語や地域の URL を検索結果で返しています。

Creating multi-regional and multilingual sites

次のような場合に、rel="alternate" hreflang="x" の指定をおすすめします。

  • ナビゲーションやフッターなど、テンプレートのみを翻訳し、コンテンツの大部分は 1 つの言語を使用する場合。フォーラムなど、ユーザー生成コンテンツを掲載するページでは、これが一般的です。
  • コンテンツが 1 つの言語で書かれていて、コンテンツの大部分はほとんど同じであるが、地域ごとにわずかに変化がある場合。たとえば、アメリカ、イギリス、アイルランドのユーザーをターゲットにした英語のコンテンツです。
  • サイトのコンテンツをすべて翻訳する場合。たとえば、各ページについてドイツ語バージョンと英語バージョンの両方があるような場合です。

言語アノテーションを使用する

たとえば、http://www.example.com/ で英語バージョンのメインページを、http://ja.example.com/ で日本語バージョンの代替ページを公開しているとします。日本語バージョンの URL が英語バージョンの代替ページだと Google に示すには、次の 3 つの方法があります。

  • ヘッダーの HTML リンク要素: http://www.example.com/ の HTML <head> セクションに、このウェブページの日本語バージョン(http://ja.example.com/)を示す link 要素を次のように追加します。
    <link rel="alternate" hreflang="ja" href="http://ja.example.com/" />

  • HTTP ヘッダー: HTML 形式以外のファイル(PDF など)を公開する場合は、HTTP ヘッダーを使用して、メイン URL の代替言語バージョンを次のように指定できます。
    Link: <http://ja.example.com/>; rel="alternate"; hreflang="ja"

    Link HTTP ヘッダーで複数の hreflang 値を指定する場合は、次のように値をカンマで区切ります。
    Link: <http://ja.example.com/>; rel="alternate"; hreflang="ja",<http://de.example.com/>; rel="alternate"; hreflang="de"

  • サイトマップ: マークアップを使う代わりに、サイトマップで言語バージョン情報を送信できます。

URL に複数の言語バージョンがある場合、すべての言語のページで、そのページの言語を含むすべての言語バージョンを認識させる必要があります。たとえば、サイトのコンテンツをフランス語、英語、日本語で提供する場合、日本語バージョンのサイトには、フランス語バージョンと英語バージョンの rel="alternate" hreflang="x" リンクに加えて、日本語バージョン自体のリンクを追加する必要があります。同様に、英語バージョンとフランス語バージョンのサイトにも、フランス語バージョン、英語バージョン、日本語バージョンの同じリンクをそれぞれ追加する必要があります。

複数言語の URL を指定する場合は、同じドメインの URL を使用することも、異なるドメインの URL を使用することもできます。

同じ言語でも異なる地域のユーザー向けに複数の URL を提供する場合は、未指定地域のユーザー向けにその言語の汎用 URL も提供することをおすすめします。たとえば、アイルランド(en-ie)、カナダ(en-ca)、オーストラリア(en-au)の英語ユーザー向けにそれぞれ個別の URL を用意し、他の地域の英語ユーザーには汎用の英語ページ(en)を、それ以外のユーザーにはトップページを表示するように設定できます。汎用の英語ページ(en)を指定しておくと、英国など、指定地域外の英語ユーザーの検索結果に反映されるようになります。次のようにサイトマップ ファイルまたは HTML リンクタグを使用して、ページセットにアノテーションを追加できます。

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />

言語 / 国セレクタのあるページや、自動的にリダイレクトされるトップページの場合は、hreflang 値を「x-default」に設定したアノテーションを同様に追加する必要があります。
<link rel="alternate" href="http://example.com/" hreflang="x-default" />

サポートされる言語の値

hreflang 属性の値としては、代替 URL の言語を ISO 639-1 形式で指定し、必要に応じて地域を ISO 3166-1 alpha-2 形式で指定します。次に例を示します。

  • de: ドイツ語コンテンツ、地域指定なし
  • en-GB: 英語コンテンツ、英国のユーザー向け
  • de-ES: ドイツ語コンテンツ、スペインのユーザー向け

国コードを単独で指定しないでください。Google では、国コードから自動的に言語を取得することはありません。タグ付けを簡素化する場合は、言語コードを単独で指定します。言語コードの後に国コードを追加すると、そのページを特定の地域に限定できます。次に例を示します。

  • be: ベラルーシ語、地域指定なし(ベルギーではない
  • nl-be: ベルギーのオランダ語
  • fr-be: ベルギーのフランス語

1 つの言語に複数の文字体系がある場合は、国コードから適切な文字体系が取得されます。たとえば、zh-TW ユーザー向けに zh-TW を使用すると、自動的に文字体系が判断されます(この場合、繁体字中国語)。ISO 15924 を使用して、次のように文字体系を明示的に指定することもできます。

  • zh-Hant: 中国語(繁体)
  • zh-Hans: 中国語(簡体)

また、文字体系と地域を組み合わせて指定することもできます。たとえば、台湾のユーザー向けに中国語(簡体)を指定するには zh-Hans-TW を使用します。

予約済みの値である「x-default」は、特定の言語や地域専用ではない言語セレクタまたは言語リダイレクタを備えたページ(例: クリック可能な世界地図を表示するトップページ)を示すのに使用されます。

ありがちなミス

重要: 必ず有効な hreflang 値を指定してください。また、次の 2 つのありがちなミスについては、特にご注意ください。

  • 確認リンクがない: ページ A がページ B にリンクしている場合、ページ B からもページ A にリンクしていなければなりません。hreflang アノテーションを使用するすべてのページでリンクが正しく設定されていなければ、アノテーションが無視される場合や正しく解釈されない場合があります。
  • 言語コードが正しくない: 言語コードを使用する場合は、必ず、代替 URL の言語を ISO 639-1 形式で指定し、必要に応じて地域を ISO 3166-1 alpha-2 形式で指定します。地域を単独で指定しても有効なコードにはなりません。
アノテーションの使用例

Example Widgets 社は、米国、英国、日本のユーザーを対象にしたウェブサイトを所有しています。URL は次のとおりで、ほとんど同一のコンテンツですが、地域ごとに多少の違いがあります:

  • http://www.example.com/ 言語や地域の指定がないデフォルト ページです。ユーザーが言語や地域を選択できるセレクタが存在する場合もあります。
  • http://en.example.com/page.html 英語版のトップページです。アメリカから各国に出荷する際の代金に関する情報が含まれています。
  • http://en-gb.example.com/page.html 英語バージョンで価格がイギリス ポンドで表示されます。
  • http://en-us.example.com/page.html 英語バージョンで価格が US ドルで表示されます。
  • http://ja.example.com/page.html 日本語コンテンツのバージョンです。

rel="alternate" hreflang="x" は、サイトレベルではなくページレベルで使用されるため、トップページを含め、各ページセットを適切にマークアップする必要があります。コンテンツのバリエーションや言語 / 地域は、必要な数だけ指定することができます。

日本語で Google 検索を行う場合は日本語バージョンのページを表示し、英語で google.com から検索する場合は en-us バージョンを表示し、英語で google.co.uk から検索する場合は en-gb バージョンを表示するには、rel="alternate" hreflang="x" を使用して代替言語バージョンを指定します。

それぞれに rel="alternate" hreflang="x" リンク要素のセットを追加して、各 URL の HTML を更新します。特定の言語や地域を対象としないデフォルト ページには、rel="alternate" hreflang="x-default" を追加します。


<link rel="alternate" hreflang="x-default" href="http://www.example.com/" />
<link rel="alternate" hreflang="en-gb" href="http://en-gb.example.com/page.html" />
<link rel="alternate" hreflang="en-us" href="http://en-us.example.com/page.html" />
<link rel="alternate" hreflang="en" href="http://en.example.com/page.html" />
<link rel="alternate" hreflang="ja" href="http://ja.example.com/page.html" />

このマークアップにより、Google のアルゴリズムはそれぞれのページが互いに代替バージョンであることを認識します。

 

この記事はどの程度役に立ちましたか?

フィードバックが記録されました。ご協力ありがとうございました。
  • まったく役立たなかった
  • あまり役立たなかった
  • まあまあ役立った
  • かなり役立った
  • とても役立った