canonicalとhreflangは、別の問題を解決する
canonicalは、重複またはよく似たセットを代表するURLをGoogleに伝えます。hreflangは、言語や地域別の代替URLにラベルを付け、検索がユーザーに適したバージョンを選べるようにします。この2つのアノテーションは補い合う関係です。どちらも、言語の切り替えをリダイレクトのルールに変えるものではありません。
実際に翻訳された英語とスペイン語のページでは、ページ単位の通常のパターンは、各URLの自己参照のcanonicalと、対応するページ同士の相互のhreflangのアノテーションです。メインコンテンツの言語は、画面上で明確に分かる必要があります。Googleの多言語に関するガイダンスは、ブラウザーの設定だけに基づく言語の出し分けでは、バリエーションが見つけられないことがあるとも注意しています。
テンプレートを編集する前に、代替ページの対応表を作る
まず、ページグループの表を作ります。言語または地域ごとに推奨のURLを1つ、その言語コード、メインコンテンツが翻訳なのか、地域向けの調整なのか、意図しない重複なのかを載せます。x-defaultを追加するのは、本当に言語選択ページやフォールバックのページがある場合だけです。翻訳のないページを、表を埋めるためだけにホームページに向けてはいけません。
同じ言語での地域別のペアは、別に判断が必要です。実質的な内容が同等なら、Googleは、地域別の重複に対して、canonicalとhreflangを組み合わせる方法を文書化しています。価格、在庫、規制、現地向けのアドバイスなどで、ページが意味のある形で異なるなら、各ページの目的を保ち、すべての代替ページが相互になっているか確認します。
実装し、レンダリング後のアノテーションを確認する
CMSのフィールドだけでなく、最終的なHTMLを確認します。各canonicalの指定先は、正常なレスポンスを返し、インデックス登録できる状態で、ページと同じ推奨のプロトコル、ホスト、パスのポリシーを使います。各hreflangの指定先は、存在し、相互のアノテーションを同じセットで持ち、対応する言語または地域のページを指している必要があります。
実務的なサンプルには、通常の翻訳済みページ、翻訳のないページ、地域別のバリエーションを含めます。デプロイ後にサンプルをクロールし、canonicalの指定先、hreflangの相互性、言語の宣言、サイトマップのURLを比べます。代替ページがなければ、「ない」と記録します。無関係なURLで、黙って置き換えてはいけません。
保証できないこと
canonicalは命令ではなくシグナルです。シグナルが食い違うと、Googleは別の代表URLを選ぶことがあります。hreflangは選択の助けにはなりますが、すべての地域URLがインデックス登録される、またはすべてのクエリで表示されることは保証しません。言語をまたぐcanonicalが、ページを自動的にインデックスから外すといった主張は避けます。実際の結果は、コンテンツと、より広いシグナルのセットによって決まります。
よくある失敗は、デフォルト以外のすべての言語を、1つの元のページの重複として扱うことです。より安全なルールは、メインコンテンツから類似性を判断し、言語別の代替ページに通常のリンクで到達できるようにして、ルーティングやテンプレートを変更したあとにレンダリング後のセットを再確認することです。
FAQ
多言語サイトのcanonicalは、実務では何を意味しますか?
多言語サイトのcanonicalは、どう評価すればよいですか?
hreflangは、言語や地域別の代替URLにラベルを付け、検索がユーザーに適したバージョンを選べるようにします。この2つのアノテーションは補い合う関係です。どちらも、言語の切り替えをリダイレクトのルールに変えるものではありません。