canonical(カノニカル)とは?
URL正規化で重複を防ぐ
canonicalとは
canonicalタグは、「このページの正規URLはこれです」と検索エンジンに伝えるためのHTMLタグだ。書き方は<link rel="canonical" href="https://example.com/page.html">。
同じ内容のページが複数のURLでアクセスできてしまうケースがある。たとえばURLにパラメータがついた場合(?ref=twitterなど)、httpとhttpsの両方でアクセスできる場合、www有無の違いなどだ。こういうとき、Googleがどちらを「本物」として評価すべきか迷わないよう、正規のURLを教えてあげるのがcanonicalタグの役割になる。
このブログでの使い方
全ページにcanonicalを設置
このブログでは全ページのheadタグにcanonicalタグを入れている。自分自身のURLを指定する形で、「このURLが正です」と明示している。重複が発生していなくても、念のため設置しておくのが一般的だ。
リダイレクトページでの指定
ページを移転したとき、旧URLにcanonicalタグで新URLを指定すると、検索エンジンに「評価は新URLに集約してほしい」と伝えられる。meta refreshによるリダイレクトと組み合わせて使うことがある。
覚えておきたいポイント
canonicalは「指示」ではなく「ヒント」
Googleはcanonicalタグを絶対的な指示ではなくヒントとして扱う。ページ内容が大きく異なるのに同じcanonicalを指定するなど、不適切な使い方をするとGoogleが無視することもある。
自己参照canonicalでも設置する意味がある
自分自身のURLを指すcanonicalタグでも、パラメータ付きURLや大文字小文字違いのURLからのアクセスを正規化できるため、設置しておくのが安全だ。
FAQ
Q. canonicalタグとは何ですか?
A. HTMLのheadタグに記述するlink要素で、ページの正規URLを検索エンジンに伝えるためのタグです。重複コンテンツの問題を防ぐために使われます。
Q. canonicalタグを設置しないとどうなりますか?
A. 同じ内容のページが複数URLに存在すると、Googleが評価を分散させてしまう可能性があります。検索順位に悪影響が出ることがあります。
Q. canonicalと301リダイレクトの違いは?
A. 301リダイレクトはユーザーを別URLに転送します。canonicalはユーザーはそのまま閲覧でき、検索エンジンにだけ正規URLを伝えます。ページが完全に移転した場合は301、両方のURLを残したい場合はcanonicalが適しています。
Q. 自分自身を指すcanonicalに意味はありますか?
A. あります。URLパラメータが付いたアクセスやwww有無の違いを正規化できるため、自己参照canonicalでも設置しておくことが推奨されています。
Q. canonicalタグはGoogleに必ず従ってもらえますか?
A. いいえ。Googleはcanonicalをヒントとして扱い、最終的な判断はGoogle側が行います。ページ内容と矛盾する指定は無視されることがあります。