概念

canonical正規URL

複数のURLで同じ、またはよく似た内容を公開するときに、検索エンジンへ代表として扱ってほしいURLを伝える仕組みです。重複URLの検索表示や評価を整理したいときに使います。

30秒で理解

canonical(正規URL)は、同じ、または非常によく似た内容に複数のURLがあるとき、代表として扱ってほしいURLを検索エンジンへ伝える仕組みです。

たとえば、商品ページが ?color=red や ?sort=popular のようなパラメータ付きURLでも開けるとします。内容がほぼ同じなら、検索で代表にしたいURLを1つ決めます。その希望を伝える手段が rel="canonical" です。

同じ書類を複数のフォルダーに置いたとき、「原本はこのフォルダー」と付箋を貼る作業に似ています。付箋を貼っても、書類の中身やフォルダーの運用が矛盾していれば、検索エンジンが別のフォルダーを代表に選ぶことがあります。

どういう仕組みか

Googleは、似たページを見つけるとページ群をまとめ、その中から検索ユーザーにとって代表的で有用だと判断したURLを正規URLとして選びます。サイト側が希望を示すことはできますが、指定したURLが必ず採用されるわけではありません。

役割何をするか強さの位置づけ
rel="canonical"重複ページのHTML <head>から代表URLを示す強いシグナル
リダイレクト旧URLへのアクセスを代表URLへ送る重複ページを廃止するときの強いシグナル
サイトマップ代表にしたいURLを掲載する補助的で弱いシグナル
Googleの選択ページ内容や技術的なシグナルを総合して代表URLを決める最終判断

canonicalは検索結果からページを隠す指示ではありません。検索結果への登録を止めたい場合は、ページを取得できる状態で noindex の使い方を切り分けます。クロールを制御する robots.txt とも役割が違います。

どこで見えるか

設定した希望と、Googleが実際に選んだ正規URLは分けて確認します。HTMLを見ただけでは、Google側の最終判断までは分かりません。

知りたいこと開く場所見る項目
自分が指定したURL対象ページのHTMLソース<head>内の rel="canonical"
Googleが選んだURLSearch Console → URL検査「Google が選択した正規 URL」
登録状態と取得状態Search Console → URL検査インデックス登録の結果、クロール、ライブテスト
複数URLの傾向Search Console → ページのインデックス登録重複や正規URLに関する理由

特定ページの調査では、まず Search Console の URL 検査 で完全なURLを入力します。指定したcanonicalとGoogleが選んだURLが違っていたら、canonicalタグだけを直すのではなく、リダイレクト、サイトマップ、内部リンク、ページ内容の差も並べて見ます。

実装するときの基本

HTMLページなら、重複ページの <head> に代表URLを指すリンク要素を置きます。代表ページ自身にも自己参照のcanonicalを置く構成にします。URLは相対パスではなく、https:// から始まる絶対URLにします。

状態設定例判定
色違いページを1つにまとめる<link rel="canonical" href="代表URL" />実際のHTMLでは、代表ページの絶対URLを指定する
代表ページ自身同じページのURLを href に指定ページの自己参照になっている
PDFなどHTML以外HTTPレスポンスの Link ヘッダーで指定本文ではなくレスポンスヘッダーを確認する
旧ページを廃止サーバー側の恒久的リダイレクト旧URLが代表URLへ移動する

同じページについて、サイトマップとcanonicalタグで別々のURLを代表にしないでください。CMSが自動出力するタグ、テンプレート、サイトマップのURLを同じ基準でそろえます。

よくある誤解

canonicalは「このURLを必ず採用せよ」という命令ではありません。Googleが別のURLを選んだ場合は、指定の存在だけでなく、ページの内容、リダイレクト、内部リンク、サイトマップが同じURLを指しているかを調べます。

誤解実際の扱い
canonicalを付ければ重複ページが検索から消える代表URLを伝える仕組みです。重複ページの登録を完全に止める指示ではありません
robots.txtにcanonicalを書けばよいrobots.txtは正規URLを指定する場所ではありません
noindexの代わりになるnoindexは検索結果への登録を抑える指示です。正規URLを選ぶ目的で使い分けます
どのページにも別ドメインを指定してよい内容や運用の根拠がないクロスドメイン指定は、意図しない正規化の原因になります
タグがHTMLにあればGoogleも同じURLを選ぶSearch ConsoleのURL検査で「Googleが選択した正規URL」を確認します

これを踏まえて何をするか

「重複ページがあるかもしれない」と感じたら、サイト全体を一度に直さず、まず代表URLにしたい1ページと、その重複候補を1組に絞ります。

順番開く場所操作次の判断
1Search Console → URL検査代表にしたい完全なURLを入力し、「Googleが選択した正規URL」を開く自分の希望と一致するか記録する
2対象ページのHTMLソース<head>の rel="canonical" を検索する無い、空、または別URLならテンプレートやCMS設定を開く
3サイトマップ代表URLと重複候補のどちらが掲載されているかを見る代表URLにそろえる
4サイト内リンクナビゲーションや本文がどのURLを指すか確認する重複URLではなく代表URLへ直す
5Search Console → URL検査「ライブテスト」で現在のHTMLを取得し、修正後のcanonicalを確認するGoogleの選択結果と差が残れば、内容やリダイレクトも調べる
6URL検査 → インデックス登録をリクエスト修正した重要URLだけリクエストする反映を待ち、後日「Googleが選択した正規URL」を再確認する

旧URLを今後使わないなら、canonicalタグを足すだけで終わらせず、サーバー側の301 Redirectを検討します。URLを残したまま内容を提供するならcanonical、URL自体を廃止するならリダイレクト、検索結果に出したくないなら noindex というように、目的で操作を選びます。

最初に押す場所は、Search Consoleの「URL検査」です。代表にしたいURLを入力し、「Googleが選択した正規URL」が自分の意図と一致しているかを確認してください。

失敗したときの切り分け

起きていることまず見る場所対応
Googleが別URLを選んだURL検査の「Googleが選択した正規URL」指定URL、内部リンク、サイトマップ、リダイレクトの不一致を探す
canonicalが意図せず全ページ同じHTMLソースとCMSテンプレートページごとのURLを出力する設定を確認する
HTTPとHTTPSが混在するリダイレクトとサイトマップHTTPS側へ統一し、canonicalとサイトマップのURLをそろえる
パラメータURLが大量に出る内部リンクとURL生成処理不要なURLを作らない設計にし、必要な重複ページだけ代表URLを指定する
修正直後も結果が変わらないURL検査の登録結果反映待ちとして記録し、同じURLを後日再検査する

判定がつかない場合は、Search ConsoleのURL検査で、代表URLと重複候補をそれぞれ調べた結果を保存します。2つの結果で「Googleが選択した正規URL」が同じか、クロール日時と登録状態が一致しているかを比べると、タグの問題なのか、ページ内容や配信設定の問題なのかを分けられます。

一次情報

普遍的な内容なので、定期の見直し対象にしていません。