link要素「rel="canonical"」のまとめ
link要素のrel="canonical"について調べてみました。
以下、主にGoogleの「rel="canonical" 属性について」の記載を引用しながら、FAQ形式で書いていますが、認識誤りがありましたらどこかでつぶやいてください。
1.利用目的は?
「検索エンジンのインデックス内での重複コンテンツ問題」解消のためです。
下の図で示すURLは、同じページにアクセスしているにもかかわらず、検索エンジンでは別のURLとしてインデックスされます。
link要素の「rel="canonical"」を利用することで、URLの正規化が行われ、重複コンテンツ問題を解消します。
2009年2月、Google、Yahoo!、Microosftの大手検索エンジン企業が、URLの正規化に対応する共通の取り組みとして、「rel="canonical"」のサポートを開始することを発表しました。
- Official Google Webmaster Central Blog – Specify your canonical
- Yahoo! Search Blog – Fighting Duplication Adding more arrows to your quiver
- Live Search Webmaster Center Blog – Partnering to help solve duplicate content issues(リンク切れ)
なお、この設定がインデックスに直接反映されるわけではなく、最適なインデックスを作成するための手がかりとして利用されるようです。
2.「canonical」の意味は?
canonicalは「基準」「標準」という意味のようです。
3.canonical URLの指定方法は?
以下の2通りがあります。
1つは1項に示したように、head要素に「rel="canonical"」のlink要素を追加する方法です(下)。
<link rel="canonical" href="http://www.example.com/" />
もう1つは、レスポンスのLink rel="canonical"というHTTPヘッダーでURLのcanonicalバージョンであることを指定する方法です(下)。仕様はRFC5988参照。
Link: <http://www.example.com/>; rel="canonical"
4.閲覧ページのコンテンツとcanonicalページのコンテンツは同一でないとダメか?
コンテンツは重複している必要がありますが、記述の順番など、若干の違いは許容範囲内のようです。
Googleによると「rel="canonical" 属性は、重複したコンテンツを含む複数のページから優先ページを指定する目的のみで使用してください。」とあり、その例として、以下が挙げられています。
あるページでは製品一覧がアルファベット順で表記されているのに対し、別のページでは同じ製品を値段または評価の順番で記載している場合など
同じ種類のダンスシューズを紹介するページが複数あり、商品写真のシューズの色以外のコンテンツがすべて一緒である場合などは、1番人気がある色のページをcanonicalページに指定
この部分だけ読むと、冒頭の画像で示した、「異なるURLで同一ページにアクセスすると別インデックスされる問題」と性質が異なるように見えますが、冒頭の画像も「rel="canonical" 属性について」にある動画からの抜粋なので、対象になると思って良いと思います(動画をきちんと確認していないので、もしかしたら「冒頭の問題は既存の検索エンジンで解消済みだよ、はっはっはー」ってなっているのかもしれませんが)。
また上記より、重複していないコンテンツのcanonical URLは適正に機能しないと考えられます。例えばパーマリンクのページに、トップページのcanonical URLを指定した場合などです。
5.別ドメインのURLを指定できるか?
ネットを検索すると「別ドメイン指定では機能しない」という記載がありますが、以下ではGoogleの記載内容を引用します。
サーバーサイドのリダイレクトを作成できないウェブサーバーを使用しているときに、新しいドメイン名に移行する場合などでも利用できます。
rel="canonical"リンク要素は絶対的な指示ではなく、ヒントとしてみなされますが、Googleの場合は可能な限りこの要素を追跡します。
6.存在しないページを指定した場合は?
Googleは従来のアルゴリズムを使用して優先するページの特定を行います。
7.異なるスキームの指定は可能か?
例えば、httpによるアクセスについて、canonical URLにhttpsを指定することは可能です。
8.相対URLによる指定も可能か?
canonicalページは絶対URL/相対URLのどちらでも使用できますが、混乱や問題を避けるため、絶対リンクを推奨します。
9.複数の「rel="canonical"」のlink要素で異なるURLを記述した場合※は?
Googleは従来のアルゴリズムを使用して優先するページの特定を行います。
※「rel="canonical" 属性について」にある「複数のページが優先するページに指定されている場合」をこのように解釈しました。
10.canonical URLのチェーンは可能か?
rel="canonical" 属性の連鎖的に指定してもよいですが、確実に指定するためにはURLを直接指定してください。
11.はてなブックマークのブックマークレット動作
閲覧したページにcanonical URLが指定されていると、はてなブックマークのブックマークレット動作で、次のように「このページには別のURLが提示されています」が表示されます。
で、提示されているURLが同じページでないことがこれまで結構あったので、「以下のURLに変更」を安易にクリックしないよう気をつけましょう。
- ファイルを表示せずにダウンロードする方法
- 番号付きリスト(ol/li)の途中で番号を変更する方法
- HTML5のdl要素/dt要素/dd要素について
- HTML5のlocalStorageの使い方のまとめ
- HTML5文書のアウトラインを簡単に確認できる「HTML5 Outliner」
- 「Text run is not in Unicode Normalization Form C.」というHTML Validation Serviceの警告について
- フォームのオートコンプリートについて
- HTML5でタグをどれだけ省略できるか調べてみた
- HTML5+RDFaについて