canonicalを入れる前に確認すること
canonicalは、似た内容のページが複数ある時に「正規のURLはこちらです」と検索エンジンへ伝えるためのタグです。URLの表記ゆれや重複ページの整理に役立ちます。
ただし、便利だからといって何となく入れるものではありません。間違ったURLをcanonicalにすると、本来見せたいページではなく別ページを正規扱いにしてしまうことがあります。
canonicalを入れる前の確認順
正規URL、重複理由、noindex、リダイレクト、内部リンクの向き先を確認してからcanonicalを入れます。
先に結論
canonicalを入れる前に、最低限この6つを確認します。
- どのURLを正規にしたいか決める
- なぜ重複しているのか確認する
- 正規URLが実際に表示できるか確認する
- noindexやリダイレクトと矛盾していないか見る
- サイト内リンクが正規URLへ向いているか確認する
- 入れた後にHTMLソースでcanonicalを確認する
canonicalとは何か
canonicalは、HTMLのhead内に入れるlinkタグです。検索エンジンへ「このページの代表URLはこれです」と伝えます。
<link rel="canonical" href="https://example.com/sample-page/">
たとえば、同じ内容が「/sample」「/sample/」「?ref=mail」など複数のURLで見えてしまう時、代表URLを明確にするために使います。
最初に正規URLを決める
canonicalで一番大事なのは、どのURLを正規にするかです。ここがあいまいなまま入れると、後から確認が難しくなります。
- httpsのURLに統一する
- wwwありなしの方針を決める
- 末尾スラッシュありなしの方針を決める
- パラメータなしのURLを代表にするか確認する
- 実際にアクセスできるURLを指定する
canonicalを入れる前の確認表
| 確認項目 | 見る理由 |
|---|---|
| 正規URL | どのページを代表にするか決める |
| 重複理由 | canonicalで対応すべきか判断する |
| 表示状態 | 正規URLが404や500では困る |
| noindex | 正規URLをnoindexにしていないか見る |
| リダイレクト | 別URLへ飛ぶURLを指定していないか見る |
| 内部リンク | サイト内のリンクも正規URLへそろえる |
canonicalで直すべきではないケース
canonicalは重複のヒントを伝えるタグであり、すべてのURL問題を解決する道具ではありません。
- 存在しないページを直したい場合は404やリンク修正を優先する
- 完全に移転したページは301リダイレクトを検討する
- 見せたくないページはnoindexやアクセス制御を検討する
- 本文内容が大きく違うページ同士をcanonicalでまとめない
- 正規URLが未完成のページなら先にページを整える
よくある間違い
canonicalは目立たないタグなので、入れた後に気づかないまま間違いが残ることがあります。
- 全ページでトップページをcanonicalにしてしまう
- httpのURLを指定している
- 存在しないURLを指定している
- 別の記事URLを指定している
- noindexページをcanonical先にしている
- canonicalと内部リンクの向き先がバラバラ
PHPサイトで入れる時の注意
PHPサイトでは、共通のheadやmetaファイルでcanonicalを出している場合があります。その場合、各ページで同じcanonicalが出ないように注意します。すでに同じURLが出ている疑いがある場合は、全ページ同じcanonicalになっている時の見つけ方を確認します。
$canonical_url = "https://example.com/canonical-before-check-guide.php";
ページごとの変数でcanonicalを管理しているなら、ページごとに正しいURLを設定します。共通ファイルへ直接固定URLを書くと、全ページが同じcanonicalになる危険があります。
入れた後に確認すること
- HTMLソースにcanonicalが1つだけ出ている
- canonical先URLが正しい
- canonical先URLへアクセスできる
- 正規URLがnoindexになっていない
- 内部リンクも正規URLへ向いている
- Search Consoleで後から状態を確認する
AIに相談する時の依頼文
canonicalをAIに相談する時は、対象URL、似ているURL、正規にしたいURL、現在のhead内タグをまとめて渡します。
canonicalを入れるべきか相談したいです。
対象ページURL:
似ているURL:
正規にしたいURL:
現在のtitle:
現在のmeta description:
noindexの有無:
リダイレクトの有無:
サイト内リンクはどのURLへ向いているか:
canonicalで対応すべきか、リダイレクトやリンク修正を優先すべきか切り分けてください。
間違って全ページ同じcanonicalにならないように、PHPサイトでの注意点も教えてください。