canonicalとは
canonicalとは、検索エンジンに優先的なURLを伝える目的でWebサイトに設置するメタタグのことです。これは、類似または重複するWebページがある場合に、どちらを優先して評価するのかを検索エンジンに伝えるものです。
たとえばあるドメインにおいて、httpsとhttpや、wwwあり・なしのURLが併存している場合、同じサイトでスマホとパソコン版のURLが異なる場合、サイト内に重複・類似しているコンテンツがある場合などに設置されます。たとえばECサイトにおいて、同じ商品でも色違いやサイズ違いの商品が複数のページに渡っている場合などが挙げられます。canonicalタグを設置することによって、どのページを優先したいのかを検索エンジン側に伝えることができ、それによって適切な評価をしてもらうことができます。
canonicalを行わなかった場合、想定していないページが検索結果に反映されたり、ページの評価が分散したり、コピーコンテンツと誤認されたりするなどのデメリットが生じます。 canonicalタグの設置によりこうしたデメリットを回避し、意図通りの検索結果の表示を期待できます。
canonicalタグを入れるには、重複サイトのHTMLの編集が必要です。headタグ内にrel="canonical"と正規サイト(最も重要なサイト)のURLをリンク要素に記述することで設置ができます。また、URLを書く際は、間違いが起きないように絶対パスで書くことが推奨されています。
設置するときのよくある間違いとして、下記のことが挙げられます。URLの記述を、絶対パスのつもりで相対パスを書いてしまう。意図しないcanonicalの設置や、bodyタグの中に誤って入れてしまう。タグやリンク先を2つ以上書いてしまう。あるいはリンク先が指定されていない。ということなどが挙げられます。また、タグが2つ以上あると、タグ自体が無効になってしまいます。
ほかにURLを正規化する方法として、301リダイレクトが使われます。canonicalと同じく重複ページに対して使われる処理ですが、効果はまったく異なります。
301リダイレクトは、重複サイトに訪れた訪問者を、正規サイトへ転送することを目的として使われます。また、サイト評価も正規サイトへ引き継がれます。一方、canonicalは、検索エンジンに重複を知らせるためだけのもので、強制力はありません。そのため、ページ変更の場合は301リダイレクト。重複を検索エンジンに知らせたい場合は、canonicalといった使い分けをします。