canonicalの設定方法|設定しても消えないページと、301との使い分け

「重複ページを片づけたい」「canonicalを入れれば解決する?」と考えていませんか?
設定方法の解説は多いものの、設定したあとにページがどうなるかまでは書かれていません。
この記事では、canonicalと301の違いから、書き方と誤設定、書かない場合までを解説します。
重複に迷っている方が、canonicalと301と削除のどれを選ぶか決められるようになります。
canonicalは代表のURLを伝えるタグ

canonicalは、同じ内容のURLのうちどれを代表にするかを検索エンジンに伝えるタグです。代表に選ばれたURLを、正規URLと呼びます。
よく比べられるのが301リダイレクトです。目的が違うため、次の表で整理します。
| 比べる点 | canonical | 301リダイレクト |
|---|---|---|
| 元のページ | 表示されたまま残る | 開くと転送先へ移る |
| 訪問者への影響 | なし | 転送先のページを見る |
| Googleの扱い | 強いシグナル | 強いシグナル |
| 向く場面 | 両方のURLを残したい | 古いURLを使わなくなった |
ページは残り、訪問者は読める
canonicalを入れても、元のページは消えません。訪問者はそのページを開けますし、リンクから移動することもできます。
変わるのは、検索エンジンからの見え方だけです。指定が採用されると、リンクなどの評価が正規URLにまとめて扱われます。検索結果に出るのも、正規URLのほうです。
「重複ページを消すためのタグ」と思って入れると、ページが残っていることに戸惑います。
301は、開いた時点で転送する
301リダイレクトは、古いURLを開いた人を新しいURLへ自動で移す仕組みです。元のページは表示されず、転送先が正規URLになるべきだという強いシグナルになります。
Googleは、301によるリダイレクトでPageRankが失われることはないと説明しています。古いURLを使わなくなったなら、canonicalより301のほうが目的に合う選び方です。
両方を残すならcanonical、片方をなくすなら301です。
指定は命令ではなく、提案として扱われる
canonicalは、Googleが必ず従う命令ではありません。指定した先と実際の内容が食い違えば、別のURLが正規に選ばれます。
採用されたかどうかは、Search ConsoleのURL検査で確かめるのが確実です。URLを入れると、正規URLが2つ並んで表示されます。「ユーザーが指定した正規URL」と「Googleが選択した正規URL」です。
2つが一致していれば、指定は受け入れられています。ずれていたら、指定先の内容を見直してください。
canonicalを考える3つのケース

重複が生まれる経路は、主に3つあります。自分のサイトがどれに当たるかを、先に確かめてください。
どれにも当たらないなら、手でcanonicalを書く場面はほとんどありません。WordPressの個別ページには、標準で自分自身を指すcanonicalが出力されるためです。重複していても、Googleが自動で代表を選ぶことも多くあります。
① パラメータが付くURL
広告の効果測定や並び替えで、URLの末尾に?から始まる文字列が付く場合です。内容は同じでも、URLが違うため別のページとして見つかります。
この場合は、パラメータのないURLを正規URLにします。ただし、絞り込みのように表示される中身が変わるなら話は別です。中身が違うページは、それぞれ自分自身を指すようにしてください。
② 同じ内容を別のURLで出している
印刷用のページや、wwwの有無、httpとhttpsの違いが代表例です。意図して別のURLを用意しているか、設定の都合で2つ開ける状態になっています。
検索結果に出したいほうを、正規URLに選びます。wwwやhttpの違いは、canonicalより301でまとめるほうが確実です。片方のURLを訪問者に見せる理由がないためです。残す理由があるときだけ、canonicalを使います。
③ ほかのサイトへの転載
記事をほかのメディアに転載する場合は、canonicalを頼りにしません。Googleは、転載による重複にはcanonicalを推奨していません。
転載先のページは、周りの要素が違うため、元の記事とは内容が大きく変わることが多いからです。勧められているのは、転載先にnoindexを付けてもらう方法です。転載を受ける前に、相手と取り決めておいてください。
canonicalの書き方の4つの決まり

