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

「重複ページを消したい」「canonicalを入れれば解決する?」と考えていませんか?
解説を読むと設定方法は分かりますが、設定したあと何が起きるかまでは書かれていません。
この記事では、canonicalと301の違い、重複が生まれる3つの経路、書き方の決まり、順位を落とす誤設定、そもそも設定しなくていい場合までを解説します。
重複ページの扱いに迷っている方が、canonicalと301のどちらを使うか判断できるようになります。
canonicalは「どれを正規とするか」を伝えるタグ

canonicalは、同じ内容のURLが複数あるとき、どれを代表とするかを検索エンジンに伝えるタグです。Googleが指定を採用すると、リンクなどの評価シグナルが正規URLに統合されます。
誤解が多いのはここからです。設定しても、元のページは消えませんし転送もされません。
ページは残り、アクセスもできる
canonicalを入れたページは、そのまま表示されます。訪問者は元のページを読めますし、リンクをたどって移動することもできます。
変わるのは検索エンジンの扱いだけです。指定が採用されれば評価シグナルが正規URLに統合され、検索結果には正規URLのほうが出やすくなります。
301は転送される
301リダイレクトは、アクセスした時点で別のURLに転送されます。元のページは表示されず、転送先を正規とする強いシグナルが送られます。
両方を残したいならcanonical、片方を消したいなら301。目的が違うので、置き換えられるものではありません。
あくまで「提案」として扱われる
canonicalは指示ではなく、Googleへの提案として扱われます。指定した内容と実際のページが食い違っていれば、無視されて別のURLが正規として選ばれます。
Search Console のURL検査で、指定したURLと実際に選ばれたURLを比べられます。ここがずれていれば、指定が受け入れられていません。
指定を無視されたかどうかは、Search ConsoleのURL検査で分かります。対象のURLを入力すると、「ユーザーが指定した正規URL」と「Googleが選択した正規URL」の2つが表示されます。
この2つが食い違っていれば、指定が採用されていません。多くの場合、指定先の内容が実際には違う、あるいは指定先自体が正規と認められていない、のどちらかです。
canonicalを検討する代表的な3つのケース

重複は主に3つの経路から生まれます。パラメータ、意図的な別URL、そして外部への転載です。
自分のサイトがどれに当たるかを先に確かめます。該当しないなら、手動で追加する必要性は高くありません。
パラメータが付くURL
広告のクリック計測や絞り込み検索で、同じページに別のURLが生まれます。末尾に長い文字列が付いた状態です。
内容は同じでもURLが違うため、別ページとして扱われる可能性があります。この場合は、パラメータのないURLを正規として指定します。
広告の効果測定や、並び替えの指定でURLの末尾に付く文字列です。同じ内容のページが、パラメータの組み合わせだけ生まれてしまいます。
この場合、パラメータのないURLを指定します。ただし、パラメータによって内容が変わる場合は別です。検索結果の絞り込みのように、表示される中身が違うなら、それぞれ独立したページとして扱います。
同じ内容を別URLで出している
印刷用ページ、スマートフォン専用ページ、AMPページなど。意図的に別URLで同じ内容を出しているケースです。
この場合は、通常のページを正規として指定します。正規に指定するほうが表に出るので、どちらを検索結果に出したいかで決めます。
他サイトに転載されている
他のメディアに記事を転載する場合は、canonicalを第一の手段にしません。ドメインをまたいだ指定自体は使えますが、Googleは転載による重複の対策としてcanonicalを推奨していません。
転載先と元記事では、周囲の要素が違うため内容が大きく異なることが多いためです。Googleは転載先でインデックスをブロックしてもらう方法を案内しています。
転載を依頼するときは、検索結果での扱いを事前に決めておきます。
canonicalの書き方と、書く場所

記述の決まりは4つです。外れていると、指定が無視されたり、意図しないURLが正規に選ばれたりします。
特に多いのが相対パスと重複記述です。動いていないことに気づきにくいので、書いたあとに確認します。
絶対パスで書く
https:// から始まる完全なURLを書きます。/example/ のような相対パスもGoogleは解釈しますが、問題が起きやすいため絶対URLが推奨されています。
あわせて、wwwの有無や末尾のスラッシュも実際のURLと合わせます。表記が1文字でも違うと、別のURLとして扱われます。
httpsから始まる完全な形で書きます。「/example/」のような相対的な書き方でも動きますが、環境によって解釈が変わることがあります。
あわせて、指定するURLは実際にアクセスできる状態である必要があります。転送される途中のURLや、存在しないURLを指定すると、指定そのものが無視されます。
headの中に1つだけ
<head> の中に書きます。bodyの中では効きません。
そして1ページに1つだけにします。テーマとプラグインの両方が出力していると、2つ以上になります。指定が食い違うと、意図しないURLが正規に選ばれることがあります。
自分自身を指すのが基本
重複がないページでも、自分自身のURLを正規として指定するのが推奨されています。自己参照canonicalと呼びます。
WordPressは投稿や固定ページなどの個別ページに、標準でこれを出力します。カテゴリー一覧などを含むすべてのページに出るわけではありません。
SELF CHECK
Search ConsoleのURL検査で、2つの正規URLはどうなっていますか。
診断結果
指定が採用されています
意図したとおりに動いています。この状態なら触る必要はありません。
新しくページを追加したときも、同じ手順で確認しておくと事故を防げます。
診断結果
指定が無視されています
多くの場合、指定先の内容が実際には違うか、指定先そのものが正規と認められていません。
指定先を開いて、同じ内容が載っているかを確かめてください。違う内容を指していれば、その指定ごと無視されます。
診断結果
設定を今すぐ直します
テーマの設定を誤ると、この状態になります。個別の記事が検索結果から消えます。
サイト自体は正常に表示されるため気づきにくい。順位が急に落ちた場合、まずここを疑ってください。
診断結果
出力されない構成かを確認します
出力がなくても、Googleが自動で正規URLを判断します。必ずしも問題ではありません。
ただし、パラメータ付きのURLが多いサイトでは指定しておくほうが安全です。テーマかプラグインの設定を確認してください。
canonicalのよくある誤設定

