「英語版のサイトを作ったのに、海外の検索結果に日本語のページが表示される」「hreflangを設定したが、正しく機能しているか分からない」と悩むWeb担当者は少なくありません。hreflangは、同じ内容のページを複数の言語や地域向けに用意している場合に、それぞれのページの関係をGoogleに伝えるための指定です。
hreflangは、書き方のルールが細かく、1か所の誤りで指定全体が無視されることもあります。古い解説記事には、現在は提供されていない機能を前提にした情報も残っているため、Googleの最新の説明に沿って設定することが大切です。
本記事では、hreflangの意味と必要なケース、言語コードと地域コードの指定方法、3つの設定方法、正しく機能させるためのルール、canonicalとの関係とよくあるミス、設定後の確認方法、多言語サイトのSEOであわせて取り組むことまでを順番に解説します。
| 確認したいポイント | 結論 | 詳細 |
|---|---|---|
| hreflangとは何? | 言語や地域ごとのページの関係を伝える指定 | 同じ内容を複数の言語や地域向けに提供する場合に、検索した人に合う言語版を表示しやすくします。順位を上げる設定ではありません。 |
| hreflangはどう設定する? | HTML、サイトマップ、HTTPヘッダーの3通り | Googleはどの方法も同じように扱います。ページ数が少なければHTML、多ければXMLサイトマップでの一括管理が向いています。 |
| 正しく機能させるルールは? | 自己参照を含め、双方向に省略のないURLで指定 | 自分自身を含むすべての言語版を互いに指定し、https://から始まる正規URLを使います。片方向だけの指定は無視されます。 |
hreflangとは?言語や地域ごとのページの関係を伝える指定
hreflang(エイチレフラング)とは、同じ内容を異なる言語や地域向けに提供しているページ同士の関係を、検索エンジンに伝えるための属性です。検索した人の言語や地域に合ったページを、Googleが検索結果に表示しやすくする役割を持っています。
ここでは、hreflangの基本的な役割と、設定が必要なケース、SEOでの効果と限界を整理します。
hreflangの基本的な役割
たとえば、日本語版のページと英語版のページを用意している場合、hreflangで「このページの英語版はこのURL」「日本語版はこのURL」と指定します。Googleはこの情報を参考に、英語で検索した人には英語版を、日本語で検索した人には日本語版を表示しやすくなります。
hreflangは、ページごとに、対応する各言語版のURLを指定する仕組みです。サイト全体で1か所に書けばよいものではなく、言語版が存在するページすべてに設定する必要があります。
言語版のページは、同じドメインの中にある必要はありません。日本語版は「example.jp」、英語版は「example.com」のように、別のドメインで運営しているサイト同士でも、hreflangで関係を伝えられます。
hreflangが必要なケースと不要なケース
hreflangが必要になるのは、日本語と英語、中国語など、同じ内容を複数の言語で提供している場合です。同じ英語でも、アメリカ向けとイギリス向けで価格や通貨、配送条件が異なるページを用意している場合も、地域を区別するために設定します。
日本語のページしかないサイトや、言語ごとにまったく異なる内容のページを公開しているサイトでは、hreflangは必要ありません。訪日外国人や海外の顧客を集客するために多言語のページを作る場合に、検討すべき設定です。訪日外国人向けの集客の考え方は「インバウンドSEO対策とは」で解説しています。
hreflangのSEO効果と限界
hreflangを正しく設定すると、検索した人の言語や地域に合ったページが表示されやすくなり、言語の合わないページが表示されて離脱されることを防げます。言語版同士が重複したページと判断されにくくなる点も利点です。
ただし、hreflangは検索順位そのものを上げる設定ではなく、すでに評価されているページの中から、適切な言語版を選んで表示してもらうための指定です。Googleは、ページの言語をhreflangやHTMLのlang属性ではなく、ページの内容から判断すると説明しています。各言語版のページの内容を、その言語で正しく作ることが前提になります。
hreflangで使う言語コードと地域コード
hreflangでは、言語と地域を決められたコードで指定します。コードの書き方を誤ると、その指定は無効になるため、規格に沿って正確に記述することが大切です。
言語コードはISO 639-1で指定する
言語は、ISO 639-1という国際規格の2文字のコードで指定します。日本語は「ja」、英語は「en」、韓国語は「ko」、フランス語は「fr」です。
中国語は、簡体字と繁体字を区別する必要があるため、文字の種類を表すコードを組み合わせて「zh-Hans」(簡体字)、「zh-Hant」(繁体字)のように指定できます。日本語を国のコードと混同して「jp」と書く誤りが多いため注意しましょう。
地域コードは言語コードと組み合わせて指定する
地域は、ISO 3166-1 Alpha 2という規格の2文字のコードで指定します。アメリカは「US」、イギリスは「GB」、台湾は「TW」です。イギリスを「UK」と書く誤りもよく見られます。
地域コードは、必ず言語コードと組み合わせて「en-US」「en-GB」「zh-TW」のように指定します。地域コードだけを単独で指定することはできません。同じ言語で地域ごとのページがある場合は、地域を指定しない「en」などの汎用的なページも用意しておくと、どの地域にも当てはまらない人に対応できます。
どの言語にも当てはまらない人向けのx-default
x-defaultは、指定したどの言語や地域にも当てはまらない人に表示するページを示すための値です。たとえば、言語を選ぶためのページや、最も多くの人に向けた英語版のページを指定します。
x-defaultの設定は必須ではありませんが、多くの国や言語に向けてサイトを展開している場合は、設定しておくと誘導先を明確にできます。x-defaultにも、ほかの言語版と同じように、すべての言語版のページから指定する必要があります。
たとえば、日本語版と英語版のほかにアジアの各国向けのページがあるサイトでは、どの言語にも当てはまらない国の人には英語版を見せたいというケースが多くあります。この場合は、英語版のURLをx-defaultとしても指定しておくと、意図した言語版へ誘導しやすくなります。
hreflangの3つの設定方法
hreflangの設定方法には、HTMLのlink要素、XMLサイトマップ、HTTPヘッダーの3種類があります。Googleはどの方法も同じように扱うため、サイトの規模や運用のしやすさで選びましょう。複数の方法を組み合わせても、効果が高まるわけではありません。
HTMLのlink要素で設定する
最も一般的な方法は、各ページのhead要素の中に、link要素で各言語版のURLを記述する方法です。日本語版と英語版、x-defaultを指定する場合は、次のように記述します。
<link rel=”alternate” hreflang=”ja” href=”https://example.com/ja/service/” />
<link rel=”alternate” hreflang=”en” href=”https://example.com/en/service/” />
<link rel=”alternate” hreflang=”x-default” href=”https://example.com/en/service/” />
同じ記述を、日本語版と英語版の両方のページに入れます。ページ数が少ないサイトでは分かりやすい方法ですが、言語やページが増えると、すべてのページの記述を正しく保つ手間が大きくなります。
XMLサイトマップで設定する
ページ数が多いサイトでは、XMLサイトマップで一括して指定する方法が便利です。サイトマップの各URLの項目に、対応する言語版をxhtml:link要素で記述します。
<url>
<loc>https://example.com/ja/service/</loc>
<xhtml:link rel=”alternate” hreflang=”ja” href=”https://example.com/ja/service/” />
<xhtml:link rel=”alternate” hreflang=”en” href=”https://example.com/en/service/” />
</url>
英語版のURLの項目にも、同じように両方の言語版を記述します。ページのHTMLを変更しなくてよいため、CMSやシステムでサイトマップを自動作成できる場合は、管理の手間を大きく減らせます。サイトマップは、作成後にSearch Consoleから送信しておきましょう。
サイトマップでhreflangを指定する場合は、ファイルの冒頭でxhtmlの名前空間を宣言する必要があります。宣言が抜けているとサイトマップ全体が正しく読み込まれないため、作成後に記述を確認しましょう。
HTTPヘッダーで設定する
PDFなど、HTMLではないファイルにはhead要素がないため、サーバーが返すHTTPヘッダーのLinkという項目で指定します。
Link: <https://example.com/ja/guide.pdf>; rel=”alternate”; hreflang=”ja”,
<https://example.com/en/guide.pdf>; rel=”alternate”; hreflang=”en”
サーバーの設定が必要になるため、Webサイトの制作会社やサーバーの管理者と相談して設定しましょう。PDFの資料を言語ごとに用意している場合に検討する方法です。
サイトに合った方法を選ぶ
ページ数が少なく、手作業で管理できるサイトであれば、HTMLのlink要素が分かりやすい方法です。ページ数が多いサイトや、言語版を頻繁に追加するサイトでは、XMLサイトマップでの管理が向いています。
WordPressなどのCMSでは、多言語化のプラグインがhreflangを自動で出力するものもあります。プラグインを使う場合も、実際に出力されている内容が正しいかを必ず確認しましょう。
| 【海外向けサイトの集客を検索から伸ばしたい方へ】 「多言語サイトを作ったが、海外からの問い合わせが増えない」という方に向けて、合同会社楽々Editではサービス内容や支援実績を整理した資料をご用意しています。社内での検討資料としてご活用ください。 → サービス資料を無料でダウンロードする |
hreflangを正しく機能させるためのルール
hreflangは、記述のルールを1つでも守れていないと、Googleに無視されることがあります。Google検索セントラルのページのローカライズ版に関する説明に沿って、次の4つのルールを確認しましょう。
自分自身のページも指定に含める
hreflangでは、ほかの言語版だけでなく、そのページ自身のURLも指定に含めます。日本語版のページであれば、日本語版のURLを「ja」として記述したうえで、英語版などのURLを並べます。
自分自身の指定が抜けていると、言語版のまとまりを正しく認識してもらえないおそれがあります。すべての言語版のページで、同じ組み合わせの指定を記述するのが基本です。
言語版同士で双方向に指定する
日本語版のページから英語版を指定した場合、英語版のページからも日本語版を指定する必要があります。Googleは、2つのページが互いに参照し合っていない場合、その指定を無視すると説明しています。
新しい言語版を追加したときに、既存の言語版のページへの追記を忘れるケースが多いため、言語版を追加する際の作業手順に、既存ページの更新を組み込んでおきましょう。
言語版の数が増えるほど、手作業で双方向の指定を保つのは難しくなります。言語版の対応表をスプレッドシートなどで管理し、そこからhreflangの記述やサイトマップを作成する仕組みにすると、記述の漏れや不一致を防ぎやすくなります。
省略のないURLで正規のページを指定する
hreflangで指定するURLは、「https://」から始まる省略のない形で記述します。「/en/service/」のような省略した書き方は使えません。
指定するURLは、実際にアクセスでき、インデックスの対象になっている正規のURLにしましょう。httpとhttps、wwwの有無、末尾のスラッシュの有無など、URLの表記がサイトの正規のURLと一致しているかを確認することが大切です。
内容が対応するページ同士を指定する
hreflangは、同じ内容を異なる言語や地域向けに提供しているページ同士を結び付けるものです。英語版のサービスページには、日本語版のサービスページを指定し、日本語版のトップページを指定しないようにしましょう。
対応する言語版が存在しないページに、ほかの言語のトップページを機械的に指定することも避けます。言語版がないページは、hreflangの指定に含めないのが基本です。
canonicalとの関係とよくあるミス
hreflangは、canonicalやnoindex、リダイレクトなどのほかの設定と矛盾すると、正しく機能しなくなります。設定の組み合わせによって起こりやすいミスを把握しておきましょう。
canonicalは各言語版のページ自身を指定する
canonicalは、内容が重複するページの中から、検索結果に表示する正規のURLを伝えるための指定です。言語版のページでは、それぞれのページで自分自身のURLをcanonicalに指定するのが基本です。
英語版のページのcanonicalを日本語版に向けてしまうと、英語版は日本語版の重複と判断され、英語版が検索結果に表示されにくくなります。hreflangとcanonicalが矛盾していないかを、必ず確認しましょう。重複したページの考え方は「重複コンテンツとは?SEOへの影響」で解説しています。
noindexやリダイレクト、エラーのURLを含めない
hreflangで指定したURLが、noindexで検索結果に表示しない設定になっていたり、別のURLに転送されたり、存在しないページになっていたりすると、指定が正しく機能しません。
サイトのリニューアルやURLの変更を行ったときは、hreflangで指定しているURLも忘れずに更新しましょう。インデックスされない原因の確認方法は「Googleにインデックスされない原因と対処法」で紹介しています。
言語コードと地域コードの書き間違い
日本語を「jp」、イギリスを「UK」と書くなど、コードの書き間違いはよく見られるミスです。存在しないコードや、地域コードだけの指定は無効になります。
ページの内容と言語コードが一致していないミスにも注意しましょう。英語のページに別の言語のコードを指定すると、意図しない地域の検索結果に表示されるおそれがあります。
言語や地域による自動転送に注意する
訪問した人の言語の設定や、アクセス元の地域を判断して、自動的に別の言語版へ転送する仕組みを導入しているサイトもあります。しかし、この仕組みがあると、ユーザーが希望する言語版を見られなくなったり、検索エンジンがすべての言語版を巡回できなくなったりするおそれがあります。
自動で転送するのではなく、ページ上に分かりやすい言語の切り替えリンクを設置し、ユーザーが自分で選べるようにすることが望ましい方法です。
| 【多言語サイトの技術的なSEOとコンテンツ戦略を支援します】 「hreflangを含む多言語サイトの設定が正しいか分からない」「海外向けのページで検索からの集客を伸ばしたい」という方に向けて、楽々EditのSEOコンサルティングでは、サイトの現状分析から技術的な改善、キーワード設計、コンテンツの制作までを一貫して支援します。 → SEOコンサルティングの詳細を見る |
hreflangが正しく設定されているかを確認する方法
hreflangは、設定した後に正しく出力され、ミスがないかを確認することが大切です。以前はSearch Consoleでhreflangのエラーを確認できましたが、現在はその機能が提供されていないため、ほかの方法で確認する必要があります。
ページのソースで出力を確認する
ブラウザでページを開き、右クリックから「ページのソースを表示」を選んで「hreflang」で検索すると、head要素に出力されている内容を確認できます。自分自身のURLが含まれているか、URLとコードに誤りがないかを確認しましょう。
CMSのプラグインやJavaScriptでhreflangを出力している場合は、意図したとおりに出力されているかを、実際の公開ページで確認することが大切です。Search ConsoleのURL検査で、Googleが取得したページのHTMLを確認する方法もあります。
クロールツールでサイト全体を確認する
ページ数が多いサイトでは、サイト全体を巡回してhreflangの指定を一覧で確認できるクロールツールを使うと効率的です。双方向になっていない指定や、エラーになっているURL、canonicalとの矛盾などを、一度に見つけられます。
定期的にサイト全体を確認し、ページの追加や削除のたびに生じたずれを修正する運用にしておくと、設定の誤りを長く放置せずに済みます。サイト全体のチェック方法は「SEOチェックのやり方」で紹介しています。
Search Consoleの国別の数値を確認する
Search Consoleの「インターナショナル ターゲティング」のレポートは、2022年に提供が終了しました。Googleは、提供終了後もhreflangのサポートは続けると説明しています。
現在は、検索パフォーマンスのレポートで国やページを絞り込み、それぞれの国で、その国向けの言語版のページが表示されているかを確認する方法が有効です。日本の検索結果で英語版が表示されているなど、意図しない表示が見つかった場合は、hreflangの設定を見直しましょう。
ただし、hreflangはGoogleへのヒントであり、必ず指定どおりに表示されるとは限りません。言語版の内容が薄い場合や、一方の言語版だけが多くのリンクを受けている場合などは、指定と異なるページが表示されることもあります。設定に誤りがないのに意図した表示にならない場合は、各言語版の内容の充実度も確認しましょう。
多言語サイトのSEOであわせて取り組むこと
hreflangは、多言語サイトのSEOの土台となる設定ですが、それだけで海外からの集客が増えるわけではありません。各言語版のページが、その国や地域の人に選ばれる内容になっていることが前提です。
言語版ごとにURLを分ける
言語版のページは、言語ごとに別々のURLを用意しましょう。「example.com/en/」のようにディレクトリで分ける方法、「en.example.com」のようにサブドメインで分ける方法、国ごとのドメインを使う方法があります。
同じURLのまま、Cookieやブラウザの設定によって表示する言語を切り替える方法は、検索エンジンがすべての言語版を認識できないため避けましょう。運用のしやすさを考えると、多くのサイトではディレクトリで分ける方法が管理しやすくなります。
URLの構造は、一度決めると後から変更するのに大きな手間がかかります。どの国や地域に、どの言語で、どの程度の規模で展開するのかを事前に整理し、将来の言語版の追加も見据えて決めることが大切です。
翻訳ではなく現地に合わせて作る
日本語のページを機械的に翻訳しただけでは、現地の人が検索する言葉や、知りたい情報とずれてしまうことがあります。価格や通貨、単位、問い合わせ方法なども、現地の人に合わせて調整しましょう。
各言語で、現地の人が実際に検索する言葉を調べ、タイトルや見出し、本文に反映することが大切です。キーワードの調べ方は「ブログのキーワードの選び方」、検索意図の調べ方は「検索意図の分析方法」で解説しています。
言語の切り替えリンクを分かりやすく設置する
各ページに、ほかの言語版へ移動するためのリンクを設置しましょう。言語の名前は、「English」「中文」のように、その言語自身の表記で書くと、読めない言語のページに来た人でも見つけやすくなります。
国旗のアイコンだけで言語を表すと、複数の国で使われている言語の場合に分かりにくくなるため、文字での表記を添えるのがおすすめです。言語の切り替えリンクは、検索エンジンが各言語版を見つける手がかりにもなります。
| 【多言語サイトの設定と集客の進め方を無料でご相談いただけます】 「hreflangの設定を確認してほしい」「海外向けのページが検索に表示されない理由を知りたい」という方は、楽々Editの無料相談をご活用ください。サイトの現状を確認し、成果につながる改善策をご提案します。 → 無料相談を申し込む |
まとめ
hreflangとは、同じ内容を異なる言語や地域向けに提供しているページ同士の関係を、検索エンジンに伝えるための指定です。検索した人の言語や地域に合ったページを表示しやすくする役割を持ち、多言語サイトのSEOの土台となります。
正しく機能させるためには、ISO規格に沿った言語コードと地域コードを使い、自分自身を含むすべての言語版を、省略のないURLで双方向に指定することが大切です。設定方法はHTMLのlink要素、XMLサイトマップ、HTTPヘッダーの3種類があり、サイトの規模に合わせて選びます。
canonicalとの矛盾やnoindex、リダイレクトのURLの指定などのミスを避け、設定後はソースの確認やクロールツール、Search Consoleの国別の数値で確認しましょう。そのうえで、現地に合わせた内容のページを作ることが、海外からの集客を伸ばす近道です。