SEO
canonical タグの問題を修正する方法:よくある間違いとその見つけ方
canonical タグは、どのURLを優先してほしいかを検索エンジンに伝えます。検索エンジンに無視されたり、誤ったページを選ばれたりする原因となる間違いと、サイト内での見つけ方を紹介します。
このページの内容
同じコンテンツが複数のURLに存在することはよくあります。www の有無、トラッキングパラメーター付き、並べ替えや絞り込みをした状態、印刷用、他サイトへの配信版などです。canonical タグ、つまりページの <head> に記述する <link rel="canonical" href="https://example.com/shoes/"> は、そうしたURLのうちどれを表示してほしいかを検索エンジンに伝えます。検索エンジンはこれを命令ではなく強いヒントとして扱い、他のシグナルと矛盾する場合は無視します。
canonical の問題のほとんどは、何百ものページで繰り返されるテンプレートの設定ミスです。その見分け方と直し方を紹介します。
適切な canonical とは
- canonical タグは1ページに1つだけで、
<head>の中にある。 - 正しいプロトコルとホストを含む絶対URLである。
/shoes/ではなくhttps://example.com/shoes/と書きます。 - 通常のページでは、そのページ自身を指している(自己参照 canonical)。
- 200 を返し、インデックス可能で、リダイレクトされないURLを指している。
- 他のシグナルと一致している。内部リンク、サイトマップ、リダイレクトのすべてが、同じ優先URLを使っています。
canonical のよくある問題
canonical がリダイレクト、404、エラーのURLを指している
URLを変更したあとも、テンプレートが古いアドレスを出力し続けていることがよくあります。こうなると、すべてのページが「こちらの別のURLを優先してください」と伝えているのに、そのURLはリダイレクトされるか、もう存在しません。検索エンジンはたいてい自分で canonical を選ぶようになり、どのURLが表示されるかをあなたは制御できなくなります。canonical を、200 を返す最終的なURLに更新してください。
noindex と、別ページへの canonical の併用
noindex は「このページを表示しないでください」という意味で、別のURLへの canonical は「このページはあちらの重複です」という意味です。両方を指定すると、矛盾したシグナルを送ることになります。どちらを意図しているのかを決めましょう。ページが重複なのであれば、canonical を残して noindex を外します。単に検索に出したくないだけなら、noindex を使い、canonical は自己参照にするか、なしにします。この違いについては、noindex の意味のガイドで解説しています。
canonical が noindex のページを指している
「インデックスしないでください」と自ら伝えているURLを優先するよう検索エンジンに指示すると、表示できるものが何も残りません。canonical をインデックス可能なページに向けるか、指定先のページから noindex を外してください。
すべてのページの canonical がトップページになっている
テーマやプラグインの設定によって、サイトのルートURLがすべてのページの canonical として出力されていると、事実上、他のすべてのページを除外するよう検索エンジンに頼んでいることになります。以前ほど多くはありませんが、移行のあとにはいまでも起こります。下層ページをいくつか選んでソースを確認しましょう。
相対URL、形式の誤り、複数の canonical
相対指定の href は技術的には許されていますが、壊れやすい書き方です。内容の食い違う canonical タグが2つあると(テーマが出力するものと SEO プラグインが出力するものであることが多い)、通常は両方とも無視されます。1か所で生成した、ただ1つの canonical だけを残してください。
プロトコル、ホスト、末尾のスラッシュの不一致
サイトは https://www.example.com/ で運用しているのに canonical が http://example.com/page となっていると、どの canonical もリダイレクトされるURLを指していることになります。ホスト、プロトコル、末尾のスラッシュの有無をそれぞれ1つに決め、canonical、内部リンク、サイトマップのすべてで統一して使いましょう。
別ドメインへの canonical
別ドメインへの canonical は、コンテンツを意図的に配信している場合には正当な使い方です。あなたの記事を転載するパートナーは、あなたのオリジナルを canonical に指定できます。一方、自分のサイトの中では、テンプレートに残ったステージング用ドメインや旧ドメインなど、たいていは設定ミスです。
ページネーションの各ページが1ページ目を指している
カテゴリの2ページ目には1ページ目とは別のアイテムが並んでいるので、重複ではありません。本当の意味での「すべて表示」ページを用意しているのでない限り、連続するページのそれぞれに自己参照 canonical を設定してください。
ページの canonical をチェックする
Rudra の無料 SEO チェッカーは canonical タグを読み取り、それが単一の絶対URLであるかを確認します。別のURLを指している場合は、その指定先にリクエストを送り、200 が返るかどうかを確かめます。
canonical の問題の見つけ方
1つのページで確認する
ページのソースを表示して rel="canonical" を検索するか、Rudra の無料 SEO チェッカーにそのページをかけます。チェッカーは、canonical の欠落、相対URLでの指定、重複、そしてそのページ以外を指す canonical を報告します。canonical がページの最終的なURLと異なる場合は、指定先に HEAD リクエストを1回送ってステータスを確認します。また、canonical が別のURLを指している noindex のページは、矛盾として指摘します。別ドメインへの canonical は意図的な場合もあるため、参考情報として記録されます。
サイト全体で確認する
canonical の問題は、実のところページ同士の関係の問題なので、クロールで調べるのが最も確実です。Rudra のサイトスキャン(無料アカウントを作成し、ダッシュボードから開始します。無料ウェブサイト監査は1ページが対象です)は、各ページの canonical を、クロール時にそのアドレスで確認できた内容と照らし合わせ、問題を理由ごとにグループ化します。canonical の指定先がリダイレクトされる、エラーステータスを返す、noindex である、別のホストにある、あるいは noindex のページが別のURLを canonical に指定している、といった理由です。ページ数や階層の深さの上限のためにクロールが到達しなかった指定先は、壊れているものとして報告されるのではなく、未検証として集計されます。
Google Search Console で確認する
「ページのインデックス登録」レポートには、「重複しています。Google により、ユーザーがマークしたページとは異なるページが正規ページとして選択されました」や「代替ページ(適切な canonical タグあり)」に分類されたページが一覧表示されます。URL 検査では、あなたが宣言した canonical と Google が選択した canonical の両方が表示されます。両者が異なる場合は、内部リンク、リダイレクト、サイトマップがもう一方のURLを指していないかなど、矛盾するシグナルを探してください。
正しい順序で修正する
- すべてのURLについて、優先する形式(プロトコル、ホスト、末尾のスラッシュ、パラメーター)を決めます。
- 可能であれば、それ以外の形式を 301 で優先URLにリダイレクトします。リダイレクトは canonical よりも強いシグナルです。
- 単一のテンプレートまたはプラグインから、ページごとに1つ、絶対URLの自己参照 canonical を生成します。
- 内部リンクとサイトマップを更新し、優先URLだけを使うようにします。サイトマップの問題を診断する方法もご覧ください。
- 残しておく必要のある本当の重複(絞り込み、印刷用ページ)は、canonical をメインのバージョンに向けます。
- 再クロールを行い、その後の数週間、ページが再クロールされていく様子を Search Console で見守ります。
よくある質問
すべてのページに canonical タグが必要ですか?
必須ではありませんが、インデックス対象のすべてのページに自己参照 canonical を設定しておくのが良い習慣です。自分では制御できない、パラメーターやトラッキングコード付きのURLから身を守れます。
Google は必ず canonical タグに従いますか?
いいえ。canonical は強いヒントですが、Google はリダイレクト、内部リンク、サイトマップ、コンテンツの類似度とあわせて判断します。シグナルが矛盾していると、Google は別の canonical を選ぶことがあり、その結果は Search Console の URL 検査で確認できます。
canonical と 301 リダイレクトのどちらを使うべきですか?
古いアドレスや www なしのバージョンのように、訪問者にとって重複URLがまったく必要ない場合は 301 を使います。絞り込みや並べ替えをした一覧ページのように、重複URLにもアクセスできる必要がある場合は canonical を使います。
canonical で別のドメインを指定できますか?
はい。別のサイトがあなたのコンテンツを転載し、オリジナルを明示するような、意図的なコンテンツ配信の場合には使えます。自分のサイトの中では、別ドメインへの canonical はたいてい、ステージング環境や移行の名残です。