canonicalは、ページのheadの中に1行書くだけのタグです。形は次のとおりです。
<link rel="canonical" href="https://example.com/sample/">
決まりは4つあります。どれかが外れると、指定が無視されたり、意図しないURLが正規に選ばれたりします。
① 完全なURLで書く
httpsから始まる、省略のない形で書くのが基本です。相対的な書き方も読み取られます。ただしGoogleは、長期的には問題が起きやすいとして絶対URLを勧めています。
あわせて、wwwの有無や末尾のスラッシュも実際のURLと同じにしてください。1文字でも違えば、別のURLとして扱われます。転送の途中にあるURLや、開けないURLを指すのも避けてください。
② headの中に書く
canonicalは、HTMLのheadの中にある場合だけ受け入れられます。本文の中に書いても効きません。
WordPressでは、テーマやSEOプラグインがheadに出力します。自分で足すなら、プラグインの設定欄から入れるのが安全です。テーマのファイルを直接書き換えると、更新のたびに消えることがあります。
③ 1ページに1つだけにする
テーマとプラグインの両方が出力すると、canonicalが2行になります。指す先が違えば、どちらも無視される場合もあるので要注意です。
Googleも、同じページに対して違う正規URLを指定しないよう求めています。canonicalとサイトマップで、別のURLを指していないかも確かめておきます。プラグインを入れ替えたあとは、特に重なりやすい時期です。
④ 正規のページは自分自身を指す
重複のないページでも、自分自身のURLを指すcanonicalを入れることが勧められています。自己参照canonicalと呼ばれる書き方です。
パラメータ付きのURLで開かれても、正規URLが伝わるようになります。WordPressは、投稿や固定ページに標準で出力します。すでに出ているなら、自分で書き足す必要はありません。
SELF CHECK
記事のページのソースで「canonical」を探すと、どうなっていますか。
診断結果
そのままで問題ありません
正しい状態です。手で書き足すと2行になるため、何もしないでください。重複が見つかったときだけ、使う場面を考えます。
診断結果
出力をどちらか1つに絞ります
テーマとプラグインが、両方とも出力しています。どちらか一方の出力を止め、1行だけになったことをソースで確かめてください。
診断結果
指定先が正しいかを確かめます
意図した設定でなければ、すぐに直します。URL検査で、Googleがどちらを正規に選んでいるかもあわせて見てください。
診断結果
テーマかプラグインで出力します
独自のテーマで、出力が止まっている可能性があります。SEOプラグインを使うか、テーマの作成者に出力を頼んでください。
canonicalのよくある3つの誤設定

誤設定があっても、サイトの見た目は何も変わりません。訪問者からの連絡で気づくこともありません。順位が落ちてから原因を探し、ようやく見つかることが多い部分です。
確かめ方は単純で、指定先のURLを実際に開くだけです。同じ内容が載っていなければ、指定は間違っています。テーマやプラグインを変えたあとに起きやすいので、その都度見直すのが安全です。
① すべてのページでトップページを指す
評価をトップページに集めようとして、全ページにトップを指す指定を入れる例です。テーマの設定を誤ったときにも、この状態になります。
受け入れられると、個別の記事が検索結果から外れます。内容が違うため無視されることも多いものの、採用されたときの損失が大きい誤りです。順位が急に落ちたときは、最初にここを確かめてください。
② 2ページ目以降が1ページ目を指す
記事の一覧やカテゴリーで、2ページ目以降に1ページ目を正規として指定する例です。Googleは、1ページ目を正規にしないよう案内しています。
2ページ目以降にも、そこにしかない記事へのリンクがあるからです。1ページ目に寄せると、奥にある記事が見つかりにくくなります。各ページは、それぞれ自分自身を指すようにしてください。
③ noindexと同じページで使う
noindexは「検索結果に出さない」、canonicalは「代表はこちら」という指定です。同じページに付けると、向きが逆の指示が並びます。
Googleは、サイトの中で正規URLを選ぶ目的でnoindexを使うことを勧めていません。ページが検索から完全に外れるためです。重複をまとめたいならcanonicalだけを使い、出したくないページにはnoindexだけを付けます。
- 参考:正規化に関する問題のトラブルシューティング
- 参考:Pagination, incremental page loading, and their impact on Google Search
- 関連記事:記事がインデックスされない原因|まず見る画面と、待ってよい場合の見分け方
canonicalを書かなくていい場合

