canonical(カノニカル)とは、同じ中身、またはよく似た中身のページが複数の URL で見られるときに、「代表はこの URL です」と Google などの検索エンジンに伝える指定です。書き方は、ページの head(ページの頭の、画面には出ない部分)に <link rel="canonical" href="https://…"> を一行置くだけです。代表の URL を一つにそろえることを、URL 正規化といいます。
WordPress は、公開中の投稿と固定ページに、そのページ自身の URL を指す canonical を標準で出します。自分で書き足す場面は多くありません。やることは、ページのソースで canonical が一つだけあり、そのページ自身の正しい URL を指しているかを確かめることです。あわせて、www の有無・http と https・末尾のスラッシュのような URL の形の揺れは転送(リダイレクト)でそろえ、計測用の「?utm_source=」のように残しておきたい URL は canonical に任せる、と使い分けます。
ただし canonical は命令ではなく合図で、最終的に代表を選ぶのは Google です。以下は、2026年10月時点で Google 検索セントラル、Search Console ヘルプ、WordPress の開発者向けリファレンスで確かめた内容と、それにもとづく当社の見立てです。Search Console に出る「代替ページ」「重複しています」などの表示の意味と放っておいてよいかの判断は、別の記事に分けて書いています(この記事の後半で案内します)。
canonical とは:代表の URL を伝える合図
一つのページが、いくつもの URL で開けることは珍しくありません。Google 検索セントラルは、重複が生まれる例として、地域ごとの版、スマートフォン用とパソコン用の版、http と https の両方で開ける状態、並べ替えや絞り込みで生まれる一覧、うっかり残ったデモ版を挙げています。Google はこうした似たページをまとめ、その中から代表の URL を一つ選んで検索結果に出します。これが正規化で、選ばれた URL を正規 URL(正規ページ)と呼びます。
重複があること自体は、スパムに関するポリシーの違反ではありません。canonical の指定がなくても、Google は自分で代表を選びます。それでも指定しておく理由として、Google は次の四つを挙げています。
- 検索結果に出す URL を選べる(広告や計測の印が付いた長い URL ではなく、整った URL を出す)
- 似たページや重複ページへのリンクなどの手がかりを、一つの URL にまとめられる
- 一つのページの数字(アクセス数など)を追いやすくなる
- 重複ページを読みに来る手間が減り、新しいページや更新したページに回してもらえる
指定は希望を伝える手段で、Google が別のページを代表に選ぶこともあります。指定と、サイトの中のリンクやサイトマップ、転送がそろって同じ URL を指しているほど、指定どおりになりやすくなります。
canonical の書き方と、守る決まり
Google 検索セントラルの例をもとにすると、重複している側のページの head に、代表のページを指す一行を入れます。
<head>
<title>ページの題</title>
<link rel="canonical" href="https://example.com/service/" />
</head>
Google は、代表のページ自身にも、自分を指す同じ一行を入れることを勧めています(自己参照の canonical)。つまり、重複している側も代表の側も、同じ代表の URL を指している状態が基本の形です。書くときの決まりは次のとおりです。
| 決まり | Google の説明 | 守らないと起きやすいこと |
|---|---|---|
| head の中に置く | head にあるときだけ受け付ける。head が正しい HTML になっていること | 本文の中に書いた指定は使われない |
| https:// から書く完全な URL にする | 「/service/」のような省略した書き方(相対 URL)も扱えるが、勧めない | テスト用のサイトが読まれたときなどに、意図しない URL を指すおそれ |
| 「#」以降を付けない | Google は通常「#」以降を扱わない | 代表の指定として扱われない |
| 方法ごとに別の URL を指さない | サイトマップと canonical で違う URL を代表にしない | 合図が食い違う |
| JavaScript で書き換えない | HTML のソースに書くのが最善。書けない場合だけ JavaScript で入れる | 読むたびに指定が違って見える |
| 言語ごとの版は hreflang と組み合わせる | 同じ言語の代表を指す。言語違いの版を示すのは rel=”alternate” | 英語版が日本語版を代表に指す、などの食い違い |
一つのページに canonical が二つ以上あって、それぞれ違う URL を指している場合について、Google のこのページには直接の記述がありません。当社は、指定が食い違えば合図として役に立たなくなると考え、一ページに一つ、と決めて確かめています。
PDF など、HTML でないファイルの場合
PDF や Word のファイルには head がないので、サーバーがファイルと一緒に返す情報(HTTP ヘッダー)で指定します。Google の例では、Link: <https://www.example.com/downloads/white-paper.pdf>; rel="canonical" のように書きます。サーバーの設定を変える必要があるので、自社で触れない場合は、サーバーを管理している人に頼む作業です。同じページに HTML の一行と HTTP ヘッダーの両方を使うこともできますが、Google は間違いが起きやすいので、どちらか一つにするよう勧めています。
代表を伝える方法は三つあり、強さが違う
canonical の一行のほかにも、代表の URL を伝える方法があります。Google 検索セントラルは、強さを次のように分けています。
| 方法 | 強さ | 向いている場面 | 注意 |
|---|---|---|---|
| 転送(リダイレクト) | 強い | 重複している URL そのものをなくしたいとき | 転送元のページは見られなくなる。サーバー側の転送がいちばん早く伝わる |
| rel=”canonical”(HTML の一行、または HTTP ヘッダー) | 強い | 重複している URL も開ける状態のまま残したいとき | ページごとの管理になる。HTML の一行は HTML のページにしか使えない |
| サイトマップに載せる | 弱い | 多くのページの代表をまとめて示したいとき | どれが重複かは Google が中身から判断する |
どれも必須ではなく、組み合わせると望む URL が選ばれやすくなる、とされています。小さな会社のサイトで当社が考える使い分けは単純です。開けなくなってもかまわない URL は転送で一本にまとめる。開けるまま残しておく必要がある URL には canonical で代表を伝える。サイトマップには代表の URL だけを載せる。この三つの向きがそろっていれば十分です。
代表を決める目的では使わない方法も、Google ははっきり書いています。robots.txt で読ませないようにする、URL の削除ツールを使う、noindex(検索に出さない指定)を付ける、の三つです。理由と、代替ページの表示との関係は「代替ページ(適切な canonical タグあり)」とはで書きました。
www・https・末尾のスラッシュ・パラメータ付き URL の扱い
URL の揺れには、転送でそろえるものと、canonical に任せるものがあります。WordPress の標準の動きとあわせて整理すると、次のようになります。
| 揺れ | そろえ方 | WordPress の標準では | 確かめ方 |
|---|---|---|---|
| http と https | http から https への恒久的な転送(301) | WordPress の外、サーバーの設定で入れる | http:// で開いて、https:// に変わるか |
| www の有無 | どちらかに決めて転送 | 「設定」→「一般」のサイトアドレスの形へ 301 で転送する | 逆の形で開いて、決めた形に変わるか |
| 末尾の「/」の有無 | パーマリンクの形に転送 | パーマリンクの形へ 301 で転送する | 「/」を消して開いて、付いた形に変わるか |
| 「?p=123」の形 | 記事の URL に転送 | パーマリンクを設定していれば、記事の URL へ 301 で転送する | 開いて、記事の URL に変わるか |
| 「?utm_source=」など計測の印 | 転送せず、canonical に任せる | 投稿・固定ページの canonical は印の付かない URL を指す | 印を付けて開き、ソースの canonical が印なしの URL か |
| 記事一覧の 2 ページ目以降 | ページごとに自分自身を代表にする | 一覧のページには canonical を出さない | テーマや SEO 用のプラグインが 1 ページ目を指していないか |
WordPress には、届いた URL をサイトの決まった形へ転送する仕組み(redirect_canonical)が標準で入っています。開発者向けのリファレンスによると、www の有無の揺れなどを一つの形にそろえ、転送は 301 で行います。ただし、プレビューや検索結果のページなどでは動きません。http から https への転送は、この仕組みには含まれていないので、サーバー側の設定です。
Google は、http と https で同じページが開けるとき、通常は https を代表に選びます。例外として、SSL 証明書が無効な場合、https のページが http へ転送している場合、https のページが http を canonical で指している場合などを挙げています。https に切り替えたあとで canonical の中だけ http のまま、という形はこの例外に当たるので、切り替えのときは canonical とサイトマップも https になっているかを見ます。
計測の印は、転送してしまうと印そのものが消えて、どこから来たかが数えられなくなります。だから canonical に任せます。あわせて、サイトの中のリンクには印を付けないようにします。Google も、サイト内では代表の URL にリンクするよう勧めています。印の付け方はUTM パラメータの作り方と GA4 での付け方にまとめています。転送の入れ方そのもの(固定ページの URL を変えたときなど)はWordPress でリダイレクトを設定する方法にあります。
WordPress で canonical を確かめる方法
WordPress の本体は、バージョン 2.9 から rel_canonical という仕組みで canonical を出しています。開発者向けのリファレンスで確かめた動きは次のとおりです。
- 出すのは、投稿・固定ページ・添付ファイル・独自の投稿の種類など、1 件ずつのページだけです。カテゴリーやタグなどの一覧のページには出しません。
- 指す先は、そのページのパーマリンク(決まった形の URL)です。届いた URL に「?」以降が付いていても、canonical には付きません。
- 公開中のページだけが対象です。下書きや非公開のページは対象外なので、プレビューのソースに canonical がなくても異常ではありません。
- 本文を複数ページに分けた記事の 2 ページ目以降、コメントのページ送りでは、そのページの URL を指します。
SEO 用のプラグインやテーマには、canonical を自前で出したり、指す先を変えたりする設定を持つものがあります。項目の名前は製品ごとに違うので、設定画面を探すより、出来上がったページのソースを見るほうが早く確実です。
ページのソースで確かめる手順
- パソコンのブラウザで、公開中のページを開きます(管理画面にログインしたままでもかまいません)。
- ページの上で右クリックし、「ページのソースを表示」を選びます。
- 開いた画面でページ内検索をして、「canonical」を探します。
- 見つかった数を数えます。一つなら次へ進みます。二つ以上あって指す先が違う場合や、一つもない場合は、テーマや SEO 用のプラグインの設定を見直します。
- href の後ろの URL が、いまアドレス欄に出ている URL と同じかを見ます。https で始まっているか、www の有無、ドメイン、スラッグ(URL の末尾の文字列)、末尾の「/」まで見比べます。
- アドレス欄の URL の末尾に「?utm_source=test」を付けて開き直し、もう一度ソースを見ます。canonical が印の付かない URL のままなら正常です。
ソースを見るのは、開発者ツールの「要素」の画面ではなく「ページのソースを表示」です。開発者ツールには JavaScript で書き換えたあとの姿が出るので、サーバーが返した元の HTML と違うことがあります。Google が HTML のソースに書くよう勧めているのは、この元の HTML です。
Search Console の URL 検査で確かめる
Google がどう受け取ったかは、Search Console の URL 検査(画面の上の検査欄に URL を入れて、Google での状態を 1 ページずつ調べる機能)で見ます。「ページのインデックス登録」の欄に、「ユーザーが指定した正規 URL」と「Google が選択した正規 URL」が並びます。前者がソースに書いた canonical、後者が Google の選んだ代表です。二つが同じなら、指定は受け入れられています。
注意が一つあります。ヘルプによると、「公開 URL をテスト」で今のページを調べた結果に出るのは、ユーザーが指定した正規 URL だけです。Google が選択した正規 URL は、登録済みのデータからしか分かりません。canonical を直した直後にテストしても、Google の選ぶ代表が変わったかどうかはまだ分からない、ということです。
よくある間違いと、起きること
Google 検索セントラルの「正規化に関する問題の修正」は、CMS やプラグインが不適切な canonical を出すことがあるとし、ブラウザで HTML を確かめるよう書いています。小さな会社の WordPress のサイトで当社が見かけやすい形を、起きることと直し方の組で挙げます。
| 間違い | 起きること | 直し方 |
|---|---|---|
| すべてのページの canonical がトップページを指している | 下層のページが代表として扱われず、検索に出にくくなる | テーマや SEO 用のプラグインの設定を外し、各ページが自分自身を指すようにする |
| ページを複製したとき、元のページを指す canonical の欄まで写った | 新しいページが元のページの代替として扱われる | 複製したページの canonical の欄を空にするか、自分の URL にする |
| 制作用のサイトのドメインや、http のままの URL を指している | 公開中のサイトとは別の URL を代表として伝えてしまう | https:// から書く公開中のサイトの URL に直す |
| 記事一覧の 2 ページ目以降が 1 ページ目を指している | 並んでいる記事が違うページを重複として伝えてしまう。Google は 1 ページ目を代表にしないよう書いている | 各ページが自分自身を指すようにする |
| canonical と noindex を同じページに付けている | 「代表はあちら」と「このページは検索に出さない」が食い違う | 代表を決めたいだけなら canonical か転送だけにする |
| サイトマップに、canonical と違う URL が載っている | 方法ごとに違う代表を伝えてしまう | サイトマップを代表の URL だけにする |
| 見覚えのない別のドメインを指している | Google は、不正アクセスで別ドメインを指す canonical や転送を入れられる例を挙げている | サイトの改ざんを疑い、管理している人にすぐ確かめる |
もう一つ、他のサイトに記事を転載してもらうときの扱いも、間違えやすいところです。Google は、提携先への転載(シンジケーション)による重複には canonical を勧めず、転載先の側で検索への登録を止めてもらうほうが効果的だとしています。転載を頼むときは、転載先のページを検索に出さない設定にしてもらえるかを先に相談します。
Search Console の「重複しています。Google により…」との関係
Search Console の「ページ」の画面には、canonical にかかわる理由として、「代替ページ(適切な canonical タグあり)」「重複していますが、ユーザーが正規ページとして選択していません」「重複しています。Google により、ユーザーがマークしたページとは異なるページが正規ページとして選択されました」が出ます。最初の二つは、多くは対処の要らない表示です。それぞれの意味と仕分け方は「代替ページ」の記事とサーチコンソールの noindex・404・重複に書きました。
この記事の内容とつながるのは三つ目です。これは、ページに canonical が書いてあるのに、Google が指定とは別の URL を代表に選んだ、という表示です。ヘルプは、URL 検査で二つの正規 URL を見比べ、必要なら中身の似かたを確かめるよう案内しています。当社は、次の順に見ています。
- Google の選んだ URL のほうが、検索する人にとって妥当ではないか。妥当なら、自社の指定のほうを見直します。
- canonical そのものに、前の章のような間違いがないか(ソースで確かめます)。
- サイトの中のリンク、サイトマップ、転送が、canonical と同じ URL を指しているか。
- Google の選んだ URL と中身がほとんど同じになっていないか。同じなら、設定より中身の問題なので、そのページにしかない内容を足すか、一本にまとめます。
直したあとは、すぐには表示が変わりません。Google は、重複としてまとめたページを最長 2 週間ほどそのままにすることがあり、中身の違いが大きいほど早く分かれる、としています。大事なページだけ、URL 検査から「インデックス登録をリクエスト」を押して待ちます。転送元の URL が「ページにリダイレクトがあります」として並ぶのは別の表示で、見方は「ページにリダイレクトがあります」の見方に書きました。
今日、自社で確かめられること
- トップページ、問い合わせの多いサービスのページ、記事を 1 本、の 3 ページでソースを開き、canonical が一つだけで、そのページ自身の URL を指しているかを見る。
- そのうち 1 ページの URL に「?utm_source=test」を付けて開き、canonical が印の付かない URL のままかを見る。
- 同じページを、http:// で、www の有無を逆にして、末尾の「/」を消して、の 3 通りで開き、どれも一度で正しい URL に変わるかを見る。
- WordPress の「設定」→「一般」で、二つのアドレスが https で始まり、使いたい www の形になっているかを見る。
- 記事一覧の 2 ページ目を開き、canonical が 1 ページ目を指していないかを見る。
- Search Console の URL 検査で大事なページを調べ、「ユーザーが指定した正規 URL」と「Google が選択した正規 URL」が同じかを見る。
どこかで食い違いが見つかり、テーマやプラグイン、サーバーのどこで直すのか見当がつかない場合は、ソースの該当部分を控えておくと、制作会社や当社に相談するときに話が早く進みます。
参考にした公式の説明
- URL 正規化とは何か – Google 検索セントラル
- rel=”canonical” などを利用して正規ページを指定する方法 – Google 検索セントラル
- 正規化に関する問題の修正 – Google 検索セントラル
- ページ分割と段階的なページ読み込み – Google 検索セントラル
- ページ インデックス登録レポート – Search Console ヘルプ
- URL 検査ツール – Search Console ヘルプ
- rel_canonical()(WordPress 開発者リファレンス)
- wp_get_canonical_url()(WordPress 開発者リファレンス)
- redirect_canonical()(WordPress 開発者リファレンス)
いずれも 2026年10月16日に内容を確かめました。Search Console の画面の表示名や、テーマ・プラグインの設定項目は、変わることがあります。