rel = "canonical" を正しく理解して設定する

HTML/CSS のロゴ

rel="canonical"は link 要素に指定される属性と、その値です。 href 属性とその値の URL と合わせて、head 要素内で指定します。 rel="canonical" は、href 属性に指定された URL を優先するように検索エンジンに指示を出します。

canonical リンクタイプは、Google, Yahoo!, Bing(Microsfot) の検索エンジンが採用しています。 いずれの検索エンジンの場合にも、canonical の設定は強く影響が出ます。 Google によれば canonical の設定は、 参考情報ではあるものの、重要な参考情報としています。

具体的な canonical の指定

例えば次の 2 つの URL、URL_AURL_B があるとき、URL_B を捜索しに来た検索エンジンは、URL_A のページを優先するようにします。

  • URL_A : 特に何も指定されない
  • URL_B : rel="canonical" href="URL_A"

このとき、URL_B に指定される rel="canonical" は次のようになります。

<link rel="canonical" href="URL_A">
canonical の具体的な例

canonical の目的

canonical の基本的な目的や利点は 2 つと考えて良いと思います。

  1. 類似する内容を示したページが複数存在するとき、どれか 1 つのページのみを優先することでユーザの利便性を高める。
  2. 自動生成される複雑な URL を正規化(1つに統一)する。端的には、検索エンジンが認識するべき URL を明確化する。

内容が重複するページを大量に設置して情報量を水増しし、アクセス数や広告表示数を稼ごうとするスパムが存在します。 それらはユーザの利便性を低下させるため、検索エンジンは内容の重複するページを良しとせず、検索結果から排除しようとします。 いわゆるペナルティです。例えば、検索結果に同じような内容を示したページが連続して表示されることが良くないことは明らかです。

検索エンジンが内容の重複するページを排除する一方で、一般的な Web サイトの運営であっても、 ページの内容が重複してしまうケースは多々あります。したがって canonical のような仕組みが必要とされます。

canonical の指定が効果的なケース

canonical の指定が効果的なケースはいくつか考えられます。

色違いの商品ページなど似たページがいくつか存在する場合

あるシャツを販売するページあるとして、その URL を URL_SHIRT とします。 また、そのシャツは赤、白、青の 3 色が用意されているとします。

ユーザがそれぞれの色を選択したとき、それらの URL は、URL_SHIRT?color=RED または URL_SHIRT?color=WHITE のようにパラメータが与えられるか、 あるいは、あらかじめページが分割されていて、URL_SHIRT/BLUE となるでしょう。

このとき、このサイトや検索エンジンが示すべきページは、その商品のトップページ(ここではシャツ)です。 したがって、赤、白、青のそれぞれのパターンのために出力されるページは、 商品トップページに対する canonical が設定されるべきです。

自動生成ページや CMS が複数の URL を生成する場合

よく似た内容のページが存在しないとき、そのページ自身が自身に対して canonical を設定することは意味がないように見えます。 しかしながら、次のような場合には、そのページ自身に対する canonical の設定は有効であるといえるでしょう。

<link rel="canonical" href="OWN_URL" />
"OWN_URL" ページ内で設定される、自身を示す canonical の例

ページを自動で生成するシステムや CMS は同じページを示す複数の URL を生成する可能性があります。 例えば、検索パラメータなどを指定する場合など、特定のページを示すための手順が複数存在する場合です。 具体的には WordPress などは複数の URL を生成する可能性があります。

管理者自身が複数の URL を扱っているつもりがなくても、システムが複数の URL を生成することは良くありますし、 場合によってはページの外見には見えない形で出力していることもあるでしょう。

また、利用者が何らかのパラメータを指定した特殊な URL を取得するとき、、 その URL が、他の異なるサイトのページにリンクとして掲載されることもあるでしょう。

より具体的な例 : 異なるカテゴリの同じコンテンツ

あるページがカテゴリによって管理されるサイトは注意が必要です。 複数のカテゴリにまたがって表示されるページは、カテゴリ毎に異なる URL パラメータが与えられる可能性があります。

例えば、カテゴリ A とカテゴリ B に属する URL が存在するとき、 カテゴリA / ページURLカテゴリB / ページURL が存在する可能性があります。 カテゴリ A やカテゴリ B がパラメータによって制御されているのか、ファイルパスのように制御されているのかは、システムに依存します。

いずれにせよ、同じコンテンツを持ったページが複数の URL でアクセスできることは、基本的には歓迎されるものではありません。

Reference