canonicalタグは「指示」ではない|Googleが正規URLを選ぶ仕組みと、設定しても無視される理由
Search Consoleの「カバレッジ」や「ページ」レポートを開いたとき、「ユーザーが指定した正規URL」と「Googleが選択した正規URL」が異なる行を見つけて困惑した経験はないでしょうか。rel="canonical"タグは正しく設定したはずなのに、なぜGoogleは別のURLを選ぶのか。この記事では、Google Search Central公式ドキュメントの記載に基づいて、その仕組みを整理します。
30秒で要点
- Google Search Central公式ドキュメントは、canonicalizationを「あるコンテンツの代表的なURLを選ぶプロセス」と定義し、選ぶ主体はGoogle側だと明記している
- rel="canonical"タグによる指定は「ヒントであってルールではない」と公式に明記されている。指定どおりに選ばれるとは限らない
- 正規化に影響する手法には強弱がある。リダイレクトとrel="canonical"は「強いシグナル」、サイトマップ掲載は「弱いシグナル」。robots.txtは正規化の手段として使えない
- 重複コンテンツがあること自体はGoogleのスパムポリシー違反ではない。問題になるのは、シグナルが矛盾してGoogle側の選択が曖昧になる状態が続くこと
| 用語 | 意味 |
|---|---|
| canonicalization(正規化) | 重複するURL群の中から、Googleが「代表的なURL」を選ぶプロセス |
| canonical URL(正規URL) | 重複ページの集合の中から、Googleが最も代表的だと選んだページのURL |
| 正規化シグナル | リダイレクト・rel="canonical"・サイトマップ掲載など、Googleに正規URLの希望を伝える手段 |
なぜ「指定と違うURLが選ばれる」ことに困惑するのか
ECサイトや不動産サイトでは、同じ商品・物件を「価格順」「新着順」で並べ替えたページや、「色違い」「サイズ違い」で絞り込んだページが、URLパラメータの違いだけで大量に生成されます。運用者はこれらすべてに同じ内容を指すrel="canonical"タグを設定し、「これで正規URLはこちらに統一される」と考えます。
ここで多くの人が前提としているのは、rel="canonical"が「命令」だという理解です。HTMLタグとして明示的に指定しているのだから、検索エンジンはその指定に従うはずだ、という考え方は自然に見えます。しかし、Google Search Centralの公式ドキュメント「What is canonicalization」は、この前提を明確に否定しています。同ドキュメントは、正規化のためにできる手法(HTTP/HTTPSの指定、リダイレクト、サイトマップへの掲載、rel="canonical"アノテーション)を挙げたうえで、「これらの手法でGoogleに希望を伝えることはできるが、さまざまな理由によりGoogleはあなたとは異なるページをcanonicalとして選ぶことがある」とし、「indicating a canonical preference is a hint, not a rule(正規化の希望を示すことはヒントであって、ルールではない)」と明記しています。
Googleが「代表的なURL」を選ぶという発想
同ドキュメントは、canonicalizationを「あるコンテンツの代表的なURLを選ぶプロセス」と定義し、canonical URLを「重複ページの集合の中からGoogleが最も代表的だと選んだページのURL」と定義しています。ここで重要なのは、主語が常に「Google」であることです。運用者が「指定する」のではなく、Googleが複数の候補の中から「選ぶ」という構造になっています。
この構造を、投票の比喩で考えると分かりやすくなります。rel="canonical"タグは、あなたが投じる1票です。しかし最終的にどの候補が選ばれるかは、あなたの1票だけでなく、リダイレクトの設定・実際のリンク構造・サイトマップの内容など、複数の票を集計した結果として決まります。1票を投じたからといって、その候補が必ず当選するわけではない、という理解が実態に近いものです。
もう1つ押さえておきたいのが、同ドキュメントが「サイト内に重複コンテンツがあること自体は正常であり、Googleのスパムポリシー違反ではない」と明記している点です。重複が生じる原因として、地域バリアント(国ごとの価格表示違いなど)・デバイスバリアント(PC版とモバイル版)・プロトコルバリアント(HTTPとHTTPS)・サイト機能(並べ替え・絞り込み)・偶発的バリアントの5つが列挙されています。ECサイトや不動産サイトで大量に発生する絞り込みURLの重複は、この「サイト機能による重複」に該当し、それ自体は想定内の状態だとGoogleは位置づけています。問題は重複の存在ではなく、その先の「どれを代表として扱うか」がGoogle側で曖昧なままになることです。
正規化シグナルには「強さの序列」がある
Google Search Centralのもう1つの公式ドキュメント「How to specify a canonical URL」は、正規化に影響する3つの方法を強さの順に列挙しています。
- リダイレクト:「リダイレクト先がcanonicalになるべきだという強いシグナル」
- rel="canonical"のlinkアノテーション:「指定したURLがcanonicalになるべきだという強いシグナル」
- サイトマップへの掲載:「掲載されたURLがcanonicalになるのを助ける弱いシグナル」
これらは「these methods can stack(これらの手法は積み重ねて使える)」とされており、併用が可能です。同時に、同ドキュメントは「none of them are required; your site will likely do just fine without specifying a canonical preference(いずれも必須ではなく、正規化の希望を指定しなくてもサイトはたいてい問題なく機能する)」とも述べています。つまり、正規化は「何か1つを設定すれば解決する」ものではなく、複数のシグナルが矛盾なく同じ方向を向いているかどうかで判断される仕組みだということです。
やってはいけない組み合わせ
同ドキュメントは、正規化に関するベストプラクティスとして、いくつかの手法を明確に禁止・非推奨としています。特に運用の現場で見落とされやすいのが次の3点です。
- 正規化目的でのrobots.txtの使用:「Don't use the robots.txt file for canonicalization purposes.」と明記されています。理由は、robots.txtでdisallowされたURLも、コンテンツなしの状態でインデックスされうるためです。「見せたくないURLをrobots.txtでブロックすれば正規化される」という誤解は、この記述と矛盾します
- 手法間で矛盾するcanonical指定:あるページのrel="canonical"がAを指し、リダイレクトはBを指す、といった状態です。強いシグナル同士が矛盾すると、Googleの選択が不安定になります
- URLフラグメント(#以降の部分)へのcanonical指定:フラグメントはそもそも正規化の対象として機能しません
これらはいずれも、「間違って設定した」というより「良かれと思って設定したが、公式には推奨されない組み合わせだった」というパターンで発生しがちです。
判断軸の提示
canonical関連の設定を見直すときは、「rel="canonical"タグを設定したかどうか」ではなく「リダイレクト・rel="canonical"・サイトマップという3つのシグナルが、同じURLを指して矛盾なく揃っているか」を確認すること。rel="canonical"はヒントの1つに過ぎず、単体では正規URLの選択を保証しません。特にECサイトや不動産サイトのように絞り込み・並べ替えでURLが大量発生する構造では、代表ページへのリダイレクトが技術的に難しいことが多いため、rel="canonical"とサイトマップの指定を一致させ、矛盾する内部リンクを減らすところから点検するのが現実的な順序です。
確かなことと、まだ確かではないこと
確かなこと: Google Search Centralの公式ドキュメント2本(canonicalization、consolidate-duplicate-urls)が、正規化の主体はGoogle側であること、rel="canonical"は「ヒントであってルールではない」こと、リダイレクト・rel="canonical"・サイトマップの3手法に強弱があること、robots.txtは正規化の手段として使えないことを、それぞれ明記していること。
まだ確かではないこと: Googleが複数のシグナルからどのように最終的な正規URLを選ぶかという内部のアルゴリズム処理(シグナルの重み付けの数値化など)は、公式ドキュメントでは開示されていません。強弱の序列は示されていますが、個別サイトのケースでどのシグナルが実際に決め手になったかは、外部からは特定できません。
自分でも試せる、最小の検証
自社サイトの中から、絞り込み・並べ替えで生成されるURLを1つ選び、そのページのrel="canonical"タグが指すURLと、サイトマップに掲載されているURLが一致しているかを確認してみてください。一致していない、あるいはそもそもサイトマップにどちらか一方しか載っていない場合、それがシグナルの矛盾です。Search Consoleの「ページ」レポートで、そのURLの「Googleが選択した正規URL」欄を見れば、実際にどちらが選ばれているかを確認できます。
この記事で扱ったような判断を、自社の状況に照らして整理したい場合は、無料診断ツールで状況を言語化するところから始めることができます。
状況を整理する(15分)