canonicalタグ(カノニカルタグ)は、HTMLのhead内に記述して「このURLを正規ページとして評価してください」と検索エンジンに伝えるタグです。重複・類似ページの評価が分散するのを防ぎ、狙ったページに評価を集約できます。
「Google Search Consoleで”Googleにより、ユーザーがマークしたページとは異なるページが正規ページとして選択されました”と表示されたが、どうすればいいのかわからない」。canonicalタグに関する悩みでは、このケースが最も多いでしょう。
筆者も数万ページ規模のサイトで、パラメータ付きURLが大量に生成されてcanonicalの設定が追いつかず、意図しないページが検索結果に表示されてしまった経験があります。正しいcanonicalを設定し直してからは、狙った正規ページがインデックスされるようになりました。
この記事では、canonicalタグの仕組みから書き方、設定が必要なケース・不要なケース、効かない原因と確認方法まで実務者向けに解説します。
\ canonicalの設定状況を無料でチェック /
canonicalタグとは
まずはcanonicalタグの基本的な仕組みと、なぜ必要なのかを整理しましょう。
canonicalタグの役割と仕組み
canonicalタグ(読み方は「カノニカルタグ」)は、HTMLのhead内に記述するタグです。同じ内容や類似した内容のページが複数のURLに存在する場合に、「このURLが正規(canonical)です」と検索エンジンに伝えます。
<link rel="canonical" href="https://example.com/page/" />
canonicalはGoogleへの「ヒント」であり「命令」ではありません。Googleは最終的に自らの判断で正規URLを決定するため、canonicalを設定しても100%従うとは限らない点を理解しておく必要があります。
canonicalタグが必要な理由
canonicalタグを設定しないと、同じ内容のページがURLごとに別ページとして評価されてしまいます。
被リンクの評価が複数URLに分散し、どのページも十分な評価を得られません。さらにクロールバジェットが無駄に消費され、新しいページの発見が遅れる原因にもなります。
重複コンテンツの詳しい影響は「重複コンテンツとは?SEOへの影響と対策方法をわかりやすく解説」で解説しています。
canonicalタグの書き方
canonicalタグの具体的な記述方法を、環境別に解説します。
HTMLに直接記述する
HTMLのhead内に以下のタグを1つだけ記述します。
<head>
<link rel="canonical" href="https://example.com/page/" />
</head>
- 絶対URLを使う
相対URL(/page/)ではなく絶対URL(https://example.com/page/)で記述する - head内に1つだけ
複数のcanonicalタグがあるとGoogleがどちらを採用するか予測できなくなる - body内やJSでの追加はNG
サーバーサイドでhead内に出力する
WordPressで設定する
WordPressの場合は、SEOプラグインで自動設定するのが一般的です。
Yoast SEOやRank Mathを使えば、各ページの編集画面からcanonical URLを個別に指定できます。プラグインのデフォルト設定で自己参照canonicalが自動的に出力されるため、特別な設定をしなくても基本的なcanonicalは機能します。
プラグインが正しいcanonicalを出力しているか、ページのソースコードで確認する習慣をつけておきましょう。
self-referencing canonical(自己参照)を全ページに入れる
2026年のベストプラクティスは、全てのindexableページに自分自身を指すcanonicalを設定することです。
<!-- https://example.com/blog/page-a/ に設定 -->
<link rel="canonical" href="https://example.com/blog/page-a/" />
「重複していないページにもcanonicalは必要?」と思うかもしれません。しかし、第三者がパラメータ付きでリンクした場合(例: ?ref=twitter)、意図しない別URLが生成され評価が分散するリスクがあります。
self-referencing canonicalを入れておけば、このリスクを未然に防げます。
canonicalタグを設定すべきケース
具体的にどのような場面でcanonicalの設定が必要になるのか、代表的なケースを紹介します。
パラメータ付きURL
?sort=price、?color=red、?utm_source=twitter のようなパラメータが付くと、内容は同じでもURLが異なるページとして扱われます。
パラメータなしのURLを正規URLとしてcanonicalを設定しましょう。
カテゴリページ・タグページの重複
WordPressなどのCMSでは、同じ記事がカテゴリページやタグページにも表示されます。記事本文のURLを正規URLに指定し、アーカイブページからcanonicalを向けることで評価の分散を防ぎます。
ページネーション
記事一覧が複数ページに分割される場合(?page=2等)、1ページ目を正規URLに設定するのが一般的です。
同じ商品の色違い・サイズ違いページ(EC)
ECサイトで色やサイズが違うだけで商品説明がほぼ同じ場合、代表となるページを正規URLに指定します。
index.htmlの有無による重複
https://example.com/ と https://example.com/index.html が両方アクセスできる場合、どちらか一方を正規URLに設定して統一しましょう。
canonicalタグが不要なケース
canonicalの設定が不要な場面も明確にしておきましょう。
- 完全にユニークなコンテンツのページ
他のURLと重複していないページは、self-referencingを入れるだけでOK - 301リダイレクトで統合済みのページ
リダイレクト元はそもそもアクセスされないため、canonical設定は不要 - noindexを設定したページ
インデックスさせたくないページにcanonicalを設定すると矛盾する。noindexとcanonicalの併用は避ける
AMPページについては、2026年現在Google検索でのAMP優遇が終了しているため、AMP向けの特別なcanonical設定は基本的に不要です。
canonical・301リダイレクト・noindexの使い分け
重複対策には canonical・301リダイレクト・noindexの3つの手法があります。目的に応じて使い分けましょう。
| 手法 | 目的 | ページの状態 | SEO評価 |
|---|---|---|---|
| canonical | 正規URLに評価を集約 | ページは残る。ユーザーはアクセス可能 | 正規URLに集約される |
| 301リダイレクト | 旧URLから新URLに恒久転送 | 旧ページにはアクセスできなくなる | 新URLに引き継がれる |
| noindex | 検索結果から除外 | ページは残るが検索結果に出ない | そのページの評価はなくなる |
判断基準はシンプルです。ページを残して評価だけ集約したいならcanonical。ページ自体を統合するなら301リダイレクト。検索結果に出したくないだけならnoindex。
301リダイレクトの詳細は「301リダイレクトとは?SEOへの影響と正しい設定方法をわかりやすく解説」、noindexについては「「noindexタグによって除外されました」とは?対処が必要なケースと解除方法」を参照してください。
canonicalタグが効かない原因と対処法
canonicalを正しく設定したはずなのに、Googleが別のURLを正規ページとして選んでしまうケースがあります。
Googleが別のcanonicalを選んでしまう
Google Search Consoleで「重複しています。Googleにより、ユーザーがマークしたページとは異なるページが正規ページとして選択されました」と表示される場合、Googleがcanonicalの指定を無視して独自の判断をしたことを意味します。
主な原因は以下の通りです。
- canonical先のページとコンテンツが大きく異なる
類似性が低いと、Googleは指定を信頼しない - canonical先がnoindexやrobots.txtでブロックされている
アクセスできないページを正規URLに指定しても無効 - 内部リンクが正規URLではなく別のURLに集中している
Googleは内部リンクの傾向も判断材料にする
このステータスの詳しい対処法は「「重複しています。Googleにより、ユーザーがマークしたページとは異なるページが正規ページとして選択されました」の原因と対処法」で解説しています。
なお、GSCで「代替ページ(適切なcanonicalタグあり)」と表示される場合は、canonicalが正しく機能している状態なので基本的に対処は不要です。詳しくは「「代替ページ(適切なcanonicalタグあり)」とは?基本的に対処不要な理由を解説」をご覧ください。
よくある設定ミス
- 相対URLで記述している
`/page/` ではなく `https://example.com/page/` と絶対URLで書く - head外に記述している
body内やJSで動的に追加しても認識されないことがある - 1ページに複数のcanonicalタグがある
プラグインとテーマの両方がcanonicalを出力しているケースがよくある - noindexページにcanonicalを設定している
「インデックスしないで」と「このURLを正規にして」は矛盾する - canonicalチェーン
A→B→Cのようにcanonicalが連鎖していると、Googleが正規URLを正しく認識できない
canonicalタグの確認方法
canonicalを設定したら、正しく動作しているか必ず確認しましょう。
ページのソースコードで確認する
最もシンプルな方法です。ブラウザで対象ページを開き、右クリック→「ページのソースを表示」でHTMLを確認します。
Ctrl + F(MacはCmd + F)で「canonical」と検索し、head内にcanonicalタグが1つだけ存在し、正しいURLが指定されているかチェックしましょう。
inSiteの無料canonicalチェッカーで確認する
inSiteの無料canonicalチェッカーを使えば、URLを入力するだけでそのページに設定されたcanonicalタグの内容を確認できます。
複数ページを一括でチェックしたい場合や、設定ミスをすばやく発見したい場面で役立ちます。
Google Search Consoleで確認する
GSCのURL検査ツールで対象URLを入力すると、「ユーザーが指定した正規URL」と「Googleが選択した正規URL」の両方を確認できます。
この2つが一致していれば、canonicalが正しく機能しています。一致していない場合は、前述の「効かない原因」を確認してください。
inSiteでインデックス状況を監視する
canonical設定後、正規URLが正しくインデックスされているかを継続的に確認することも重要です。
inSiteはインデックス状況を毎日自動で取得するため、canonical設定の変更がインデックスに反映されているかを日次で追えます。
\ canonicalの反映状況を毎日自動チェック /
inSite(インサイト)
インデックス状況を毎日自動取得。canonical設定後の正規URLが正しくインデックスされているか、重複ステータスが解消されたかを一画面で確認できます。
無料で試してみる ↗
よくある質問
まとめ
canonicalタグは、重複コンテンツ対策や301リダイレクトと合わせて理解しておくと実践的です。以下の記事も参考にしてください。
関連記事 重複コンテンツとは?SEOへの影響と対策方法をわかりやすく解説 → 関連記事 301リダイレクトとは?SEOへの影響と正しい設定方法をわかりやすく解説 →- canonicalタグは正規URLを検索エンジンに伝え、評価の分散を防ぐHTMLタグ
- パラメータ付きURL・カテゴリページ・ページネーションなどで設定が必要
- 全ページにself-referencing canonical(自己参照)を入れるのがベストプラクティス
- canonical・301リダイレクト・noindexは目的に応じて使い分ける
- 設定後はソースコード・canonicalチェッカー・GSCで正しく動作しているか確認する


