ガイド

canonicalが効かない5つの衝突と、Googleの判断

Google自身の表現は「ルールではなくヒント」。サイト内のシグナル同士がぶつかる5か所と、Googleがどちらを採るかを整理します。

執筆: WebDoctor編集部·2026年9月23日·2 分で読めます


canonicalタグは指示ではなくヒントです。Googleの正規化に関するドキュメントにそう書かれており、正規URLはGoogle自身が決めます。判断材料はあなたのタグだけでなく、リダイレクト、サイトマップへの掲載、HTTPSの優先、hreflangクラスタも含みます。これらが食い違うと、タグのほうが負けます。その原因になる5つの衝突を見ていきます。

canonicalタグは指示なのかヒントなのか

ヒントです。GoogleのWhat is canonicalizationには、正規URLの指定はルールではなくヒントである、と明記されています。Googleは重複と判断したページをクラスタにまとめ、その中で最も完全で検索ユーザーに有用だと判断したページを正規として選びます。あなたのタグはその判断への入力のひとつで、強さの順序も公開されています。

シグナル強さGoogleの説明
リダイレクト強い。一番目に記載リダイレクト先が正規になるべきだという強いシグナル
rel=canonicalアノテーション強い。二番目に記載指定したURLが正規になるべきだという強いシグナル
サイトマップへの掲載弱い掲載URLが正規になりやすくなるが、どれが重複かはGoogleが判断する
HTTPよりHTTPSサイト構成由来のシグナル矛盾するシグナルがない限り、GoogleはHTTPSページを正規として優先する
hreflangクラスタへの所属サイト構成由来のシグナルGoogleはhreflangクラスタに含まれるURLを優先する

個別の衝突に入る前に、ベストプラクティスから2点だけ押さえておきます。正規化の目的でrobots.txtを使わないこと。ブロックしたURLも、内容なしのままインデックスされることがあるからです。そしてひとつのページに対し、異なる手段で異なる正規URLを指定しないこと。

noindexやrobots.txtでブロックしたページ、リダイレクトするページを指定してよいか

指定はできますが、どのパターンもタグの効き目を削ります。Googleは、同一サイト内で正規ページを選ぶ目的でnoindexを使うことを推奨していません。ページが検索から完全に消えてしまうためで、代わりにrel=canonicalを推奨と明記しています。robots.txtでブロックしたURLを指すのはさらに悪く、noindexのドキュメントは「ページを取得できないクローラーは、そこに書かれたルールを見ることがない」と明言しています。

やっかいなのはリダイレクトです。Google自身の順序で、リダイレクトはcanonicalタグより上に置かれています。ドキュメントが具体的に扱っているのは1つの場面だけです。HTTPSページがユーザーをHTTPへ、あるいはHTTP経由でリダイレクトする場合や、HTTP版へのcanonicalを持つ場合が矛盾するシグナルとして挙げられ、HTTPSからHTTPへのリダイレクトはGoogleにHTTPを非常に強く優先させる、と書かれています。それ以外のケース、つまりcanonicalの指す先がリダイレクトするときにどうなるかまでは書かれていません。ですので転送先は自分で確認してください。当サイトのリダイレクトチェッカーで追跡し、200を返すURLにタグを向けます。

サイトマップとcanonicalタグが食い違うとどうなるか

これはGoogleのベストプラクティスが名指ししています。同じページについて、サイトマップで1つのURLを、rel=canonicalで別のURLを指定してはいけません。サイトマップへの掲載は2つのうち弱いシグナルなので、通常はタグが通ります。それでも送信したURLはすべて正規の候補として提案され、どれが重複かはGoogleが判断し直します。直し方は地味です。canonicalタグを出力しているのと同じデータソースからサイトマップを生成し、ファイルを当サイトのサイトマップバリデータで確認してください。そもそも何を載せるべきかはサイトマップのベストプラクティスで扱っています。

rel=canonicalはhreflangと衝突するか

よく衝突します。そして多言語サイトが最も痛手を受けるのがこれです。Googleの指示は、同じ言語の正規ページを指定すること、同じ言語のものがなければ最も近い代替言語を指定することです。日本語ページのcanonicalを英語URLに向ければ、日本語版を落としてくれとGoogleに頼んだことになります。

