ツバサのメモ帳
canonical(カノニカル)とは?URL正規化で重複を防ぐ

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側が行います。ページ内容と矛盾する指定は無視されることがあります。

ツバサ

ツバサ

EC関連の会社で働いています。少人数の職場なので、ささげ業務の手配から画像の外注管理、ページ更新、バイトさんへの作業指示まで守備範囲は広めです。Photoshopは苦手なので本格的な画像加工は外注に出していますが、何社も試した分、業者選びや納品チェックには慣れました。このブログは仕事の中で身につけたことの記録です。