ほぼ同じ内容のコンテンツ、あるいは完全に同じ内容のコンテンツ、いわゆる重複コンテンツが存在する場合に使用するのがcanonicalタグです。 重複するページに重複元のオリジナルページをcanonicalタグで指定することにより、その重複ページはオリジナルページのコピーであることを検索エンジンに伝えることができます。 例えば、 http://example.com/ http://www.example.com/ http://example.com/index.html http://www.example.com/index.html 上記4つのURLは全て同じページを表すので、どのページにアクセスしても全く同じ内容が表示されます。 検索エンジンはこの4つのURLをそれぞれ個別に認識してしまう可能性があり、そうなってしまうとページに対する評価が分散し、目的のページが検索結果の上位化の妨げに繋がる恐れがあります。 そのため、複数存在するページのURLをオリジナルページへと導き、評価を分散させないことを「URLの正規化」といい、そのために使用する方法の1つがcanonicalタグです。
canonicalタグは、重複ページの<head>内に記述します。 http://www.example.com/ http://example.com/ http://example.com/index.html と3つページが存在しており、http://www.example.com/を正規のURLとして扱いたい場合、<head>内に
と記述することにより、他の2つのページは重複ページとして扱われず、http://www.exapmle.com/に評価が集約されます。 こういった場合以外にも、例えば自分のページのコンテンツを他のサイトでコピーして使っている場合、このまま放置しておけば重複コンテンツとして扱われ、評価も分散してしまいます。その際、提供先のページで自分のページを指定したcanonicalタグを設置してもらうことにより、「ここはコピーサイトで、提供元は○○です。」と検索エンジンに伝え、重複コンテンツとして扱われることもありません。 この他にも、ECサイトでのカラーバリエーションが異なるページや、スマホ用の別サイトが存在する場合など、重複コンテンツを防ぐために使われます。
canonicalタグを設置することによって301リダイレクトと同じようにページ遷移されると勘違いされますが、ページ遷移されることはありません。 あくまで検索エンジンに内部的に作用するものであり、表面的には何も変わらず、元のページ(canonicalタグを設置しているページ)のコンテンツを読むことができます。 canonicalで指定したページのURLに転送されたりはしません。 301リダイレクトの場合、強制的にページ遷移されるため、遷移前ページをクローラが読むことはできませんが、canonicalタグの場合、クローラは元のページを読みます。そのため、元のページにリンクがあれば、そのリンクを辿ってリンク先にPageRankを渡すこともありえます。 ページ遷移が必要な場合は301リダイレクトを使いましょう。何らかの理由で301リダイレクトが使用できない場合、代替としてcanonicalタグを使用しましょう。 他に挙げられる注意点として以下のものがあります。
canonicalタグは仕組みをしっかり理解して使わないと危険なものです。 301リダイレクトと同じだと誤解したり、誤った設置の仕方をしたりすると、検索結果の順位を上げるどころか悲惨な結果になる恐れもあります。 実際にあったトラブルでは、サブページにトップページのURLを指定したcanonicalタグを設置してしまえばトップページに評価が集約されて検索順位が上がるのではないかと思い、サブページ全てにcanonicalタグを設置してしまったというケースがあります。 このようなことをしてしまえば、トップページ以外はインデックスされず、検索結果にはトップページしか表示されないといった事態に陥ってしまいます。 例え、ほとんど内容が一緒でも、そのページにしかないユニークなコンテンツがあるのであれば、canonicalタグを使う必要はありません。 本当にcanonicalタグが必要であるページにのみ使用するようにしましょう。