web-dev-qa-db-ja.com

Google検索結果にrobots.txtで許可されていないページが含まれているのはなぜですか?

私のサイトには検索エンジンを遠ざけたいページがいくつかあるので、robots.txtファイルで次のようにそれらを禁止しました:

User-Agent: *
Disallow: /email

しかし最近、Googleが検索結果でこれらのページへのリンクを時々返すことがあることに気付きました。なぜこれが起こるのですか、どうすれば停止できますか?

バックグラウンド:

数年前、私は私の親relativeが関係しているクラブの簡単なウェブサイトを作りました。彼らは自分のページにメールリンクを入れたいと思っていました。スパムリストは、直接mailto:リンクを使用する代わりに、それらのリンクが自分のサイトで実行されている単純なリダイレクタ/ アドレスハーベスタトラップ スクリプトを指すようにしました。このスクリプトは、実際のmailto: URLへの301リダイレクトを返すか、疑わしいアクセスパターンを検出した場合、多くのランダムな偽の電子メールアドレスとそのようなページへのリンクを含むページを返します。正当な検索ボットをトラップから遠ざけるために、上記のrobots.txtルールを設定し、正当なリダイレクタリンクとトラップページの両方のスペース全体を許可しません。

しかし、つい最近、クラブのメンバーの1人がGoogleで自分の名前を検索しました。最初のページの結果の1つがリダイレクタースクリプトへのリンクであり、電子メールアドレスで構成されるタイトルbymyname。もちろん、彼らはすぐに私に電子メールを送り、Googleのインデックスからアドレスを取得する方法を知りたいと思っていました。 Googleがrobots.txtルールに違反しているように思われるので、GoogleがそのようなURLのインデックスを作成することをまったく知らなかったので、私も非常に驚きました。

私は何とかGoogleに削除リクエストを送信しましたが、うまくいったようですが、Googleがそのようなrobots.txtを回避している理由と方法、および許可されていないページがないことを確認する方法を知りたい検索結果に表示されます。

Ps。実際に考えられる説明と解決策を見つけたので、この質問の準備中に以下に投稿しますが、 'とにかく尋ねる 他の誰かが同じ問題を抱えているかもしれない場合に備えて。あなた自身の答えを投稿してください。また、他の検索エンジンもこれを行うかどうか、そして同じソリューションがそれらに対しても機能するかどうかを知りたいと思います。

18
Ilmari Karonen

Googleは、クロールした他のページからそれらのURLへのリンクがある場合、robots.txtで許可されていないURLをインデックスに意図的に含めているようです。 ウェブマスターツールのヘルプページ を引用するには:

「Googleはrobots.txtによってブロックされたページのコンテンツをクロールまたはインデックス登録しませんが、ウェブ上の他のページでURLを見つけた場合、URLのインデックスを作成できます。その結果、ページのURL、サイトへのリンクのアンカーテキストやOpen Directory Project(www.dmoz.org)のタイトルなどの公開情報は、Googleの検索結果に表示されます。」

どうやら、Googleはrobots.txtDisallowディレクティブを、indexing itではなく、crawlingに対する禁止として解釈します。たとえそれが私に弁護士を務める規則を軽視しているとしても、それは技術的には有効な解釈だと思います。

このインタビュー記事 では、GoogleのMatt Cuttsがもう少し背景を説明し、なぜこれを行うのかについて合理的な説明を提供しています。

「初期には、非常に人気のある多くのウェブサイトはクロールされたくありませんでした。たとえば、eBayとNew York Timesは検索エンジンを許可していませんでした。少なくともGoogleがそこからページをクロールできませんでした。米国議会図書館には、検索エンジンでクロールすることは許可されていないというさまざまなセクションがありました。したがって、誰かがGoogleに来てeBayを入力したとき、eBayをクロールしていないため、eBayを返すことができませんでした。だから、私たちが思いついた妥協案は、robots.txtからクロールしないことでしたが、見たURL参照を返すことができました。」

これらのページの両方で推奨される解決策は、あなたがしないページに noindex meta tag を追加することですインデックスを作成する必要はありません。 (X-Robots-Tag HTTPヘッダーはHTML以外のページでも機能するはずです。ただし、リダイレクトで機能するかどうかはわかりません。逆説的に、これはallow Googlebotがこれらのページをクロールする(robots.txtから完全に削除するか、Googlebotの別のより寛容なルールセットを追加する)。そうしないと、最初はメタタグが表示されないためです。

リダイレクト/スパイダートラップスクリプトを編集して、メタタグとX-Robots-Tagヘッダーの両方をnoindex,nofollowの値で送信し、Googlebotがrobots.txtのスクリプトのURLをクロールできるようにしました。 Googleがサイトのインデックスを再作成すると、機能するかどうかがわかります。

25
Ilmari Karonen

これにより、Google(および優れたボット)がこれらのページをクロールしてコンテンツを読み取ることを防ぐことができますが、SERPにリンクされている場合は、次の形式のURLのみのリンクを表示できます。

URL only link in Google SERPs

ご覧のとおり、タイトルや説明はなく、文字通りURLのみです。当然、これらのタイプの結果は、明示的に検索しない限り、通常SERPから省略されます。

そして答えで述べたように、SERPにURLをまったく表示したくない場合は、ロボットを許可する必要がありますが、noindexメタタグを含めます。

5
MrWhite