同じドキュメントからもう2点。hreflang、lang、media、typeの属性が付いたrel=canonicalアノテーションは、正規化にはまったく使われません。そうした指定はrel=alternateの役目です。またクラスタへの所属自体がシグナルになります。Googleの例では、相互に参照し合うde-deとde-chのページが正規として優先され、クラスタの外に取り残されたde-atのページは選ばれにくくなります。クラスタを壊すアノテーションの誤りはhreflangガイドで扱っています。

自分自身を指すcanonicalは必要か

Googleは推奨しています。ベストプラクティスには、正規ページ自身にもrel=canonicalリンクを置くこと、いわゆる自己参照canonicalを入れることと書かれています。

本当に壊れるのは、リクエストされたURLからタグを組み立てるテンプレートです。トラッキングパラメータ付きで訪問されると、タグはそのパラメータ付きURLを指してしまい、広告クリックのたびに別々の正規URLを宣言することになります。Googleが「検索結果に出てほしくないURL」の例として挙げているのも、gclidパラメータの付いた商品ページです。同じページには制約があと2つあります。相対パスではなく絶対URLを使うこと、そしてURLフラグメントをcanonicalに指定しないこと。フラグメントはGoogleが基本的にサポートしていません。

canonicalはhead外やJavaScriptでも効くか

head外では効きません。Googleは、rel=canonicalのlink要素はHTMLの<head>セクションにある場合にのみ受け入れられると述べ、少なくともhead部分は妥当なHTMLである必要があると付け加えています。ここが落とし穴です。閉じ忘れたタグひとつでcanonicalがbodyに押し出され、そこではまったく数えられません。

JavaScriptはサポートされていますが、推奨はされていません。JavaScript SEOの基本のページには、挿入されたcanonicalをGoogle検索はレンダリング時に取得すると書かれています。一方で正規化のページは、URLはHTMLソースに書き、JavaScriptがそれを別の値に書き換えないようにすることを求めています。ソースに書けない場合は、ソースからは完全に省いてJavaScriptだけで設定します。いずれにせよ、出すのは必ず1つだけにしてください。矛盾する、あるいは複数のrel=canonicalタグは予期しない結果につながる可能性があるとGoogleは警告しています。

Googleが実際にどのURLを正規に選んだか確認するには

Search ConsoleのURL検査ツールが、Googleの選んだ正規URLを、あなたが宣言したものと並べて表示します。トラブルシューティングのページには、テンプレートを書き直す前に知っておきたい一文があります。コンテンツの問題を直したあとでも、ページは最大2週間ほど重複クラスタに留まることがあり、ページ間の違いが明確で大きいほど早く分離する、というものです。ただし、そもそもクローラーがページに到達できなければ以上のすべては無意味です。robots.txtを5分だけ確認しておきましょう。

canonicalテクニカルSEO

Frequently asked questions

Googleは必ずcanonicalタグに従いますか。
従いません。Googleのドキュメントは正規URLの指定をルールではなくヒントと呼んでいます。重複と読んだページをクラスタにまとめ、最も完全で有用なものを正規として選ぶ際、タグに加えてリダイレクト、サイトマップ、HTTPSの優先、hreflangクラスタも勘案します。
正規ページ自身にもcanonicalを置くべきですか。
置くべきです。Googleのベストプラクティスは正規ページ自身へのrel=canonicalリンクを求めています。リクエストURLではなく保存済みのパスから生成してください。そうすればトラッキングパラメータがタグをパラメータ付きの複製へ書き換えてしまうことがありません。
重複コンテンツをrobots.txtで処理できますか。
できません。Googleは正規化の目的でrobots.txtを使わないよう明言しています。ブロックしたURLも内容なしでインデックスされることがあるからです。ブロックされたURLではページ自体を取得しないため、canonicalタグもnoindexも読まれません。
canonicalタグはどこに書きますか。
headの中です。GoogleはHTMLのheadセクションに現れる場合にのみrel=canonicalのlink要素を受け入れ、少なくともその部分が妥当なHTMLであることを求めています。PDFなどHTML以外のファイルでは、代わりにLink HTTPレスポンスヘッダーで送ります。
canonicalの変更はどれくらいで反映されますか。
Googleのトラブルシューティングでは、コンテンツの問題を直したあとでも最大2週間は重複クラスタに留まる場合があるとされています。違いが明確なほど分離は早まります。結果は推測せず、URL検査ツールで確認してください。

チェックを実行

あわせて読みたい