hreflangのエラー(言語コード・相互リンク)
hreflangは多言語サイトで「この言語の読者にはこのURLを」と検索エンジンに伝える仕組みです。設定が壊れていると無視され、日本の読者に英語ページが表示されるといった事態を防げなくなります。エラーは主に2種類です。
公開日: 2026年8月16日 / 最終更新日: 2026年9月6日
カテゴリ: 国際化 / 影響度: 中 / 想定工数: 1時間 / ルールID: hreflang_invalid_lang
hreflangの基本
同じ内容の日本語版と英語版がある場合、各ページのhead内で相互に言語版を宣言します。これにより検索エンジンは、検索した人の言語に合った版を表示できます。
基本形(日本語版・英語版・既定版)
<link rel="alternate" hreflang="ja" href="https://example.com/ja/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />エラー1: 無効な言語コード
hreflangの言語部分はISO 639-1の2文字コード(ja、en、zhなど)で書く必要があります。よくある間違いは、国コードとの混同です。「jp」は国コードであり言語コードではありません。日本語は「ja」です。同様に、英国向け英語は「en-GB」のように「言語-地域」の順で書きます。
Smash SEOはISO 639-1の全185コード(およびx-default)を正当として検証し、それ以外を無効と判定します。「tr(トルコ語)」「cs(チェコ語)」のような使用頻度の低い正当なコードを誤って無効と報告することはありません。
エラー2: 相互リンクの欠落
hreflangは相互に宣言して初めて有効です。日本語版が英語版を指しているのに、英語版が日本語版を指し返していない場合、その組み合わせは無視されることがあります。
検証の際、SmashSEOはURLを正規化してから突き合わせます。末尾スラッシュの有無のような表記揺れだけで「相互リンクがない」と誤報告しないためです。
直し方
- 言語コードをISO 639-1に修正する(jp→ja が最頻出)
- 全言語版のテンプレートに、同じhreflangセットを出力させる(片方だけ更新される構造にしない)
- hreflangのhrefには正規URL(canonicalと同じURL)を指定する
- x-defaultで「どの言語にも該当しない人向け」の既定版を指定する
修正後の確認方法
- 各言語版のソースで、hreflangセットが全版に同一に出力されていること
- 再診断してhreflangのエラーが0件になっていること
- 数週間後、Search Consoleの検索パフォーマンスを国別に見て、意図した言語版が表示されているか確認する
よくある質問
hreflangを設定すれば翻訳ページの順位が上がりますか?
順位を上げる仕組みではありません。「どの言語版を表示するか」の振り分けを正すものです。誤った言語版が表示される問題の解消がhreflangの効果です。
1ページしか多言語版がなくても設定すべきですか?
対応する言語版が存在するページだけに設定します。対応版のないページに設定すると、存在しないURLを宣言することになり逆効果です。
関連記事
- canonicalが自身のURLと異なる(canonical不一致)
canonical不一致とは、あるページの canonical タグが自分自身ではなく別のURLを指している状態です。意図した正規化なら問題ありませんが、意図せず発生している場合、そのページは検索結果に出なくなる可能性があります。 - titleタグの重複(複数ページで同じタイトル)
titleの重複とは、サイト内の複数ページが同一のtitleタグを持っている状態です。検索エンジンがページを区別しにくくなり、意図しないページが検索結果に表示されたり、どのページも上位に出ないという結果につながります。 - Search Consoleのエラー通知の意味と対処一覧
Search Consoleの通知メールは、深刻なものと事実上の情報提供が同じトーンで届きます。全部に慌てる必要はありませんが、放置してはいけないものが混ざっています。通知の種類ごとに、緊急度と対処を整理しました。
この問題が自分のサイトで起きているかは、URLを入力するだけで確認できます。 無料で診断する / ルール一覧 / 料金プラン