米国版のGoogle Webmaster Central 公式ヘルプフォーラムで、重複コンテンツを防ぐためのrobots.txtの利用についてGoogleのヘルプに矛盾がありどちらが正しいのかという質問が投稿されました。
メインのページが検索結果に含まれるようにするには、robots.txt ファイルを使用してこのような重複ページがスパイダーに検出されないようにする必要があります。
Google では現在、robots.txt ファイルなどの方法を使用してウェブサイトの重複コンテンツがクローラでアクセスされないようにすることはおすすめしていません。
上ではrobots.txtを使えと言ってますが、下では使うなと言っています。
ヘルプの更新日は、この記事を書いている時点でどちらも2011年3月20日です。
どちらかが古いということはなさそうです。
重複コンテンツの発生を抑えるために、robots.txtを使うべきなのでしょうか?
それとも使うべきではないのでしょうか?
結論を言うと、使わないほうがよさそうです。
Google社員のJohn Mueller(ジョン・ミューラー)氏が次のようにコメントを返しています。
Just to be clear — using a robots.txt disallow is not a recommended way to handle duplicate content. By using a disallow, we won’t be able to recognize that it’s duplicate content and may end up indexing the URL without having crawled it.
For example, assuming you have the same content at:
A) http://example.com/page.php?id=12
B) http://example.com/easter/eggs.htm… and assuming your robots.txt file contains:
user-agent: *
disallow: /*?… that would disallow us from crawling URL (A) above. However, doing that would block us from being able to recognize that the two URLs are actually showing the same content. In case we find links going to (A), it’s possible that we’ll still choose to index (A) (without having crawled it), and those links will end up counting for a URL that is basically unknown.
On the other hand, if we’re allowed to crawl URL (A), then our systems will generally be able to recognize that these URLs are showing the same content, and will be able to forward context and information (such as the links) about one URL to the version that’s indexed. Additionally, you can use the various canonicalization methods to make sure that we index the version that you prefer.
明確にしておこう。
重複コンテンツを処理するのにrobots.txtのDisallowを使うのは推奨する方法ではない。Disallowを使うと、複製コンテンツだということを認識できずにクロールしないでそのURLをインデックスしてしまうことになるかもしれない。
たとえば下のURLで同じコンテンツを表示していたとする。
A) http://example.com/page.php?id=12
B) http://example.com/easter/eggs.htmそしてrobots.txtファイルに次のような記述があったとする。
user-agent: *
disallow: /*?こうすると、上のURL(A)へのクロールをGoogleは禁止される。しかし、そうしてしまうと2つのURLが実際には同じコンテンツを見せていることがGoogleには分からなくなってしまう。
(A)に張られているリンクを発見した場合、クロールしなくてもインデックスすることがあり得る。結果として、そのリンクは、基本的には中身の分からないページへのリンクになってしまう。
一方、URL(A)へのクロールが許可されていれば、私たちのシステムは2つのURLが同じコンテンツを見せていると通常は認識して、内容やリンクなどの情報をインデックスされている片方のバージョンのURLへ受け渡すことができる。
その上、自分が選んだバージョンのURLをGoogleにインデックスさせるためにさまざまな正規化の手段が使える。
robots.txtでブロックしてしまうと、クロールできないのでGoogleはそのページに何が書いてあるか分かりません。
2つ(以上)のページが同じコンテンツだったとしても、中身を見れないので同じかどうか判断できるはずがありませんね。
つまり重複コンテンツを認識できません。
またrobots.txtでブロックされていたとしても、リンクはそのブロックしたURLに張られたものとして評価します。
バックリンクが多く張られたときは、クロールせずともインデックスして検索結果に出すこともあります。
ブロックされていたとしてもそのURLへのリンクはそのURLへのリンクで、中身が分からない以上同じコンテンツのURLがあったとしても統合はしてくれません。
「してくれません」というよりは、中身が見えず同じだと分からないのでできるはずがありませんね。
内容が同じコンテンツだと分かってもらって初めて、正規化してもらえるわけですね。
重複コンテンツの発生を防止するためにrobots.txtを使用することは、現在は控えたほうがいいということになります。
John Mueller氏が最後に付け加えているように重複コンテンツを防ぐにはいくつか手段があります。
しかしGoogleは何もしなくても、重複コンテンツだと判断した場合 勝手に正規化してくれることがあります(必ずではないけれど)。
なので、仕組みを確実に理解できていないなら重複コンテンツがあってもそのままにしておいて、あとの処理は自分たちに任せろとも過去に言っています(でも現実には100%頼りにはできない)。
なお重複コンテンツを防ぐには次のような手段があります。
- 301リダイレクト
- noindex robot meta タグ
- rel=”canonical”タグ
- Googleウェブマスターツールの「使用するドメイン」
- Googleウェブマスターツールの「パラメータ処理」
- 動的URLの擬似静的化
- そのままで何もせずGoogleに任せる
以前はrobots.txtも含まれていましたが、もはや推奨すべき手段ではなくなったわけですね(実は1年半くらい前にはすでにそうなっていたりする)。
どの方法を使うかですが、状況に依存するし、併用できるものもあります。
たいていはこのブログのどこかに書いてあるので必要に応じて探してください。w
先日公開した「SEOビジネス大学オンライン」のチャプター5のビデオでも重複コンテンツを解説しています。
上にリストアップしたそれぞれの方法、特に上から3つは詳しく説明しています。
無料コンテンツなので登録後に自由に視聴・ダウンロード可能です。
最後にもう1つ。
海外のカンファレンスにいくと「重複コンテンツ」に関するセッションが必ずあって、参加者も多く質問もたくさん出ます。
でも日本では重複コンテンツが話題に挙がることってほとんどない気がします。
たぶん、多くのサイト管理者が重複コンテンツが引き起こす問題や重複コンテンツの存在自体を知らないからじゃないかと推測します。
重複コンテンツって、思っている以上に怖いんですよ。
ごくまれなケースとして、Google でのランキングの操作やユーザーへの偽装を意図した重複コンテンツが表示される可能性が認識された場合も、Google では関係するサイトのインデックス登録とランキングに対して適切な調整を行います。その場合、該当するサイトはランキングが低下するか、Google インデックスから完全に削除されて検索結果に表示されなくなる可能性があります。
※強調は僕の編集による
「ごくまれ」じゃなくて、重複コンテンツが問題でランキングが下がるケースは海外のフォーラムを見るとよく目にします。
しかも不正な意図はないのに勘違いされてです。
僕が関わったことのあるサイトでも、重複コンテンツが原因でインデックスされていないと疑われるトラブルが何回かありました。
パンダ・アップデートでも重複コンテンツは大敵ですよ。
重複コンテンツ(の怖さと対処法)について今一度復習しておくことをおすすめします。
Googleのヘルプと僕のブログの過去記事を参考にしてください。