01canonicalタグとは何か——誕生した背景
canonicalタグ(rel="canonical")とは、HTMLの<head>内に記述するリンク要素で、同一または類似したコンテンツが複数のURLに存在するとき、どのURLを「正規版(canonical URL)」として扱うべきかをGoogleに伝えるための指示です。
このタグはGoogleが2009年にMicrosoft(Bing)・Yahoo!と共同で制定した仕様で、当初から検索エンジンが抱えていた「同じコンテンツが複数のURLで存在する」という問題への対処策として生まれました。
最も基本的な記述は次の通りです。
<!-- その他のメタタグ -->
<link rel="canonical" href="https://example.com/article/seo-guide">
</head>
「canonical(カノニカル)」という言葉は「正規の」「基準となる」を意味する形容詞です。複数存在するURLのうち、「このURLが本物・正式版です」とGoogleに申告する行為がcanonicalタグの役割です。
02重複コンテンツ問題とその影響
重複URLが生まれる主な原因
「自分のサイトに重複コンテンツはない」と思っている方も多いですが、実際には意図せず重複URLが発生しているケースが大半です。代表的な原因を見ていきましょう。
SEOへの具体的な影響
重複コンテンツが放置されると、Googleはどのページを評価すべきか判断できなくなります。その結果、次の3つの問題が生じます。
「同じコンテンツを別のURLで見せる」ことは、Googleに対して「どちらを評価すればいいか」という曖昧なシグナルを送り続けることになる。canonicalはその曖昧さを解消する宣言である。
03canonicalタグの書き方と設置場所
canonicalタグは必ずHTMLの<head>内に記述します。<body>に書いても無視されます。記述場所はhead内のどこでも構いませんが、他のメタタグと並べて記述するのが一般的です。
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ページタイトル</title>
<meta name="description" content="...">
<!-- ↓ ここに記述する ↓ -->
<link rel="canonical" href="https://example.com/article/seo-guide/">
</head>
<body>
<!-- ここに書いても無効 -->
</body>
記述時の重要なルール
- 絶対URLで記述する:
hrefにはhttps://example.com/page/のようにスキームを含む完全なURLを使う。相対URL(/page/)も技術的には機能するが、絶対URLの方がGoogleが確実に解釈できる。 - 1ページに1つだけ:同じページに複数のcanonicalタグがあると、Googleはすべてを無視する場合がある。必ず1つに絞る。
- 自分自身のURLを指定することも有効:「自己参照canonical」と呼ばれる手法で、そのページが正規であることを明示的に宣言できる(詳しくは次のセクションで)。
- HTTPSサイトはhttpsで記述する:canonicalのURLにhttpを指定すると混乱の原因になる。常にhttpsのURLを使用する。
WordPressでは、Yoast SEOやRank Mathなどの主要SEOプラグインが自動的に自己参照canonicalを出力します。多くの場合、手動で設定する必要はありません。ただし、プラグインが正しいURLを出力しているかどうかは定期的に確認することをおすすめします。開発者ツール(F12)でhead内のlink[rel=canonical]を確認するか、GSCの「URL検査」ツールで確認できます。
04自己参照canonicalとは何か
自己参照canonical(Self-referencing Canonical)とは、そのページ自身のURLをcanonicalとして指定することです。たとえばhttps://example.com/blog/seo/というページに、自分自身のURLを指すcanonicalを記述します。
<link rel="canonical" href="https://example.com/blog/seo/">
<!-- 自分自身のURLを指定している(これが「自己参照」) -->
「自分自身を指定しても意味がないのでは?」と思うかもしれませんが、これには重要な意味があります。第三者があなたのページをコピー・引用したり、URLパラメータを付けてリンクしたりすることで生まれる意図しない重複に対して、「このURLが元の正規版です」という強固なシグナルを送ることができます。
Googleはすべてのページに自己参照canonicalを設定することを推奨しており、WordPressのSEOプラグインが自動出力するのもこのためです。重複が発生しやすいECサイトや大規模なコンテンツサイトでは特に効果的で、クロールバジェットの効率化にも貢献します。
05使いどころ別の設定パターン
クエリパラメータによる重複
ECサイトの商品一覧でソート・フィルター・トラッキングパラメータがURLに付与された場合、すべての重複URLのcanonicalをパラメータなしの元URLに向けます。
<link rel="canonical"
href="https://example.com/products/shoes/">
<!-- パラメータなしの正規URLを指定 -->
ただし、パラメータによってコンテンツが大きく変わるページ(例:商品の異なる色・サイズがそれぞれ独立したページになっている場合)は、重複ではなく別個のページとして扱い、それぞれに自己参照canonicalを設定するべきです。
HTTP / HTTPSの混在
HTTPからHTTPSに移行した際や、内部リンクにHTTPのURLが残っている場合に発生します。HTTPSのURLをcanonicalとして全ページに設定すると同時に、HTTPからHTTPSへの301リダイレクトを設定することが推奨されます。canonicalタグとリダイレクトを両方使うことで、より強固なシグナルになります。
<link rel="canonical"
href="https://example.com/page/">
<!-- httpsスキームで絶対URLを記述 -->
末尾スラッシュあり・なしの重複
https://example.com/pageとhttps://example.com/page/はGoogleから別のURLとして認識されます。サイト全体で「スラッシュあり」か「スラッシュなし」のどちらかに統一し、そのURLをcanonicalに指定します。サーバーサイドで301リダイレクトを合わせて設定することで確実に統一できます。
ページネーション
ブログ一覧の2ページ目以降(/blog/page/2/など)のcanonical設定については、Googleが複数の方針を示しており、状況によって異なります。
- 1ページ目へのcanonicalを設定する方法:ページネーションのすべてのページから
/blog/(1ページ目)へcanonicalを向ける。コンテンツは2ページ目以降もクロール・インデックスされるが、評価は1ページ目に集約されやすい。 - 各ページが自己参照canonicalを持つ方法:各ページが独自のコンテンツを持つ(新しい記事群がある)場合は、自己参照canonicalが適切。2ページ目のcanonicalを1ページ目に向けると、2ページ目のコンテンツがインデックスされなくなる場合がある。
以前はページネーション向けにrel="prev"・rel="next"タグが使われていましたが、Googleは2019年にこれらのサポートを終了しました。現在は各ページに自己参照canonicalを設定するか、「すべて表示」ページへのcanonicalを使うアプローチが推奨されています。
クロスドメインcanonical
canonicalタグは同一サイト内だけでなく、異なるドメイン間でも使用できます。これをクロスドメインcanonicalと呼びます。たとえば、メディアサイトに寄稿した記事が自社サイトにも掲載されている場合、メディアサイトの記事から自社サイトの元記事へcanonicalを向けることで、自社サイトのURLを正規版として示せます。
<link rel="canonical"
href="https://your-site.com/original-article/">
<!-- 元記事(自社サイト)のURLを正規版として指定 -->
クロスドメインcanonicalはGoogleに受け入れられることもありますが、あくまで「ヒント」であり、必ずしも従ってもらえるとは限りません。特に転載元サイトが転載先より権威性が高い場合、Googleが転載先URLを正規版として選択することもあります。
06canonicalとrobots.txt・noindexの使い分け
重複コンテンツ対策には複数の手段があり、それぞれ役割が異なります。canonicalタグ・robots.txt・noindexメタタグを正しく使い分けることが重要です。
| 手段 | クロール | インデックス | 適切な用途 |
|---|---|---|---|
| canonicalタグ ヒント |
許可される | 正規URLに評価が集約される(重複URLはインデックスされることがある) | コンテンツを評価に含めつつ、正規URLを指定したい場合。クエリパラメータ・スラッシュ重複など。 |
| robots.txt(Disallow) 命令 |
禁止できる | 防げない(被リンクがあればインデックスされる可能性) | クローラーにそもそもアクセスさせたくないページ(管理画面・ステージングなど)。 |
| noindexメタタグ 命令 |
許可される | 確実に禁止できる | クロールは許可しつつ検索結果に表示させたくないページ(会員専用ページ・古い重複ページなど)。 |
| 301リダイレクト 恒久的 |
リダイレクト先に移動 | リダイレクト先URLがインデックスされる | 古いURLを完全に廃止・移転したい場合。canonicalと組み合わせることで評価の集約がより確実になる。 |
最も重要な使い分けの原則は、「ページを検索結果から完全に除外したい」ならnoindex、「正規URLを示したいが重複ページも存在させたい」ならcanonicalという判断です。canonicalはあくまでも「どのURLを代表として評価してほしいか」のシグナルであり、重複URLが検索結果に表示されなくなることを保証するものではありません。
rel="canonical" →/products/shoes/
rel="canonical" →/products/shoes/
rel="canonical" →/products/shoes/
すべての重複URLの評価がこのURLに集約される。被リンク・順位・コンテンツ評価が一本化される。
07canonicalはヒントであって命令ではない
robots.txtのDisallowやnoindexメタタグがGooglebotへの「命令」に近い性質を持つのに対し、canonicalタグは「ヒント(hint)」です。Googleは公式ドキュメントでもこの点を明記しており、canonicalタグが指定されていても、Googleが独自の判断で別のURLを正規版として選択することがあります。
Googleがcanonicalを無視して別のURLを選ぶ典型的なケースは次の通りです。
- canonicalに指定したURLが存在しない・404を返す
- canonicalに指定したURLがサーバーエラーを返す
- canonicalのURLをrobots.txtでDisallowしている(Googlebotがアクセスできない)
- 指定したURLがリダイレクトしている
- canonicalを指定したページの方がリンクを多く受けているなど、Googleが別のURLを「実質的な正規版」と判断した場合
そのため、canonicalタグの設定だけに頼るのではなく、内部リンクを正規URLに統一する・HTMLサイトマップに正規URLのみを記載する・301リダイレクトと組み合わせるといった複数のシグナルを一致させることが、Googleに意図を正確に伝える確実な方法です。
08どのURLをcanonicalに指定すべきか——判断フロー
「複数のURLのうちどれをcanonicalに指定すればいいか」という問いは、状況によって異なります。以下のインタラクティブな判断フローで適切な対応を確認してください。
09よくある誤用と設定ミス
| 誤用パターン | 何が起きるか | 正しい対処 |
|---|---|---|
| canonicalをbodyに記述する | Googlebotに無視される。head内でないと機能しない | 必ず<head>内に記述する |
| 1ページに複数のcanonicalを記述する | Googleがすべてのcanonicalを無視し、Googleが独自に正規URLを判断する | canonicalは1ページに1つだけ。CMSのテーマとプラグインが両方出力していないか確認する |
| canonicalのURLをrobots.txtでDisallowしている | GooglebotがcanonicalのURLを確認できず、canonicalが機能しない | canonicalに指定するURLはクロールを許可する |
| canonicalのURLが404 / 301を返す | Googleがcanonicalを無視し、独自に正規URLを選択する | canonicalには必ず200 OKを返す有効なURLを指定する |
| noindexと組み合わせる | 「インデックスしないが正規URLとして評価せよ」という矛盾した指示になる | noindexとcanonicalは原則として併用しない。canonicalに指定したページはインデックスさせる |
| チェーン状のcanonical(AがBを指し、BがCを指す) | Googleがチェーンをたどらない場合があり、評価が中間のURLに残る | すべての重複URLから最終的な正規URLへ直接canonicalを向ける |
| 内部リンクと矛盾している | canonicalでAが正規と言いながら、内部リンクはBに向けている状態。Googleに混乱したシグナルを送る | 内部リンク・サイトマップ・canonicalはすべて同じ正規URLを一貫して指すよう統一する |
| 相対URLで記述する | 技術的には機能するが、スキームの解釈が曖昧になる場合がある | https://で始まる絶対URLで記述することを推奨 |
10GSCでの確認方法
canonicalの設定が正しく機能しているかどうかを確認するには、Google Search Consoleの「URL検査」ツールが最も確実です。
「URL検査」ツールで対象URLを入力する
GSCの上部検索バーにcanonicalを設定したページのURLを入力して検索。または左メニューの「URL検査」から入力する。
「Googleが選択した正規URL」を確認する
結果ページの「正規URL」欄に「Googleが選択した正規URL」が表示される。自分がcanonicalで指定したURLと一致しているか確認する。一致していない場合はGoogleが別のURLを正規版と判断している。
「ページで宣言されたcanonical」も確認する
同じ結果ページに「ページで宣言されたcanonical」(HTMLに記述したcanonical)も表示される。自分の意図通りのURLが記述されているかを確認する。
「インデックス作成」→「ページ」でカバレッジを確認する
左メニュー「インデックス作成」→「ページ」の「インデックス未登録の理由」で「重複しています。ユーザーによって、正規ページが選択されました」という状態のページ数を確認できる。これが多い場合はcanonical設定が機能している証拠。
この状態は「Googleが自分の指定を無視した」ことを意味します。原因の多くは(1)canonicalに指定したURLがエラーを返している、(2)robots.txtでブロックしている、(3)内部リンクが矛盾している、(4)被リンクが重複URLに集中していてGoogleが別URLを重視している、のいずれかです。原因を特定して修正すれば、数日〜数週間でGoogleの判断が切り替わることが多いです。
11設定チェックリスト
設定前の確認
- どのURLが正規版かを明確に決定している
- 正規URLに指定するページが200 OKを返すことを確認した
- 正規URLがrobots.txtでブロックされていないことを確認した
- 正規URLにnoindexが設定されていないことを確認した
記述内容の確認
- canonicalタグを<head>内に記述している(<body>ではない)
- href属性にhttps://で始まる絶対URLを使用している
- 1ページに1つのcanonicalタグしか存在しない
- チェーン状になっていない(AがB、BがCを指すような連鎖がない)
全体整合性の確認
- 内部リンクがすべて正規URLを指している(重複URLへのリンクがない)
- XMLサイトマップに正規URLのみが含まれている
- GSCの「URL検査」で「Googleが選択した正規URL」が意図通りになっている
- 301リダイレクトが必要なURLに設定されている(canonicalと併用)
12まとめ
canonicalタグは、複数のURLに存在する同一・類似コンテンツの評価を一本化するための重要なテクニカルSEO手段です。特に大規模サイト・ECサイト・URLパラメータが多く発生するサービスでは、意図せず重複が蓄積されやすく、canonicalの適切な管理がSEO評価の最大化に直結します。
ただし、canonicalはGoogleへの「ヒント」であり「命令」ではありません。最も重要なのは、canonicalタグ・内部リンク・XMLサイトマップ・301リダイレクトのすべてが一致した一貫したシグナルを発信することです。矛盾したシグナルがあると、Googleはcanonicalを無視し独自に正規URLを選択します。
まずは自分のサイトにどのような重複URLが存在するかをGSCで確認し、必要なページから順に対応を進めていきましょう。
この記事のポイント
- canonicalタグはGoogleに「このURLが正規版」と伝えるHTML要素。<head>に記述する
- 重複コンテンツは意図せず発生する。クエリパラメータ・HTTP/HTTPS・スラッシュが主な原因
- canonicalはヒントであり命令ではない。Googleが無視して別のURLを選ぶことがある
- 自己参照canonicalはすべてのページに設定することをGoogleが推奨している
- 「削除したい」ならnoindex、「正規版を示したい」ならcanonical——明確に使い分ける
- 内部リンク・サイトマップ・301リダイレクトをcanonicalと一致させることが重要
- 1ページに複数のcanonicalを記述すると、すべて無視される場合がある
- GSCの「URL検査」で「Googleが選択した正規URL」を定期的に確認する