誤設定は気づきにくく、影響が大きい部分です。順位を上げるつもりで入れた指定が、逆にページを検索結果から消すことがあります。
確認方法は単純です。指定先のURLを実際に開き、同じ内容が載っているかを見ます。
全ページでトップページを指す
評価をトップに集めようとして、すべてのページにトップページを指す指定を入れるケースです。これは最も危険な誤りです。
下層ページが検索結果から消える可能性があります。内容が違うのでGoogleが無視することも多いのですが、受け入れられた場合の損失が大きくなります。
テーマの設定を誤ると、この状態になります。すべてのページがトップページを正規URLとして指すため、個別の記事が検索結果から消えます。
気づきにくいのは、サイト自体は正常に表示されるためです。順位が急に落ちた場合、まずここを確認します。ページのソースを開き、canonicalの行を見るだけで判別できます。
ページ送りで1ページ目を指す
一覧ページの2ページ目以降に、1ページ目を正規として指定するケースです。各ページはそれぞれ自分自身を指す形にします。
2ページ目以降にも固有の内容があるためです。1ページ目に寄せると、2ページ目以降が評価されなくなります。
noindexと同時に使う
noindexは「登録しない」、canonicalは「こちらを登録して」という指示です。同時に付けると矛盾します。
サイト内の正規化が目的なら、noindexではなくcanonicalを使うのがGoogleの推奨です。noindexはページを検索結果から完全に外してしまいます。
canonicalを設定しなくていい場合

解説の多くは設定を前提にしていますが、手で書く必要がないサイトも多くあります。3つの条件をすべて満たしたときだけです。
WordPressの個別ページなら、標準で自己参照canonicalが出力されます。重複が起きていないなら、それで足ります。
まず出力されているか確認する
ブラウザでページを開き、ソースを表示して canonical で検索します。すでに1つ出ていれば、手で足す必要はありません。
むしろ足すと2つになり、両方が無効になります。書く前に、出ていないことを確かめてください。
記事のページを開き、右クリックからページのソースを表示します。ブラウザの検索機能で「canonical」を探します。
見つかった行のURLが、そのページ自身のURLと一致していれば正常です。違うURLを指している場合は、意図した設定かを確認します。プラグインとテーマの両方が出力していると、2つ並ぶことがあります。
消したいなら301か削除を選ぶ
重複ページを残す理由がないなら、canonicalではなく削除します。canonicalは両方を残す前提の道具です。
このサイトでも、同じテーマの記事を2本作ってしまったことがあります。重複を検知したWordPressによって、スラッグに自動で -2 が付いた状態でした。
このときcanonicalは使わず、新しく作ったほうを削除して、既存記事の中身を新しい内容に差し替えました。URLを維持したまま更新できるため、リダイレクトを伴わずに記事を刷新できます。
削除した記事には404か410を返す
記事を全入れ替えしたときは、削除した22本に410を返す設定にしました。canonicalで別ページを指す方法もありますが、内容が対応していなければ意味がありません。
410は恒久的に削除されたことを明示するコードですが、Googleは移転先のない削除URLについて404と410のどちらも適切としています。
対応する新しい記事があるなら301、完全に削除するなら404か410。canonicalを持ち出さなくても、この使い分けで足りる場面がほとんどです。
よくある質問
canonicalを設定すれば重複ページは検索結果から消えますか。
消えるとは限りません。評価は正規URLに集まりますが、元のページは残ります。確実に消したいなら削除するか301を設定してください。
設定したのに反映されません。
Googleが指定を受け入れていない可能性があります。URL検査で「Googleが選択した正規URL」を確認してください。指定先と内容が違う場合は無視されます。
プラグインで設定すべきですか。
WordPressは投稿や固定ページに標準で出力するため、多くの場合は不要です。テーマや独自実装との組み合わせによっては二重に出力されることがあるので、追加する前にソースを確認してください。
カテゴリーページやタグページにも必要ですか。
それぞれが自分自身を指していれば十分です。一覧ページを検索結果に出したくない場合は、canonicalではなくnoindexを検討してください。
まとめ
canonicalは、どのURLを代表とするかを伝えるタグです。指定が採用されれば評価シグナルは正規URLに統合されますが、元のページは残り、転送もされません。
検討するのはパラメータ、意図的な別URL、他サイトへの転載の3つです。ただし転載ではcanonicalが推奨されていません。どれも起きていないなら、手で書く必要はありません。
書くときは絶対パス、headの中、1ページに1つ、自分自身を指す。この4つを守ります。指定先を実際に開いて、同じ内容かを確かめてください。
まず自分のサイトのソースを表示して、canonicalがすでに出ているか見るところから始まります。出ていれば、それ以上やることはありません。


