- canonicalタグの意味と役割
- URLパラメーターが付く場合の正規化方法
- トレイリングスラッシュのあり・なしを統一する方法
- canonicalと301リダイレクトの使い分け
- CMSや動的サイトでcanonicalを生成する際の注意点
- canonicalが正しく認識されているか確認する方法
Webサイトでは、同じ内容のページに複数のURLからアクセスできることがあります。
たとえば、次のようなケースです。
https://example.com/article/
https://example.com/article/?utm_source=chatgpt.com
https://example.com/article
表示される内容が同じでも、検索エンジンはそれぞれを異なるURLとして認識する可能性があります。
このようなURLの違いを整理し、どのURLを代表として扱ってほしいかを検索エンジンに示す方法が、canonicalタグです。
ホームページ制作や公開後の運用について詳しく知りたい方は、GMOらくらくホームページ制作をご覧ください。
\ サイト改善を検討中の方へ /
canonicalタグとは
canonical(カノニカル)タグとは、重複または非常によく似た内容を持つ複数のURLについて、どのURLを代表となる正規URLとして扱ってほしいかを検索エンジンに示すためのHTML要素です。
一般に「canonicalタグ」と呼ばれますが、HTML上では次のようなlink要素を使用します。
<link rel="canonical" href="https://example.com/article/" />
この記述によって、検索エンジンに対し、https://example.com/article/を正規URLとして扱ってほしいと示せます。
正規URLとは
正規URLとは、同じ内容を表示する複数のURLのなかから、検索エンジンが代表として扱うURLです。
たとえば、次のURLがすべて同じ記事を表示しているとします。
https://example.com/article/
https://example.com/article/?utm_source=google
https://example.com/article/?utm_source=chatgpt.com
https://example.com/article/
canonicalタグが必要な理由
canonicalタグを設定する主な理由は、次の4つです。
① 検索結果に表示してほしいURLを示す
同じページに複数のURLからアクセスできる場合、検索結果にはパラメーターや不要な文字列を含まないURLを表示したいことがあります。
canonicalを設定することで、どのURLを検索結果に表示してほしいかをGoogleに示せます。
② URLごとの評価シグナルを集約しやすくする
被リンクなどの評価シグナルが複数のURLに分かれている場合、canonicalを設定することで、正規URLへ集約されやすくなります。
たとえば、外部サイトからパラメーター付きURLにリンクされていても、そのURLと正規URLが重複ページとして認識されれば、シグナルが正規URLにまとめられる可能性があります。
③ アクセス解析やURL管理を整理しやすくする
同じコンテンツに複数のURLがあると、URL単位のレポートや検索パフォーマンスを確認しにくくなることがあります。
正規URLを明確にすると、コンテンツ単位で情報を管理しやすくなります。
ただし、canonicalを設定しても、Google Analyticsなどのアクセス解析ツールで表示されるURLが自動的に統合されるとは限りません。アクセス解析側でも、パラメーターの除外やチャネル分類などを適切に設定する必要があります。
④ 重複URLへのクロールを抑えやすくする
同じ内容を持つURLが大量に生成されると、検索エンジンが重複ページのクロールに時間を使う可能性があります。
canonicalを含むURL正規化の設定によって、重複URLを整理し、新しいページや更新されたページをクロールしてもらいやすい状態をつくれます。
canonicalは「重複コンテンツを防ぐタグ」ではない
canonicalを「重複コンテンツを防ぐタグ」と説明することがありますが、厳密には正確ではありません。
canonicalを設定しても、重複するURL自体が削除されたり、アクセスできなくなったりするわけではないためです。
canonicalの役割は、すでに存在する重複・類似URLについて、検索エンジンに代表URLの希望を示すことです。
また、サイト内に同じ内容のURLが複数存在するだけで、直ちにペナルティーを受けるわけではありません。Googleは重複URLをまとめ、そのなかから代表となるURLを選びます。
canonicalタグの基本的な設定方法
canonicalは、HTMLのhead内に記述します。
<head>
<link rel="canonical" href="https://example.com/article/" />
</head>
<!-- 推奨 -->
<link rel="canonical" href="https://example.com/article/" />
<!-- 非推奨 -->
<link rel="canonical" href="/article/" />
相対URLもGoogleに処理される場合がありますが、テスト環境のドメインが誤って参照されるなどの問題を防ぐため、プロトコルとドメインを含む絶対URLを使用するほうが安全です。
また、canonicalは有効なhead内に記述する必要があります。body内に記述されたcanonicalは、Googleの正規化には使用されません。
正規ページにも自己参照canonicalを設定する
これを「自己参照canonical」と呼びます。
https://example.com/article/が正規URLの場合は、そのページにも次のように設定します。
<link rel="canonical" href="https://example.com/article/" />
URLパラメーターが付く場合のcanonical設定
URLパラメーターとは、URLの末尾に?から始まる形式で付加される情報です。
https://example.com/article/?utm_source=chatgpt.com
URLパラメーターは、流入元の計測、並び替え、絞り込み、ページネーションなど、さまざまな目的で使われます。
canonicalを設定する際は、パラメーターの有無だけで判断するのではなく、パラメーターによってページの主要な内容が変わるかを確認することが重要です。
計測用パラメーターはcanonicalから除外する
次のようなパラメーターは、主に流入元や広告施策を計測するために使われます。
utm_sourceutm_mediumutm_campaigngclid
たとえば、ChatGPTの検索結果から訪問した場合は、次のようなURLになる可能性があります。
https://example.com/article/?utm_source=chatgpt.com
このパラメーターによってページ内容が変わらない場合、canonicalにはパラメーターなしのURLを設定します。
<link rel="canonical" href="https://example.com/article/" />
考え方は次のとおりです。
アクセスしたURL
https://example.com/article/?utm_source=chatgpt.com
canonicalに指定するURL
https://example.com/article/
UTMパラメーターは流入計測に利用しながら、検索エンジンにはパラメーターなしのURLを正規URLとして示します。
Googleの公式ドキュメントでも、gclidなどのパラメーター付きURLではなく、検索結果に表示したいURLを正規URLとして示す例が紹介されています。
UTM付きURLをすぐにリダイレクトすべきか
計測用パラメーターが付いたURLを、無条件でパラメーターなしのURLへリダイレクトする必要はありません。
サーバー側でページ表示前にリダイレクトすると、解析ツールがUTMパラメーターを取得できない構成もあります。
そのため、一般的には次のような設計が考えられます。
UTM付きURLにアクセス
↓
ページを200ステータスで表示
↓
アクセス解析でUTMを取得
↓
canonicalにはUTMなしのURLを出力
パラメーターを一律に削除してはいけない
URLパラメーターには、ページ内容を変えるものもあります。
| 種類 | 例 | canonicalの基本的な考え方 |
|---|---|---|
| 流入計測 | utm_source=chatgpt.com | 原則として除外 |
| 広告計測 | gclid=xxx | 原則として除外 |
| セッション管理 | sessionid=xxx | 原則として除外 |
| 並び替え | sort=price | 内容の差を確認して判断 |
| 絞り込み | color=red | 検索意図とページの独自性で判断 |
| ページネーション | page=2 | 原則として各ページを個別に判断 |
| 言語・地域 | lang=ja | 内容が異なる場合は残す |
| 商品バリエーション | size=m | 商品情報や検索需要に応じて判断 |
パラメーターが付いているという理由だけで、すべてをパラメーターなしのURLへcanonical指定すると、内容の異なるページまで同じページとして扱うことになります。
並び替えパラメーター
次のURLは、掲載商品が同じで、表示順だけが異なる例です。
https://example.com/products/
https://example.com/products/?sort=price
https://example.com/products/?sort=new
表示順以外の主要な内容が同じで、並び替えURLを検索結果に表示する必要がない場合は、パラメーターなしのURLを正規URLにする方法があります。
<link rel="canonical" href="https://example.com/products/" />
絞り込みパラメーター
次のように、絞り込みによって掲載商品が変わるケースがあります。
https://example.com/products/
https://example.com/products/?color=red
絞り込み結果を独立した検索ページとして扱わない場合は、基本となるカテゴリーページへcanonicalを設定する選択肢があります。
重要なのは、パラメーターの形式ではなく、ページの内容と検索意図です。
ページネーション
次のような一覧ページを想定します。
https://example.com/articles/
https://example.com/articles/?page=2
https://example.com/articles/?page=3
2ページ目以降の掲載内容が1ページ目と異なる場合、すべてを1ページ目へcanonical指定するのは適切とは限りません。
それぞれのページが固有のコンテンツを持つ場合は、各ページに自己参照canonicalを設定します。
<!-- 2ページ目 -->
<link rel="canonical" href="https://example.com/articles/?page=2" />
複数ページに分割されたコンテンツについても、Googleは各ページまたは適切な全件表示ページをcanonicalにし、単純にすべてを1ページ目へ向けないよう案内しています。
トレイリングスラッシュとは
トレイリングスラッシュとは、URLの末尾に付く/を指します。
https://example.com/article
https://example.com/article/
ルートURLを除き、この2つは異なるURLです。Googleも、末尾スラッシュのあるURLとないURLを別々のURLとして扱うと説明しています。
https://example.com
https://example.com/
末尾スラッシュはあり・なしのどちらが正しいのか
末尾スラッシュは、あり・なしのどちらか一方がSEO上必ず正しいわけではありません。
重要なのは、サイト内で使用する形式を決め、次の設定を統一することです。
- リダイレクト
- canonical
- 内部リンク
- XMLサイトマップ
- hreflang
- 構造化データ内のURL
- OGPなどのURL
たとえば、末尾スラッシュありを正規URLにする場合は、サイト内のURLを次の形式に統一します。
https://example.com/article/
両方のURLが200を返していないか確認する
まずは、次の2つのURLへアクセスします。
https://example.com/article
https://example.com/article/
確認結果によって対応が異なります。
一方から他方へリダイレクトされる場合
https://example.com/article
↓ 301リダイレクト
https://example.com/article/
<link rel="canonical" href="https://example.com/article/" />
両方が200を返す場合
https://example.com/article → 200
https://example.com/article/ → 200
両方で同じ内容が表示される場合は、どちらか一方を正規URLとして決めます。
末尾スラッシュありを正規URLにする場合は、次のように対応します。
https://example.com/article
↓ 恒久的なリダイレクト
https://example.com/article/
正規ページには自己参照canonicalを設定します。
<link rel="canonical" href="https://example.com/article/" />
URLの違いに応じてcanonicalとリダイレクトを使い分ける
URLの違いは、すべてcanonicalだけで解決するものではありません。
| URLの違い | 基本的な対応 |
|---|---|
| UTMなどの計測用パラメーター | URLを受け入れ、canonicalから除外 |
| 表示順だけを変えるパラメーター | 内容を確認し、canonicalで整理 |
| 絞り込みパラメーター | 検索意図と独自性で個別判断 |
| トレイリングスラッシュ | 一方へ恒久的にリダイレクト |
httpとhttps | HTTPSへ恒久的にリダイレクト |
wwwあり・なし | 一方へ恒久的にリダイレクト |
index.htmlあり・なし | 一方へ恒久的にリダイレクト |
| 古いURLと新しいURL | 新しいURLへ恒久的にリダイレクト |
| 同じ内容を残す必要がある複数URL | canonicalを使用 |
canonicalと301リダイレクトの違い
canonicalと301リダイレクトは、どちらもURL正規化に使用されますが、役割が異なります。
| 項目 | canonical | 301リダイレクト |
|---|---|---|
| 主な役割 | 代表URLの希望を検索エンジンに示す | URLが恒久的に移動したことを示す |
| ユーザーの移動 | 移動しない | 転送先へ移動する |
| 元のURL | 引き続き閲覧できる | 原則として転送先が表示される |
| 主な用途 | 重複URLを残す必要がある場合 | 不要なURLを廃止・統合する場合 |
| Googleへのシグナル | 強い | 強い |
canonicalが適しているケース
- 計測用パラメーター付きURLを受け入れたい
- 並び替えURLをユーザー向けに残したい
- 同じコンテンツを複数のURLで提供する必要がある
- 重複URLを削除・転送できない
301リダイレクトが適しているケース
- トレイリングスラッシュを統一する
- HTTPからHTTPSへ移行する
wwwあり・なしを統一する- 古いURLを新しいURLへ移行する
index.htmlあり・なしを統一する- 重複URLを今後使用しない
Googleは、不要になった重複URLを廃止する場合、恒久的なリダイレクトを使用するよう案内しています。
URL設計やサイト更新を含め、ホームページ運用を見直したい方はGMOらくらくホームページ制作のサービス内容をご確認ください。
\ 制作から運用までまとめて確認 /
動的サイトではcanonicalの生成ルールが重要
静的HTMLでは、ページごとに正しいcanonicalを直接記述できます。
たとえば、現在のURLをそのままcanonicalに出力する処理では、次のURLがそれぞれ自己参照canonicalになることがあります。
https://example.com/article/
https://example.com/article/?utm_source=chatgpt.com
https://example.com/article/?utm_source=newsletter
これでは、同じ内容のページについて異なるcanonicalが生成されます。Googleも、CMSやプラグインの設定によって、意図しないURLがcanonicalに指定される場合があると注意を促しています。
canonicalを動的に生成する基本ルール
canonicalのURLは、ブラウザーに表示されている現在のURLをそのまま使用するのではなく、あらかじめ決めた正規化ルールに沿って生成します。
基本的な処理は次のとおりです。
現在のURLを取得
↓
本番環境のプロトコルとドメインに統一
↓
トレイリングスラッシュを統一
↓
計測用パラメーターを除外
↓
ページ内容に必要なパラメーターだけを残す
↓
フラグメントを除外
↓
絶対URLとしてcanonicalを出力
実装時は、少なくとも次の項目を確認します。
本番ドメインを固定する
リクエストされたホスト名をそのまま使用すると、開発環境やステージング環境のURLがcanonicalに出力される可能性があります。
canonicalのドメインは、環境変数やサイト設定などで定義した本番ドメインを使用します。
https://staging.example.com/article/
ではなく、次のURLを出力します。
https://example.com/article/
トレイリングスラッシュの形式を統一する
サイトで末尾スラッシュありを採用する場合は、canonicalにも必ず末尾スラッシュを付けます。内部リンクやXMLサイトマップも同じ形式に統一します。
https://example.com/article/
パラメーターは許可・除外ルールを決める
すべてのパラメーターを残す方法も、すべて削除する方法も適切とは限りません。たとえば、次のように分類します。
除外する
utm_source / utm_medium / utm_campaign / gclid / sessionid
個別に判断する
sort / filter / page / lang / variant
サイト固有のURL設計に合わせて、パラメーターごとの処理を定義します。
フラグメントを含めない
次の#sectionはフラグメント識別子です。
https://example.com/article/#section
JavaScriptだけでcanonicalを変更しない
元のHTMLとJavaScript実行後で異なるcanonicalが出力されると、検索エンジンに矛盾した情報を送ることになります。
HTMLでcanonicalを設定できない場合は、元のHTMLにはcanonicalを入れず、JavaScriptで1つだけ追加します。複数のcanonicalを生成しないことも重要です。
canonical設定時の注意点
内容が異なるページを同じURLへ指定しない
canonicalは、同一または非常によく似た内容を持つページに使用します。内容の異なるページをトップページやカテゴリーページへまとめて指定すると、Googleに無視されたり、意図しないURLが正規URLとして選ばれたりする可能性があります。
存在する正常なURLを指定する
canonicalの指定先には、正常にアクセスできるURLを使用します。次のようなURLは避けます。
- 404エラーを返すURL
- アクセスできないURL
- 誤ったドメインのURL
- 意図しないリダイレクト先
- ステージング環境のURL
canonicalを複数出力しない
テーマ、CMS、SEOプラグイン、JavaScriptなどがそれぞれcanonicalを生成すると、1ページに複数のcanonicalが出力される場合があります。異なるURLを指定するcanonicalが複数存在すると、Googleが設定を適切に解釈できない可能性があります。
内部リンクも正規URLに統一する
XMLサイトマップも正規URLに統一する
XMLサイトマップには、原則として正規URLだけを掲載します。次のようなURLを混在させないようにします。
- UTM付きURL
- リダイレクト元URL
- HTTPのURL
- 末尾スラッシュの形式が異なるURL
- canonicalで別URLを指定しているURL
canonical、内部リンク、XMLサイトマップで異なるURLを指定すると、Googleへ矛盾したシグナルを送ることになります。
robots.txtを正規化に使用しない
robots.txtは、検索エンジンのクロールを制御するためのファイルであり、正規URLを指定する仕組みではありません。Googleは、robots.txtをURL正規化の目的で使用しないよう案内しています。
noindexをcanonicalの代わりに使用しない
noindexは、ページを検索結果へ表示しないよう求める設定です。canonicalは、重複ページのなかから代表URLを示す設定です。目的が異なるため、URLの正規化だけを目的としてnoindexを使用することは推奨されていません。
canonicalが正しく設定されているか確認する方法
① HTTPステータスコードとリダイレクトを確認する
最初に、重複する可能性があるURLへそれぞれアクセスし、次を確認します。
- HTTPステータスコード
- リダイレクトの有無
- 最終的に表示されるURL
- リダイレクト回数
特に、次のURLを組み合わせて確認します。
http / https
wwwあり / なし
末尾スラッシュあり / なし
パラメーターあり / なし
index.htmlあり / なし
② ページのソースコードを確認する
ブラウザーの「ページのソースを表示」機能で、HTMLのhead内にcanonicalがあるか確認します。
<link rel="canonical" href="https://example.com/article/" />
あわせて、次を確認します。
- canonicalが1つだけか
- 絶対URLになっているか
- 本番ドメインになっているか
- URLのスペルが正しいか
- パラメーターが適切に除外されているか
- トレイリングスラッシュが統一されているか
③ JavaScript実行後のDOMを確認する
JavaScriptでcanonicalを生成または変更するサイトでは、開発者ツールの「Elements」などから、実行後のDOMも確認します。ページのソースコードと実行後のDOMで異なるcanonicalが指定されていないかを確認してください。
④ Google Search Consoleで確認する
Google Search ConsoleのURL検査ツールでは、主に次の項目を確認します。
- ユーザーが指定した正規URL
- Googleが選択した正規URL
両者が異なる場合は、canonical・リダイレクト・内部リンク・XMLサイトマップ・HTTPS・ページ内容の設定に矛盾がないか確認します。Googleは、URL検査ツールでGoogleが選択した正規URLを確認できると案内しています。
⑤ クローラー型SEOツールで一括確認する
ページ数の多いサイトでは、クローラー型のSEOツールを使うと、次のような問題をまとめて確認できます。
- canonicalがないページ/複数あるページ
- 404やリダイレクトURLへのcanonical
- 非正規URLがXMLサイトマップに含まれている
- 内部リンクが非正規URLを参照している
- パラメーター付きURLが自己参照canonicalになっている
- ステージング環境をcanonicalに指定している
canonicalタグに関するよくある質問
canonicalはすべてのページに必要ですか?
Googleは、canonicalを必須とはしていません。指定がない場合は、Googleが代表となるURLを選びます。
ただし、URLの表記ゆれやパラメーター付きURLが発生する可能性を考えると、正規ページ自身に自己参照canonicalを設定しておく方法が推奨されます。
canonicalを設定すると検索順位は上がりますか?
canonicalを設定しただけで、検索順位が上がるとは限りません。
canonicalは、検索結果に表示してほしいURLを示し、重複URLの評価シグナルを集約しやすくするための設定です。正しく設定することでURL管理の問題を改善できる可能性はありますが、順位上昇を直接保証するものではありません。
パラメーター付きURLはすべてcanonicalで統一すべきですか?
すべてを統一すべきではありません。
UTMなど、ページ内容を変えない計測用パラメーターは原則として除外します。一方、言語、ページネーション、商品バリエーション、絞り込みなど、ページ内容を変えるパラメーターは個別に判断する必要があります。
末尾スラッシュは付けたほうがよいですか?
あり・なしのどちらでも構いません。
重要なのは、一方に統一し、リダイレクト、canonical、内部リンク、XMLサイトマップで同じ形式を使用することです。
canonicalと301リダイレクトは併用できますか?
併用できます。
たとえば、末尾スラッシュなしのURLを末尾スラッシュありへリダイレクトし、転送先のページに自己参照canonicalを設定できます。
/article
↓ 301
/article/
<link rel="canonical" href="https://example.com/article/" />
まとめ
canonicalタグは、重複または非常によく似た内容を持つ複数のURLについて、どのURLを正規URLとして扱ってほしいかを検索エンジンに示すための設定です。
特に、次のようなURLが発生するサイトでは、canonicalを含むURL正規化の設計が重要です。
- ChatGPTや広告などからUTM付きURLへの流入がある
- トレイリングスラッシュのあり・なしが混在している
- 並び替えや絞り込みパラメーターがある
- CMSやWebフレームワークでURLを動的に生成している
- HTTP・HTTPSやwwwの形式が統一されていない
計測用パラメーターはアクセス解析に利用しながら、canonicalではパラメーターなしのURLを指定します。
トレイリングスラッシュ、HTTP・HTTPS、wwwのあり・なしなど、今後使用しないURLの違いは、原則として恒久的なリダイレクトで一方に統一します。
また、canonicalだけでなく、内部リンク、XMLサイトマップ、リダイレクトの設定も同じ正規URLに統一することが重要です。
設定後は、HTMLのソースコード、HTTPステータスコード、Google Search Consoleを確認し、Googleが意図したURLを正規URLとして選択しているかを確認しましょう。
SEOやユーザー体験を意識したサイト運用を検討している方は、GMOらくらくホームページ制作をご覧ください。
\ まずはサービス内容をチェック /


