ツバサのメモ帳

canonical(カノニカル)とは?
URLの正規化で重複を防ぐ話

こんにちは、ツバサです。

ブログのHTMLテンプレートを作ってもらったとき、headタグの中に<link rel="canonical">という見慣れない記述があった。何のためのタグか調べたのでメモしておく。

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からのアクセスを正規化できるため、設置しておくのが安全だ。

ツバサ

ツバサ

EC関係の仕事をしています。このサイトは自分が調べたことの備忘録です。Photoshopは少し使えますが苦手で、ちょっとした画像補正はもっぱらスマホアプリ派。アプリで対応しきれない本格的なレタッチはプロに依頼しています。