canonicalタグの正しい使い方|URL正規化でSEO評価を集約する方法

この記事の目次
canonicalタグとは?基本的な役割を理解する
canonicalタグ(カノニカルタグ)とは、HTMLの <head> セクション内に記述する <link rel="canonical"> タグのことで、検索エンジンに対して「このページの正規URL(代表URL)はこれです」と宣言するためのHTML要素です。
Webサイトでは、同じコンテンツが複数のURLでアクセスできる状態が頻繁に発生します。たとえば、以下のURLはすべて同じページを表示する可能性があります。
https://example.com/page/https://www.example.com/page/http://example.com/page/https://example.com/page/index.htmlhttps://example.com/page/?utm_source=twitter
このように同一コンテンツに複数のURLが存在する状態を「URL正規化の問題」と呼びます。検索エンジンはこれらを別々のページとして認識し、SEO評価が分散してしまう可能性があります。canonicalタグを正しく設定することで、検索エンジンに正規URLを明示し、SEO評価を一つのURLに集約できます。
canonicalタグの記述は以下のとおりです。
<head>
<link rel="canonical" href="https://example.com/page/" />
</head>SEOの基本として、canonicalタグの理解は欠かせません。URL正規化を適切に行うことで、サイト全体のSEO評価を最大限に活かすことが可能になります。
なぜURL正規化が必要なのか
URL正規化が必要な理由は、検索エンジンの仕組みと密接に関係しています。URL正規化を怠ると、以下のような問題が発生する可能性があります。
SEO評価の分散(リンクジュースの希薄化)
外部サイトからの被リンクが、同一コンテンツの異なるURLに分散してリンクされるケースがあります。たとえば、あるサイトは https://example.com/page/ にリンクし、別のサイトは https://www.example.com/page/ にリンクしている場合、検索エンジンはこれらを別ページと判断し、被リンクの評価が2つに分散します。canonicalタグで正規URLを指定すれば、すべての評価が1つのURLに集約されます。
重複コンテンツの問題
検索エンジンは、同一または非常に類似したコンテンツが複数のURLに存在する状態を「重複コンテンツ」とみなします。重複コンテンツ自体がペナルティの直接的な原因になることは稀ですが、検索エンジンが正規URLを正しく判断できないと、意図しないURLがインデックスされたり、クロールバジェットが浪費されたりする問題が生じます。
キーワードカニバリゼーションのリスク
重複コンテンツが放置されると、同じキーワードで複数のURLが競合するキーワードカニバリゼーションが発生する可能性があります。これにより、本来上位表示されるべきページの順位が下がったり、検索結果に意図しないURLが表示されたりすることがあります。
クロールバジェットの浪費
同一コンテンツの複数URLをクローラーが巡回するのは、クロールバジェットの無駄遣いです。テクニカルSEOの観点から、クロールバジェットを重要なページに集中させるためにも、URL正規化は重要な施策です。
canonicalタグを設定すべきケース
具体的にどのような場合にcanonicalタグの設定が必要になるのか、代表的なケースを解説します。
ケース1:www有無の統一
https://example.com/ と https://www.example.com/ の両方でアクセスできる場合、どちらか一方を正規URLとして統一する必要があります。
<!-- www なしを正規URLとする場合 -->
<link rel="canonical" href="https://example.com/page/" />なお、www有無の統一は301リダイレクトでの対応が基本です。canonicalタグは補助的な位置づけで、両方の対策を併用することが望ましいです。
ケース2:http/httpsの統一
SSL化(HTTPS化)を行った場合、httpとhttpsの両方でアクセスできる状態が発生します。301リダイレクトでhttpsに統一するのが基本ですが、canonicalタグでもhttpsを正規URLとして明示しましょう。
<link rel="canonical" href="https://example.com/page/" />ケース3:パラメータ付きURL
UTMパラメータ(トラッキング用)、ソートパラメータ、フィルターパラメータなどがURLに付与される場合、パラメータなしのURLを正規URLとして設定します。
<!-- 以下のURLはすべて同じページ -->
<!-- https://example.com/page/?utm_source=twitter -->
<!-- https://example.com/page/?utm_source=facebook -->
<!-- https://example.com/page/?ref=newsletter -->
<!-- 正規URL -->
<link rel="canonical" href="https://example.com/page/" />特にECサイトでは、商品の色・サイズ・ソート順などのパラメータによって大量の重複URLが生成されるため、canonicalタグの設定は必須です。
ケース4:ページネーション(ページ送り)
記事一覧ページの2ページ目以降については、canonicalタグの設定に注意が必要です。Googleは2019年に rel="prev" / rel="next" のサポートを終了しており、現在はページネーションの各ページに自己参照canonical(そのページ自身のURL)を設定するのが推奨されています。
<!-- 2ページ目の場合 -->
<link rel="canonical" href="https://example.com/blog/page/2/" />すべてのページネーションを1ページ目にcanonicalするのは誤りです。各ページには固有のコンテンツがあるため、自己参照canonicalが正しい設定です。
ケース5:末尾スラッシュの有無
https://example.com/page と https://example.com/page/ は技術的に異なるURLです。サイト全体でどちらかに統一し、canonicalタグでも一貫した形式を使用しましょう。
ケース6:モバイル版とPC版のURL
レスポンシブデザインではない、別URLのモバイルサイト(m.example.com など)がある場合は、モバイル版ページからPC版ページへcanonicalタグを設定します。ただし、現在はレスポンシブデザインが主流であり、この対応が必要なケースは減少しています。
canonicalタグの実装方法
canonicalタグの具体的な実装方法を、HTML直接記述とWordPressの2パターンで解説します。
HTMLでの直接記述
HTMLの <head> セクション内に以下のように記述します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ページタイトル</title>
<link rel="canonical" href="https://example.com/page/" />
</head>記述時の注意点は以下のとおりです。
- 絶対URLで記述する:相対パスではなく、プロトコル(https://)からの完全なURLを記述します。
- <head>内に記述する:<body>内に記述しても検索エンジンは認識しません。
- 1ページにつき1つ:複数のcanonicalタグを記述すると、すべて無視される可能性があります。
- 自己参照canonicalを設定する:正規ページ自身にもcanonicalタグを設定します。これにより、パラメータ付きでアクセスされた場合でも正規URLが明示されます。
HTTPヘッダーでの指定
PDFや画像ファイルなど、HTMLの <head> を持たないコンテンツに対しては、HTTPレスポンスヘッダーでcanonicalを指定できます。
Link: <https://example.com/document.pdf>; rel="canonical"Apacheの場合は .htaccess で、Nginxの場合はサーバー設定ファイルで指定できます。
WordPressでの設定方法
WordPressでは、SEOプラグインを利用してcanonicalタグを管理するのが一般的です。
Yoast SEOの場合:
- 各投稿・固定ページの編集画面を開く
- Yoast SEOメタボックスの「詳細」タブを開く
- 「正規URL」フィールドにcanonical URLを入力
デフォルトでは、Yoast SEOが各ページに自己参照canonicalを自動出力します。特別な事情がない限り、この自動設定で問題ありません。正規URLを変更したい場合のみ、手動でURLを指定します。
All in One SEOの場合:
- 各投稿・固定ページの編集画面を開く
- AIOSEO設定の「詳細」タブを開く
- 「Canonical URL」フィールドにURLを入力
プラグインを使用しない場合は、テーマの header.php でcanonicalタグを動的に出力するコードを記述する方法もあります。
301リダイレクトとcanonicalタグの使い分け
URL正規化の手段として、canonicalタグの他に301リダイレクトがあります。両者は似た目的で使われますが、適切に使い分けることが重要です。
301リダイレクトが適切なケース
- 旧URLから新URLへの恒久的な移行:サイトリニューアルやURL構造変更で旧URLを廃止する場合
- wwwの統一:www有無の一方に完全に統一する場合
- http→httpsへの移行:SSL化に伴うプロトコル統一
- 重複ページの統合:明確に不要なURLを正規URLに統合する場合
301リダイレクトは、ユーザーもクローラーも自動的に正規URLに転送されるため、最も確実なURL正規化の手段です。
canonicalタグが適切なケース
- パラメータ付きURLの正規化:トラッキングパラメータ等でURLが変わるが、両方のURLにアクセスできる必要がある場合
- サーバー設定を変更できない場合:レンタルサーバーの制約などで.htaccessの編集ができない場合
- クロスドメインの重複コンテンツ:異なるドメインに同一コンテンツが存在する場合(シンジケーション等)
- ページネーションの自己参照:各ページが有効なURLとして機能し続ける必要がある場合
両者の違いまとめ
| 項目 | 301リダイレクト | canonicalタグ |
|---|---|---|
| ユーザーへの影響 | 自動的に転送される | 転送されない(元URLもアクセス可能) |
| 検索エンジンへの強制力 | 強い(命令) | 弱い(ヒント・推奨) |
| 実装場所 | サーバー設定(.htaccess等) | HTML <head>内 |
| SEO評価の受け渡し | 高い確度で受け渡し | 受け渡しされるが保証はない |
基本方針として、不要なURLを完全に廃止できる場合は301リダイレクト、両方のURLを維持する必要がある場合はcanonicalタグを使用します。可能であれば、両方を併用するのが最も確実です。
よくあるcanonicalタグの設定ミス
canonicalタグは「ヒント」として検索エンジンに伝える仕組みであるため、設定ミスがあっても即座にエラーとして表示されず、気づきにくいのが厄介です。よくあるミスを把握し、自サイトで同じ問題が起きていないか確認しましょう。
ミス1:すべてのページをトップページにcanonicalする
最も多いミスの一つです。サイト内のすべてのページのcanonicalをトップページに向けてしまうと、検索エンジンは各ページをトップページの複製とみなし、個別ページがインデックスされなくなります。
<!-- これは間違い(個別記事ページで)-->
<link rel="canonical" href="https://example.com/" />正しくは、各ページに自己参照canonicalを設定するか、本当に正規URLとすべきページのURLを指定します。
ミス2:相対URLで記述する
<!-- 間違い -->
<link rel="canonical" href="/page/" />
<!-- 正しい -->
<link rel="canonical" href="https://example.com/page/" />canonicalタグには必ず絶対URLを使用してください。相対URLでは正しく解釈されない可能性があります。
ミス3:canonicalとnoindexの併用
あるページにnoindexを設定しつつ、そのページを別ページのcanonical先に指定するのは矛盾した信号です。canonicalの参照先は必ずインデックス可能なページにしましょう。
ミス4:複数のcanonicalタグを記述
1つのページに複数のcanonicalタグが存在すると、検索エンジンはどちらも無視する可能性があります。テーマやプラグインが自動出力するcanonicalと、手動で追加したcanonicalが重複していないか確認しましょう。
ミス5:canonicalのチェーン(連鎖)
ページAがページBをcanonicalとして指定し、ページBがページCをcanonicalとして指定する「canonical chain(チェーン)」は、検索エンジンが正しく処理できない場合があります。canonicalは必ず最終的な正規URLを直接指定してください。
ミス6:内容が大幅に異なるページへのcanonical
canonicalタグは、同一または非常に類似したコンテンツのURL正規化に使用します。内容がまったく異なるページをcanonicalの参照先に指定しても、検索エンジンはそのcanonicalを無視します。
canonicalタグの確認方法
設定したcanonicalタグが正しく機能しているか、定期的に確認することが重要です。以下の方法で確認できます。
ブラウザのソースコードで確認
最も基本的な方法は、ブラウザでページのソースコードを表示し、<head> セクション内のcanonicalタグを確認することです。
- 対象ページを開く
- 右クリック →「ページのソースを表示」を選択
Ctrl+F(Mac:Cmd+F)で「canonical」を検索- 表示された
<link rel="canonical">のhref属性が正しいURLになっているか確認
Google Search Consoleで確認
Search ConsoleのURL検査ツールを使えば、Googleが認識しているcanonical URLを確認できます。
- Search Consoleにログイン
- 上部の検索バーに確認したいURLを入力
- 「カバレッジ」セクションで「ユーザーが指定した正規URL」と「Googleが選択した正規URL」を比較
ユーザーが指定したcanonicalとGoogleが選択したcanonicalが異なる場合、Googleが設定を無視している可能性があります。その場合は、canonicalの設定内容を見直す必要があります。
SEOツールでの一括チェック
サイト規模が大きい場合は、以下のツールで一括チェックが効率的です。
- Screaming Frog SEO Spider:サイト全体をクロールし、各ページのcanonicalタグを一覧表示。canonical先が404のページや、canonical先と内容が異なるページなどを検出できます。
- Ahrefs Site Audit:canonicalタグに関する問題を自動検出し、優先度付きで報告してくれます。
- SEMrush Site Audit:canonical関連の問題(複数canonical、canonicalチェーンなど)を検出します。
定期的なチェックリスト
月に1回程度、以下の項目を確認することをおすすめします。
- 主要ページに自己参照canonicalが正しく設定されているか
- canonical先のURLが200ステータスを返しているか(404やリダイレクトになっていないか)
- Search ConsoleでGoogleが選択したcanonicalが意図したURLか
- 複数のcanonicalタグが出力されていないか
- 新しく追加したページにcanonicalタグが適切に設定されているか
関連記事
- SEOとは?基礎知識と対策方法を解説
- テクニカルSEOとは?内部対策の重要ポイント
- キーワードカニバリゼーションとは?原因と対策
- noindexタグの正しい使い方と設定方法
- Googleサーチコンソールの使い方と活用法
まとめ
canonicalタグは、URL正規化を通じてSEO評価を正規URLに集約するための重要なHTML要素です。重複コンテンツの問題を防ぎ、検索エンジンに正しいURLを伝えることで、サイト全体のSEOパフォーマンスを最大化できます。
本記事のポイントをまとめます。
- canonicalタグは検索エンジンへの「ヒント」であり、正規URLを明示するために使用する
- www有無、http/https、パラメータ付きURL、ページネーションなど、URL正規化が必要なケースは多岐にわたる
- 不要なURLを廃止できる場合は301リダイレクト、両方のURLを維持する場合はcanonicalタグを使い分ける
- すべてのページをトップページにcanonicalする、相対URLで記述するなどの設定ミスに注意する
- Search ConsoleでGoogleが選択したcanonicalを定期的に確認し、意図した正規化が行われているかチェックする
canonicalタグの設定は、テクニカルSEOの中でも見落とされがちな施策ですが、正しく設定することでSEO評価の分散を防ぎ、サイトの検索パフォーマンスを着実に向上させることができます。キーワードカニバリゼーションや重複コンテンツの問題に心当たりがある場合は、まずcanonicalタグの設定状況を確認してみてください。













