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を正規化してから突き合わせます。末尾スラッシュの有無のような表記揺れだけで「相互リンクがない」と誤報告しないためです。

直し方

修正後の確認方法

よくある質問

hreflangを設定すれば翻訳ページの順位が上がりますか?

順位を上げる仕組みではありません。「どの言語版を表示するか」の振り分けを正すものです。誤った言語版が表示される問題の解消がhreflangの効果です。

1ページしか多言語版がなくても設定すべきですか?

対応する言語版が存在するページだけに設定します。対応版のないページに設定すると、存在しないURLを宣言することになり逆効果です。

関連記事

この問題が自分のサイトで起きているかは、URLを入力するだけで確認できます。 無料で診断するルール一覧料金プラン