GoogleやYahoo!からページ内の特定のコンテンツだけをインデックスからブロックすることは可能か?

検索エンジンがインデックスするのをブロックするには、robots.txtmeta noindexタグを使います。

では、コンテンツの一部分だけをインデックスされないように指示することは可能でしょうか?

「コメントを書く」や「印刷する」といった言葉が頻繁に出てくるとそれらのキーワード密度が高くなりすぎるのでインデックスさせないようにする方法はあるか?

こんな質問にGoogleのMatt Cutts氏が回答しました。

結論だけいうと不可能です。

そもそもキーワード密度など気にする必要はないとのことです。
キーワードの出現回数が問題になるのはよっぽどくり返し大量に使っている場合になります。
普通はキーワード密度なんて心配することはないそうです。

自分でターゲットにしているキーワードがユーザーが読むのに不自然なくらい連発されているならそれは自分で減らせばいいだけの話ですね。

そもそも今どきの検索エンジンはキーワードの出現回数や出現頻度なんて見てないでしょう。

キーワードを使いすぎてペナルティを食らうというのはありそうですが、キーワード出現頻度が何%だからプラスに作用するというのはまずないはずです。

「コメントを書く」や「印刷する」といったフレーズがウザくなるほど繰り返されているサイトって想像しづらいし、もしあるとしたら一部分のインデックスを防ぐよりもページの構成そのものを見直した方がよさそうですよね。

一方Yahoo!はページ内の一部のコンテンツをメインのトピックとは関係ないと伝えることが可能です。

上で紹介したビデオでMatt Cutts氏が少し触れています。
この前解説した「Googleはスニペットに表示させたくない記述も指示できない」のビデオでも触れていました。

どんな方法だったのか思い出せなかったのですが、自分のブログに書いてました。(笑)
class=”robots-nocontent”という属性を利用します。

Yahoo!インフォセンターにも記載されています。

ウェブページ内の重要性の低い要素を検索エンジンに通知

ウェブページには、ヘッダやフッタ、ナビゲーションメニュー、著作権表記、広告など、ウェブページの内容との関連性が常に高いとは限らない部分があります。このような部分は、HTMLタグ(<div><span>など)にclass="robots-nocontent"属性を指定することで、ウェブページの主な内容とは関連性の低い内容であることを、YSTに通知できます。

Matt Cutts氏によれば、class=”robots-nocontent”を実際に使っているサイトはほとんど存在しないとのことです(使ってないというより存在を知らないですよね?)。
Googleはサポートする予定もなさそうです。

まとめます。

Googleではコンテンツの一部分だけのインデックスをブロックすることはできません。
もしブロックしたい理由が特定の語句の出現頻度にあるなら、尋常ではないくらい繰り返されているのでなければ心配することはありません。

Yahoo!ではコンテンツの一部分の重要性が低いことを通知できますが、Googleはサポートしていません。

【P.S.】
Yahoo!のclass=”robots-nocontent”属性を使ってる人っていますか?
きちんと機能してるんですかね。
これを使ったらフッターのコピーライトとかどうでもいいような記述がSERPのスニペットに採用されるのを防げますかね。