米GoogleウェブスパムチームのMatt Cutts氏が、ウェブマスターがページに設置した rel=canonical の記述に Google が従わない4つのケースについて解説している。
rel=canonicalは、類似コンテンツが複数のURLで展開されている場合に、どのURLをインデックスしたいかをGoogleに通知することができる属性。headセクションに記述しておく。
ウェブマスターが明示的に設定する属性であることから、Googleはrel=canonicalを重要なヒントとして処理し、他のアルゴリズム的な判断よりも rel=canonical を重視する。したがって、うっかり誤った記述を行うとサイト全体がインデックスから消滅してしまうような場合もあるので運用には注意が必要だ。
Googleもそうした「ウェブマスターのミス」があることを想定して、次のようなケースでは rel=canonical には従わない。第1に、canonical で設定したリンク先ページが 404 Not Found や存在しない場合だ。これは明らかにウェブマスターの誤記であると判断できるため、rel=canonical を無視する。
第2に、サイトがクラックされて、攻撃者がページに不正な rel=canonical を埋め込んだと判断される場合。
第3に、HTMLのbody要素に 記述された rel=canonical も無視する。オンラインにはWikiやコメント欄など、訪問者が自由にウェブページの一部を記述・追加することができるサービスがあるため、その属性の記述の信用性を判断できないほか、悪意ある利用が行われるリスクがあるためだ。
最後に、HTMLのheadセクション内の記述がおかしい場合も、rel=canonical を無視する場合がある。Googleは、headセクション内に通常の(本来headに記述されない)文章があった場合、ウェブマスターがheadを閉じ忘れたと推定して処理を行う。つまり、3点目にあげた通り body 内の記述と処理されるため、canonical を無視する。
headセクションの記述が正常であれば問題がないが、もし確実性を求めるなら rel=canonical はhead セクションの最初の1行目に記述することを推奨している。
A rel=canonical corner case
http://www.mattcutts.com/blog/rel-canonical-html-head/
rel="canonical" 属性について
http://www.google.com/support/webmasters/bin/answer.py?hl=ja&answer=139394
#
実際に rel=canonical の記述間違いをするサイト制作会社も結構多いので、慎重な運用が求められる。rel=canonical の記述の際に記述ルールを確認すると同時に、head セクション内への記述とそれの正確な記述も要件に加えておく必要がある。そうすると Matt Cutts氏がいうように「先頭の1行目」に記述する必要性はあくまで気休めであって、別にどっちでもいいんじゃないの?と思う。