日本語 English(Home)

canonicalとは?正規URLの書き方と301・noindexとの使い分け

同じ内容が複数のURLで見られるとき、どれを代表にするかを伝えるのがcanonicalです。書き方とほかの手段との使い分け、Googleが選んだ正規URLの確かめ方、よくある失敗を整理します。

canonicalとは?正規URLの書き方と301・noindexとの使い分け

この記事の要点:

  • canonicalは、重複したURLのうち検索結果に出してほしい代表(正規URL)を伝えるヒントで、ページの削除や転送はしない
  • 正規URLは1つに決め、canonical・内部リンク・サイトマップ・リダイレクトのすべてで同じURLを使う
  • 利用者が使い続ける重複URLにはcanonical、もう使わない古いURLには301、検索結果から外すならnoindex。正規化にrobots.txtは使わない
  • ページ分割の2ページ目以降や翻訳ページは重複ではないため、それぞれ自分自身を指すcanonicalにする
  • 指定が効いているかは、URL検査で「ユーザーが指定した正規 URL」と「Google が選択した正規 URL」を見比べて確かめる

canonicalとは

canonical(カノニカル)とは、同じ、またはほぼ同じ内容のページが複数のURLにあるときに、代表とするURL(正規URL)を検索エンジンに伝える指定です。Googleは重複したURLの中から1つを正規URLとして選び、主にそのURLを検索結果に表示します。

canonicalはページを消したり、利用者を転送したりはしません。どのURLも閲覧できるまま、「検索結果に出すならこのURL」と伝えるヒントです。重複したURLへのリンクなどのシグナルも、正規URLにまとめて扱われやすくなります。

正規化(canonicalization)の考え方

Googleは、重複したURLのまとまりごとに正規URLを1つ選ぶ処理を「正規化」と呼んでいます。サイト運営者がcanonicalを指定しなくても、Googleは自動で選びます。ただし、意図と違うURLが選ばれることがあるため、自分で指定しておく方が確実です。

canonicalが必要になる場面

サイトでは、意図しなくても同じ内容が複数のURLで表示されることがよくあります。代表的な場面は次のとおりです。

場面URLの例正規URLにするもの
計測用パラメータ付きのURL/page/?utm_source=mail/page/
wwwの有無・httpとhttpshttp://example.com/page/https://www.example.com/page/ など1つに統一
並び替え・表示件数だけ違う一覧/items/?sort=price/items/
商品の色違いで内容がほぼ同じ/shirt/?color=blue色ごとに説明が違うなら各URL、同じなら代表の1つ
PC用とスマートフォン用が別URLhttps://m.example.com/page/PC用のURL(スマートフォン用にはalternateも併用)
A/Bテストで別URLの案を出している/lp-b/元のURL

例:アパレルの通販サイトで、同じTシャツが「メンズ」「セール」の2つのカテゴリーから別URLで表示される場合。どちらの経路から来ても同じ商品ページなので、/products/t-shirt-001/ のように1つの正規URLを決めてcanonicalで指し、サイト内のリンクもそのURLにそろえます。重複ページ全般の考え方は重複コンテンツとは、URLのそろえ方はURLの正規化の記事で扱っています。

どのURLを正規にするかの決め方

正規URLは、次の順で考えると決めやすくなります。

  1. 利用者に一番見てほしいURL(パラメータが無く、短く、意味が分かるもの)
  2. httpsで、サイト全体で決めたwwwの有無に合っているURL
  3. サイト内のリンク・サイトマップ・パンくずで、すでに使っているURL

決めたURLは、canonicalだけでなく、内部リンク・サイトマップ・リダイレクトのすべてで同じものを使います。シグナルがそろうほど、Googleの選ぶ正規URLが指定と一致しやすくなります。

正規URLを伝える方法とシグナルの強さ

Googleは、正規URLを伝える方法を次のように整理しています。

方法Googleにとっての強さ向いている場面
301などのリダイレクト強いシグナル古いURLを使わなくなったとき、URLを統一したいとき
rel=”canonical”のlink要素強いシグナル重複したページも表示したまま、代表を伝えたいとき
rel=”canonical”のHTTPヘッダー強いシグナルPDFなどHTML以外のファイル
サイトマップに載せる弱いシグナルサイト全体で正規URLをまとめて伝える補助

Googleは、これらの方法を組み合わせると効果が高まると説明しています。ただし、方法ごとに別のURLを指すと逆効果です。例えば、canonicalは/page/を指しているのに、サイトマップには/page/?ref=topを載せている、という状態は避けます。

rel=”canonical”の書き方

link要素(HTMLページ)

重複しているページの<head>の中に、正規URLを書きます。

<!-- /items/?sort=price の head 内 -->
<link rel="canonical" href="https://example.com/items/">

<!-- 正規URL /items/ 自身にも、自分を指すcanonicalを入れる -->
<link rel="canonical" href="https://example.com/items/">