canonicalの解説は、書くことを前提にしたものが多くあります。実際には、手で書かなくていいサイトのほうが多数です。WordPressで記事を書いているだけなら、重複はめったに起きません。
重複ページを残す理由がないなら、canonicalではなく301か削除を選びます。canonicalは、両方のURLを残す前提の道具だからです。
まず出力を確かめる
記事のページを開き、右クリックからページのソースを表示します。ブラウザの検索機能で「canonical」を探してください。
そのページ自身のURLを指す行が1つだけあれば、正常です。この状態なら、手で何かを書く必要はありません。書き足すと2行になり、かえって指定が乱れます。何か書く前に、出ていないことを確かめるのが先です。
消したいなら301か削除を選ぶ
当サイトでも、同じテーマの記事を2本作ってしまったことがあります。WordPressが重複を避け、スラッグの末尾に「-2」を付けた状態でした。
このときはcanonicalを使わず、新しく作ったほうを削除しました。そのうえで、既存の記事の中身を新しい内容に差し替えています。URLが変わらないため、リダイレクトを使わずに記事を作り直せました。
消した記事には404か410を返す
当サイトで記事を入れ替えたときは、削除した22本に410を返す設定にしました。410は、ページを恒久的に消したことを示すコードです。
Googleは、移す先のない削除済みのURLには404と410のどちらも適切としています。内容の対応しないページをcanonicalで指しても、受け入れられません。移す先があれば301、なければ404か410という使い分けで足ります。
canonical 設定に関するよくある質問
canonicalを設定すれば、重複ページは検索結果から消えますか
指定が採用されれば、検索結果には正規URLのほうが出るようになります。ただし、元のページはサイトに残ったままで、訪問者も開ける状態です。
指定が受け入れられなければ、両方が出続けることもあります。確実になくしたいなら、301で転送するか、ページを削除してください。canonicalは、両方を残したいときに使うものと考えると迷いません。
設定したのに、反映されません
Googleが指定を受け入れていないか、まだクロールされていない状態です。URL検査で、「Googleが選択した正規URL」を確かめてください。
指定先と内容が大きく違うと、指定は無視されます。内部リンクやサイトマップが別のURLを指していないかも見直してください。クロールに日数がかかることもあるため、直したあとは1〜2週間ほど様子を見ます。
プラグインで設定したほうがいいですか
WordPressは投稿や固定ページに標準で出力するため、多くの場合は入れなくて構いません。SEOプラグインを入れると、その出力に置き換わります。
注意したいのは、テーマ側でも独自に出力している場合です。2行並ぶことがあるため、入れたあとは必ずソースで確かめてください。プラグインを使うのは、個別のページで指定先を変えたいときだけで足ります。
カテゴリーやタグの一覧ページにも必要ですか
それぞれが自分自身を指していれば十分です。2ページ目以降も、1ページ目ではなく自分自身を指すようにします。
一覧ページを検索結果に出したくない場合は、canonicalではなくnoindexを付けます。中身の薄いタグページが大量にあるなら、タグそのものを減らすことも考えてください。canonicalで別の一覧を指すと、指定が食い違う原因になります。
ほかのドメインのページを正規URLに指定できますか
できます。別のドメインに移した内容や、自社で運営する別のサイトに同じ記事を置く場合に使えます。
ただし、ほかの会社のメディアへの転載では勧められていません。転載先のページは周りの内容が違い、同じページと見なされにくいためです。この場合は、転載先にnoindexを付けてもらうよう事前に取り決めます。自社の別サイトに置く場合も、指定先と内容がそろっていることが前提です。
まとめ
canonicalは、同じ内容のURLのうちどれを代表にするかを伝えるタグです。採用されれば評価は正規URLにまとまりますが、元のページは残り、転送もされません。
使うのは、パラメータ付きのURLや、同じ内容を別のURLで出している場合です。転載ではcanonicalではなく、転載先にnoindexを付けてもらいます。書くときは、完全なURLで、headの中に、1ページ1つ、自分自身を指す形にします。
まずは記事のソースを開き、canonicalが1行だけ出ているかを確かめてください。