rel = "canonical" を正しく理解して設定する
rel="canonical"
は link 要素に指定される属性と、その値です。
href 属性とその値の URL と合わせて、head 要素内で指定します。
rel="canonical" は、href 属性に指定された URL を優先するように検索エンジンに指示を出します。
canonical リンクタイプは、Google, Yahoo!, Bing(Microsfot) の検索エンジンが採用しています。 いずれの検索エンジンの場合にも、canonical の設定は強く影響が出ます。 Google によれば canonical の設定は、 参考情報ではあるものの、重要な参考情報としています。
具体的な canonical の指定
例えば次の 2 つの URL、URL_A と URL_B があるとき、URL_B を捜索しに来た検索エンジンは、URL_A のページを優先するようにします。
- URL_A : 特に何も指定されない
- URL_B : rel="canonical" href="URL_A"
このとき、URL_B に指定される rel="canonical"
は次のようになります。
canonical の目的
canonical の基本的な目的や利点は 2 つと考えて良いと思います。
- 類似する内容を示したページが複数存在するとき、どれか 1 つのページのみを優先することでユーザの利便性を高める。
- 自動生成される複雑な 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 の設定は有効であるといえるでしょう。
ページを自動で生成するシステムや CMS は同じページを示す複数の URL を生成する可能性があります。 例えば、検索パラメータなどを指定する場合など、特定のページを示すための手順が複数存在する場合です。 具体的には WordPress などは複数の URL を生成する可能性があります。
管理者自身が複数の URL を扱っているつもりがなくても、システムが複数の URL を生成することは良くありますし、 場合によってはページの外見には見えない形で出力していることもあるでしょう。
また、利用者が何らかのパラメータを指定した特殊な URL を取得するとき、、 その URL が、他の異なるサイトのページにリンクとして掲載されることもあるでしょう。
より具体的な例 : 異なるカテゴリの同じコンテンツ
あるページがカテゴリによって管理されるサイトは注意が必要です。 複数のカテゴリにまたがって表示されるページは、カテゴリ毎に異なる URL パラメータが与えられる可能性があります。
例えば、カテゴリ A とカテゴリ B に属する URL が存在するとき、
カテゴリA / ページURL
と カテゴリB / ページURL
が存在する可能性があります。
カテゴリ A やカテゴリ B がパラメータによって制御されているのか、ファイルパスのように制御されているのかは、システムに依存します。
いずれにせよ、同じコンテンツを持ったページが複数の URL でアクセスできることは、基本的には歓迎されるものではありません。