Hreflangタグは多言語サイトのどの言語のバージョンがユーザーにとってふさわしいか、ユーザーの言語やロケーション設定に基づいてGoogleに伝える上で非常に有効な手段です。
ユーザー体験を向上させることと同じく(これによりサイトの最も関連するバージョンにユーザーがたどり着けるので)、 hreflangタグは多言語サイトで発生する重複コンテンツの問題を管理する上で非常に良い方法です。
hreflangタグが必要と判断する方法は?
Googleは以下のような要素がサイトにあればhreflangを使用することを推奨しています。
- 同一サイトの同一言語において類似の地域的な違いがある(例:英ポンドと米ドルの通貨の違い)
- 異なる言語間での同一コンテンツ
hreflangの記述に欠かせない3つの要素
全てのhreflangタグには3つの要素が含まれています。
- rel=”alternate”属性
- 言語コードまたは言語コードと国別コード
- 特定の言語や国に最も適した代替URL
例えば、このhreflangタグはGoogleに対して、イギリスに住む英語が母国語の人々 (en-gb) 向けの代替バージョンであると伝えます。
hreflang=”en-gb” href=”http://www.example.co.uk/”
主要な言語で包括的なサイトを準備して、言語や国が明確化されていない場合に大多数の人に情報を伝えることができるようにしておくと良いかもしれません。
以下のタグはユーザーの国がどこであれ、全ての英語やドイツ語のユーザーに向けてのタグとして機能します。
hreflang=”en” href=”http://www.example.com/”
hreflang=”de” href=”http://www.example.de/”
hreflangタグをどこに設置するか?
hreflangタグはサイトマップや、HTTPレスポンスヘッダ、またはページに直接設置できます。
サイトマップ内に設置
hreflangタグはサイトマップ内に設置するのが最も良いと思われます。これは、hreflangをヘッダー内やサイト上に設置してしまうと、各ページへのリクエストにウェイトを加えて動作を重くしてしまうからです。
以下の例では、Googleに、ドイツ語版サイトから英語版についての情報を伝えることになります。
<url> <loc>http://www.example.com/deutsch/</loc>
<xhtml:link
rel=”alternate”
hreflang=”en”
href=”http://www.example.com/english/”
/>
<xhtml:link
rel=”alternate”
hreflang=”de”
href=”http://www.example.com/deutsch/”
/>
</url>
この手法はサイト上の全ページや全ての多言語サイトにおいて、完全に繰り返される必要があります。
ヘッダーやHTMLの中に設置
hreflangタグはHTTPヘッダー内部にも設置できます。
Link: <http://www.example.com/english/>; rel=”alternate”; hreflang=”en”
Link: <http://www.example.com/deutsch/>; rel=”alternate”; hreflang=”de”
または、HTML内の<head>タグにも設置可能です。
<link rel=”alternate” hreflang=”en” href=”http://www.example.com/english/” />
<link rel=”alternate” hreflang=”de” href=”http://www.example.com/deutsch/” />
間違いが発生する場合にはどのようなものがあるか
Googleは以下のような場合にはhreflangタグを無視します。
言語・国コードの順が逆の場合:
例えば英語・イギリスの場合、en-gbの代わりにgb-enとなっている
言語コードを使わず国別コードのみ使用している場合:
Googleは国別コードからデフォルトの言語を取得するようなことはないため、国別コードは常に言語コードと共に使い、言語→国の順になるようにしてください。
大陸リージョンコードを使用している場合:
例えばen-gbの代わりに、en-euを使用している。
hreflangのあるページを正規化している場合:
こうしたページはインデックスされず検索結果に表示されません。
整合性のないhreflangタグがある場合:
同じ言語・国コードに対して2つの別のURLが指定されている場合、どちらも無視されてしまいます。
壊れた/disallowedのURLが存在する場合:
hreflangタグに追加したURLが壊れているかrobots.txtファイルでdisallowとなっている場合、これらは無視されていまいます。
自己参照がない場合:
ページにhreflang alternative URLをセットで追加するときは、hreflangタグのセット内にそのページの言語・国コードとURLを常に含めるようにしなければなりません。
DeepCrawlを活用したhreflangの検証に役立つレポート
hreflangタグを正確に実装することは非常に難しく、その検証も同様に困難です。DeepCrawlには3つの強力なレポートがあり、hreflangタグのトラッキングとその問題を検出することに役立ちます。
1. hreflangのあるページ
少なくとも1つのhreflangタグのある全てのページは、サイトマップ、ヘッダー、ページタグに設置されています。
deepCrawlのレポートでは、検証>hreflangタグありページで確認してください。
このレポートは各ページにある、サイトが対応している全ての言語・国に関する代替URLの詳細を表示しています。またこれを確認することでタグの実装に一貫性があるかどうかも確認できます(このテーブルで差異が発生しているかどうかがサインです)。

2. hreflangタグのないページ
サイトマップ、ヘッダー、ページタグ内部にhreflangタグが無いページを素早く検出できます。
検証>hreflangタグなしページで、確認してください。
3. hreflangに不一致のあるページ
指定された国・言語コードに対して複数の代替URLが存在する場合、このレポートでは不一致が発生しているとフラグ付けされます。
検証> hreflangタグの不一致で確認してください。
サイトにhreflangのある・なし、またhreflangに不一致があるかどうか確認するためにDeepCrawlをすぐに使っていただくか、DeepCrawlの他のブログ記事(一部英語)をご覧ください。
グローバルSEOに関する詳細

hreflangやジオーターゲティングやコンテンツのローカライズなどその他グローバルSEOに関する詳細について、詳しくはグローバルSEOに関するホワイトペーパーをご覧ください。