守ることは次のとおりです。

  • <head>の中に書く。<body>の中にあるcanonicalは使われません。
  • 「https://」から始まる絶対URLで書く。相対URLも使えますが、書き間違いが起きにくいのは絶対URLです。
  • 1ページに1つだけにする。複数あると無視されることがあります。
  • 指す先は、正常に表示(200)され、インデックスできるページにする。
  • 正規URLのページ自身にも、自分を指すcanonical(自己参照canonical)を入れる。

HTTPヘッダー(PDFなど)

PDFなどHTMLではないファイルには、Linkヘッダーで指定します。例:資料のHTML版とPDF版があり、HTML版を正規にしたい場合です。

Link: <https://example.com/guide/>; rel="canonical"

Apacheの.htaccessでは、mod_headersが有効な場合、次のように書けます。

<Files "guide.pdf">
  Header add Link "<https://example.com/guide/>; rel="canonical""
</Files>

nginxでは、該当するlocationに書きます。

location = /files/guide.pdf {
  add_header Link '<https://example.com/guide/>; rel="canonical"';
}

WordPressで確認する設定

  • 投稿・固定ページ:WordPress本体が、記事ごとに自分自身を指すcanonicalを出力します。SEOプラグインを入れると、プラグインの出力に置き換わるのが一般的です。
  • SEOプラグインの記事ごとの欄:投稿画面の詳細設定に「正規URL」などの入力欄があるものが多くあります。空欄なら自己参照になります。ほかの記事を複製したときに、元記事のURLが残っていないかを確認します。
  • 一覧ページ:カテゴリー・タグ・ページ分割の一覧は、テーマやプラグインの出力に頼ります。2ページ目以降のcanonicalが何を指しているかを、実際のHTMLで確かめます。
  • 多言語・キャッシュ系のプラグイン:URLを書き換えるプラグインと組み合わせると、canonicalのURLがずれることがあります(後の「当サイトの実例」を参照)。

canonical・301・noindex・robots.txtの使い分け

重複を整理したいとき、どの手段を選ぶかは「重複したURLを、利用者が使い続けるかどうか」で決まります。

状況選ぶ手段理由
重複URLも利用者が使う(並び替え、計測パラメータ)canonicalページは残したまま、評価を正規URLにまとめる
古いURLはもう使わない(URL変更、http→https、統合)301リダイレクト利用者も検索エンジンも新しいURLへ移る
内容が違い、検索結果に出す価値がないnoindex重複ではないので、canonicalは適さない
クロールさせる価値のないURLが大量にあるrobots.txtクロールの量を減らす目的。正規化には使わない
ページが不要で、後継もない削除(404・410)canonicalで残す理由がない

Googleは、正規化の目的でrobots.txtを使わないよう説明しています。ブロックしたURLは中身が読めず、重複かどうかを判断できないためです。また、同じサイト内で正規URLの選択を防ぐ目的でnoindexを使うことも勧めていません。noindexは「検索結果から外す」指定で、評価をまとめる働きはありません(noindexとは)。1つのページにnoindexと、別のURLを指すcanonicalを同時に付けると、「外してほしい」と「こちらと同じ」という矛盾した信号になります。どちらか一方にします。URLを移すときの手順は「301リダイレクトとは」で説明しています。

Googleが選んだ正規URLを確かめる方法

canonicalは「ヒント」であり、Googleが必ず従う命令ではありません。リダイレクト、内部リンク、サイトマップ、httpsかどうかなど、ほかのシグナルもあわせて判断されます。指定と矛盾するシグナルが多いと、Googleが別のURLを正規URLに選ぶことがあります。

1. HTMLとヘッダーを見る

ページのソースを開き「canonical」で検索して、1つだけか、指す先が正しいかを見ます。ヘッダーで指定している場合は、ターミナルで確認します。

curl -I https://example.com/files/guide.pdf

結果のLink:の行に、正規URLとrel="canonical"があれば指定されています。

2. Search ConsoleのURL検査

  1. Search ConsoleのURL検査に、確かめたいURLを入力します。
  2. 「ページのインデックス登録」を開き、「ユーザーが指定した正規 URL」と「Google が選択した正規 URL」を見比べます。
  3. 修正した直後は「公開URLをテスト」で、今のHTMLに正しいcanonicalがあるかを確認します。なお、「Google が選択した正規 URL」はテストでは分からず、インデックスされた結果にだけ表示されます。

3. ページのインデックス登録レポート

「インデックス作成」→「ページ」で、インデックスされていない理由を見ます。canonicalに関係する主な理由は次のとおりです。

  • 代替ページ(適切な canonical タグあり):指定どおり、別のURLが正規として扱われています。意図した重複URLなら対応は不要です。
  • 重複しています。ユーザーにより、正規ページとして選択されていません:canonicalの指定はないものの、Googleが重複と判断しました。正規URLを明示します。
  • 重複しています。Google により、ユーザーがマークしたページとは異なる正規ページが選択されました:指定とGoogleの判断が食い違っています。内部リンクやサイトマップが、指定と違うURLを指していないかを見直します。

よくある失敗と直し方

起きること原因直し方
一覧の2ページ目以降に載る記事が見つかりにくいページ分割の2ページ目以降のcanonicalを1ページ目に向けている内容が違うページなので重複ではない。各ページに自己参照canonicalを付ける
英語版のページが検索結果に出ない英語版のcanonicalが日本語版を指している翻訳したページは重複ではない。各言語のページは自分自身を指し、言語の対応はhreflangで伝える
正規URLが「存在しないページ」と扱われるcanonicalが404やリダイレクト元のURLを指している正常に表示される最終URLを指す
指定が無視されるテーマとSEOプラグインの両方がcanonicalを出し、2つあるどちらかの出力を止め、1つにする
本番のページが、テスト環境のURLを指しているテスト環境からデータを移したときに、URLの設定が残ったサイトのURL設定と記事ごとの正規URL欄を本番のドメインに直す
Googleが別のURLを正規に選ぶ内部リンクやサイトマップがパラメータ付きURLを使っているサイト内のリンクとサイトマップを正規URLにそろえる

ページ分割について、Googleは「最初のページを正規ページとして使わず、各ページに独自の正規URLを付ける」よう説明しています。多言語については、hreflangを使う場合、正規URLは同じ言語(無ければ最も近い代替言語)のページにするよう案内しています。詳しくはhreflangとはを参照してください。

当サイト(seoagent.jp)での実例

当サイト(seoagent.jp)では、記事一覧/ja/blog/のcanonicalが、/ja/blog/ja/という存在しないURLを指していました。多言語プラグインがURLに言語のパスを付け足す処理と、一覧ページのcanonicalを作る処理が重なったことが原因です。

  • 行ったこと:canonicalをページ自身のURLに直す処理を追加
  • 確認方法:seo-check(全ページのHTMLを取得して確認する仕組み)で、全ページのcanonicalが自分自身を指すことを確認

この不具合は、管理画面の設定を見ても分かりませんでした。公開されたHTMLを直接見て初めて気づけます。プラグインを追加・更新したときは、記事・一覧・トップなど種類の違うページを数枚選び、canonicalの値を確かめることをおすすめします。

また、日本語と英語のURLを分けた際(現在は日本語がトップ /、英語が /en/)は、翻訳がある組だけにhreflangを付け、x-defaultはトップページだけにしました。言語の違うページ同士をcanonicalでまとめず、それぞれが自分を指す形にしています。ほかの技術的な記事は「テクニカルSEOの記事一覧」にまとめています。

よくある質問

canonicalを直したら、どのくらいで反映されますか。

Googleがそのページを再びクロールし、処理したあとに反映されます。かかる時間はサイトやページによって異なります。急ぐページは、URL検査で「公開URLをテスト」して新しい指定を確かめたうえで、インデックス登録をリクエストできます。

canonicalで指定された側でないページ(重複URL)は、削除したほうがよいですか。

利用者がそのURLを使っているなら残します。並び替えや計測パラメータのURLのように、読者にとって意味のある重複はcanonicalでまとめるための仕組みです。もう使わないURLであれば、削除ではなく正規URLへの301リダイレクトを選びます。

canonicalを付けたのに、重複URLの方が検索結果に出ることはありますか。

あります。canonicalはヒントなので、内部リンクやサイトマップが別のURLを指していると、Googleがそちらを正規URLに選ぶことがあります。URL検査で「Google が選択した正規 URL」を確かめ、シグナルを指定と同じURLにそろえます。

canonicalを設定すると順位は上がりますか。

canonicalは順位を上げる設定ではありません。重複したURLに分かれていたリンクなどのシグナルが正規URLにまとまりやすくなり、検索結果に出るURLが意図どおりになることが主な効果です。

SEOAGENTでできること

SEOAGENTでは、Search Consoleと連携して記事ごとの検索データを確認し、内容が重なっている記事の整理や、記事同士の内部リンクの見直しを進められます。canonicalの出力は、WordPress側のテーマやSEOプラグインの設定で行います。

参考情報

関連する記事

「テクニカルSEO」の記事をすべて見る →

クロールバジェットとは:Googleの説明と、気にすべきサイト・しなくてよいサイト
テクニカルSEO

クロールバジェットとは:Googleの説明と、気にすべきサイト・しなくてよいサイト

クロールバジェットは、多くのサイトでは気にする必要がありません。Google の「クロール バジェットの管理」の原文に沿って、決まる仕組み、対策が必要なサイトの目安、クロールの統計情報での確かめ方、クロールを無駄にする原因と対処を、当サイトの点検結果とあわせて説明します。

AIでSEO対策を、もっと続けやすく。

機能と使い方、料金・契約条件は、サービス資料でご案内します。