ロボットがページの特定の部分をクロールしないようにする


28

フォーラムのある小さなサイトを担当するウェブマスターとして、内部検索エンジンと外部検索(Googleを使用している場合など)の両方がユーザーの署名によって完全に汚染されている(長い間使用している)私のフォーラムでは署名が非常に理にかなっているので、署名とそれはフォーラムの経験の一部です。

だから基本的に私は今のところ2つのオプションを見ています:

  1. 署名を画像としてレンダリングし、ユーザーが「署名画像」をクリックすると、実際の署名(署名内のリンクなど)を含むページに移動し、そのページは検索でクロール不可として設定されます。エンジンスパイダー)。これはいくらかの帯域幅を消費し、いくつかの作業が必要になります(画像を生成するHTMLレンダラーなどが必要になるため)が、明らかにそれは問題を解決します(署名がユーザーは、しかし私のユーザーは、カスタムフォント/色/サイズなどを使用して、とにかく署名で非常に創造的ですので、それほど問題ではありません)。

  2. 署名を含むWebページのすべての部分をクロール不可としてマークする。

しかし、私は後について確信がありません:これはできることですか?Webページの特定の部分をクロール不可としてマークすることはできますか?

回答:


8

Stack Overflow でGoogleのnoindexタグに提供したのと同じ答えを次に示します。

robots.txtによってブロックされているiframeにそれらの部分を入れることで、Googleがページの一部を表示しないようにすることができます。

robots.txt

Disallow: /iframes/

index.html

This text is crawlable, but now you'll see 
text that search engines can't see:
<iframe src="/iframes/hidden.html" width="100%" height=300 scrolling=no>

/iframes/hidden.html

Search engines cannot see this text.

iframeを使用する代わりに、AJAXを使用して隠しファイルのコンテンツをロードできます。jquery ajaxを使用してこれを行う例は次のとおりです。

his text is crawlable, but now you'll see 
text that search engines can't see:
<div id="hidden"></div>
<script>
    $.get(
        "/iframes/hidden.html",
        function(data){$('#hidden').html(data)},
    );
</script>

AJAXを使用してコントロールを追加/挿入すると、同じものをクロールできなくなり、防止できますか?
プラナフBilurkar

AJAXが取得する場所がrobots.txtによってブロックされている限り。
スティーブンオステルミラー

このwebmasters.stackexchange.com/questions/108169/…を確認して、もしあれば提案してください。
プラナフBilurkar

AJAXが取得する場所がrobots.txtによってブロックされている限り、これについて詳しく説明してください。
プラナフBilurkar

2
Googleは、悪用を防ぐために、JavaScriptをクロールから隠すことを罰します。iframeについても同様ですか?
ジョナサン

7

別の解決策は、sigをスタイルが設定されたspanまたはdivでラップし、display:noneJavascriptを使用してそれを取り除くことで、Javascriptが有効なブラウザでテキストが表示されるようにすることです。検索エンジンは、それが表示されないことを知っているので、インデックスに登録しないでください。

HTML、CSS、およびjavascriptのこのビットはそれを行う必要があります。

HTML:

<span class="sig">signature goes here</span>

CSS:

.sig {
display:none;
}

javascript:

<script type="text/javascript"> 
$(document).ready(function()
  {
      $(".sig").show();
  }
</script>

jqueryライブラリを含める必要があります。


4
+1と私はそれについて考えましたが、それはさまざまなクモによる「クローキング」の一形態と見なされませんか?
-WebbyTheWebbor


1
かなりきれいだと思います:-)
paulmorriss

これは、最も厳密な定義では、クローキングと見なすことができます。しかし、彼はdocument.write( "");を使用してjavascriptですべての署名を印刷できました。Googleはjavascript内のインデックスを作成しません。support.google.com/customsearch/bin/…–
Athoxx

CSSを使用して非表示になっている場合でも、Googleはそのような段落をインデックスに登録できると考えています。最も安全なオプションは、HTMLにテキストをまったく含めないことです。(JavaScriptを使用して、実行時にテキストを挿入できます。)
wrygiel

3

私は同様の問題を抱えていました。cssで解決しましたが、javascriptとjqueryでも解決できます。

1-「disallowed-for-crawlers」と呼ぶクラスを作成し、Googleボットに見せたくないすべてのものにそのクラスを配置するか、そのクラスのスパン内に配置します。

2-ページのメインCSSには次のようなものがあります

.disallowed-for-crawlers {
    display:none;
}

3- disallow.cssというCSSファイルを作成し、それをクロールできないようにrobots.txtに追加します。これにより、クローラーはそのファイルにアクセスせず、メインcssの後にページへの参照として追加します。

4- disallow.css私はコードを配置しました:

.disallowed-for-crawlers {
    display:block !important;
}

JavaScriptまたはCSSで遊ぶことができます。許可されないクラスとCSSクラスを利用しました。:)それが誰かを助けることを願っています。


クローラーが.cssファイルにアクセスしないため(これは問題ですか?クローラーはいつ特定のcssファイルにアクセスしてクロールするのですか?)、単にdisplay:noneおよびクローラーがそれを理解していないため、これが機能するかどうかわかりません彼らはそれを索引付けしません。この場合でも、実際にコンテンツを人間のユーザーに表示するにはどうしますか?
ΣπύροςΓούλας

そのファイル(disallow.css)を見ることが許可されているため、ステップ4が人間のユーザーにロードされると、コンテンツが表示されます。そして、今日、尊敬すべき検索エンジンが行うCSSをロードするロボットについて、それは彼らがウェブサイトがモバイルフレンドリーかどうかを判断する方法です、それを尊重しないクローラーは心配する価値がありません、主要な検索エンジンはCSSとJavaScriptをクロールするページ、彼らはそれを約6年間やっていますか?おそらくもっとある。
ローランドレ

その主張を裏付ける情報源を提供できますか?参照してくださいwebmasters.stackexchange.com/questions/71546/...yoast.com/dont-block-css-and-js-filesを、最も重要なのは、ここwebmasters.googleblog.com/2014/10/...何を記述するが描かれているところ悪い習慣として。
ΣπύροςΓούλας

Googleに自分のWebサイトを通常どおり表示させ、すべてのCSSをブロックするのは悪い習慣であり、CSSを解釈するため悪い習慣ですが、この特定のケースでは、CSSのすべてではなく1つの特定のファイルをブロックしますGoogleがページのセクションを読み取れないようにすることについて。しかし、Googleにこれらのセクションをクロールさせたくないので、1つのCSS(すべてではなく、1つだけ)をブロックします。そして、あなたが言った主張をバックアップするには?クローラーがJSとCSSを読むのは?Googleウェブマスターツールにアクセスして「ロボットとして取得」を見ると、CSSとJSの読み方がわかります。
ローランドレ

加えて、私の特定のケースでは、Google Crawlerで怪しい何かをしたいということではなく、すべてのページで繰り返し表示される可能性のある情報のセクションをGoogleに読み込ませたくないだけです。電話番号、住所、関連製品、Googleがクロールするのに関係のない情報など。
ローランドレ

2

これを行う1つの方法は、プレーンテキストではなくテキストのイメージを使用することです。

Googleは最終的に画像からテキストを読み取るのに十分なほどスマートになる可能性があるため、完全に将来に対応できるとは限りませんが、少なくともしばらくはうまく機能するはずです。

このアプローチには多くの欠点があります。人が視覚障害者であれば、それは悪いことです。コンテンツをデスクトップコンピューターではなくモバイルデバイスに適合させたい場合、それは悪いことです。(等々)

しかし、それは現在(ある程度)動作する方法です。


alt&title tageを適切に使用した場合、これはどの程度機能しますか?
ジェイエン

試したことはありませんが、Googleがそれらをクロールする可能性が高いようです。これはこのアプローチの大きな制限です。
ジェームズフォスター

1

これは簡単。

ページを提供する前に、ボット、コンピューター、または電話のいずれであるかを知る必要があります。その後、それに応じてコンテンツを設定する必要があります。これは、今日の標準的な方法であり、一部のCMSの時代とコア機能です。

SEには、htaccessに配置できるユーザーエージェントに基づいてリダイレクトを行うための多くのソリューションがあります。これがフォーラムソフトウェアに適している場合は、同じDBから別のコードを実行して、Googleが必要とするものを手間やトリミングなしで提供できます。

または、PHPコードに「USER AGENT == Googlebotの場合、署名を表示しない」という小さな行を追加することもできます。

本当にそれができない場合は、ボットに提供するmod_proxyを取得し、それを使用して、ボットが見る必要のないphpコードが生成するものをすべて取り除きます。

技術的には、Googleは通常のサイト訪問者が見るものとは異なるページが検索エンジンに表示されることを承認していませんが、現在まで、BBCやブラウザ/ IP /訪問者固有のコンテンツを検索エンジン結果から提供する他のものを取り去っていません。また、ボットが「監禁」されているかどうかを確認する手段が限られています。

スクリプトでコンテンツをCSSで非表示にする代替ソリューションも、灰色の領域です。2011年6月20日のウェブマスターツールガイドラインによると、これは良い考えではありません。

http://www.google.com/support/webmasters/bin/answer.py?answer=66353

それは石で鋳造されたタブレットではないかもしれませんが、Googleによって最新のものです。

コンテンツを隠すトリックは、javascriptを持たない少数の人々では機能しませんが、これは大きな懸念ではないかもしれませんが、ドキュメントの読み込みを待ってから署名を表示することは満足のいく視聴体験ではありませんページが読み込まれたと思うと、隠された署名が表示されてコンテンツがページにプッシュダウンされるとジャンプします。このタイプのページ読み込みは、ローエンドのネットトップがある場合はいらいらする可能性がありますが、高速インターネット接続で高速開発者のマシンを使用している場合は目立たない場合があります。


6
@ʍǝɥʇɐɯ:ページにアクセスしている人に応じて異なるコンテンツを提供することはちょっと嫌われており、私が理解している限り、検索エンジンであなたを罰するかもしれません。私はpaulmorrisのJavaScriptソリューションが非常に好きです。
WebbyTheWebbor

@ʍǝɥʇɐɯ:パーソナライズされたコンテンツを提供することがゲームの名前である場合、JavaScriptも同様です。最後に、JavaScriptがインストールされていない(GMail、FaceBook、Google Docs、スタックオーバーフロー、Google + --yup I have it it has it it;)-など)で、Web全体が実際にうまく機能しないことを確認しました。JavaScriptが利用できないことが問題になるという誤った前提に基づいて、paulmorrisのソリューションを批判する必要はないと思います。
WebbyTheWebbor

@ʍǝɥʇɐɯ:あなたは非常に被写体に(GoogleのSEO担当)マットカッツからこれを好むことがあります。theseonewsblog.com/3383/google-hidden-text ことにより、優れたコメントだったことpaulmorris彼の優れた答えにコメントして掲載します。申し訳ありませんが、このようなフォーラムでJavaScriptを「愚かさ」と呼ぶのは、ほとんどトローリングです。
WebbyTheWebbor

...そして、次の質問を受け取ります:webmasters.stackexchange.com/questions/16398/…-「キーワードスタッフィング」はばかげています。ごめんなさい
ʍǝɥʇɐɯ

これは「クローキング」に該当するため、適切なプラクティスではないと考えています。
ΣπύροςΓούλας

0

いいえ、ロボットがページの一部をクロールするのを防ぐ方法はありません。ページ全体または何もないです。

Googleの検索結果のスニペットは通常、ページのメタ説明から取得されます。したがって、メタ記述タグにそれを配置することで、Googleにページの特定の部分を表示させることができます。ユーザー生成コンテンツでは、適切なスニペットを取得することは困難ですが、スレッドの最初の投稿を取得することはおそらく機能します。

私が考えることができる唯一の他の方法は、Javascriptを使用することです。paulmorrissのようなものが機能する可能性がありますが、HTML内にある場合でも検索エンジンはコンテンツのインデックスを作成すると思います。HTMLから削除し、Javascript文字列に保存してから、ページの読み込み時に追加し直すことができます。ただし、これは少し複雑になります。

最後に、覚えておくべきことが1つあります。Googleがスニペットにユーザーの署名を表示している場合、それがユーザーのクエリに最も関連する部分であると判断しました。


1
問題は、Googleがスニペットにユーザーの署名を表示することではなく、これらの特定のページが最初にGoogleで高いランクを獲得することです。ここでの問題は、正確に Googleは、彼らが実際にいないときSIGSが関連していると思うこと:私は意味、それは私の質問はすべてに約あるまさにです。
WebbyTheWebbor

@Webby、わかりません、なぜあなたはあなたのページを高くランキングしたくないのですか?あなたが話していることを見ることができるように、いくつかのサンプルページとクエリがありますか?Googleが検索結果にSIGを表示されている場合と、それはある、それはページ自体に関係のない場合でも、その検索クエリに関連します。
不機嫌なヤギ

1
例を挙げることはできませんが、私のサイト/フォーラムのランクを高くたいので、とてもうまくできています。問題は、検索結果(基本的には主題サイトであるためとにかくほとんどすべてが私のサイト/フォーラムのものです)の中で、実際のエントリーページが署名の間であふれているということです。私は、意味ない本当に私が質問に尋ねやりたいです。そして、写真またはJavaScriptになります。
WebbyTheWebbor

@Webby、あなたの応答は少しわかりにくいですが、ユーザー署名はすべて個別のページ(URL)であり、したがってSERPで個別の結果として表示されることを暗示しているようです。その場合、robots.txtを使用してこれらのページをブロックできます。それ以外の場合は、上記で説明したメタ記述ソリューションを試してください。ほぼ確実に問題を軽減できるためです。
不機嫌なヤギ

0

if部分のキーを提供するcaptchaにつながる「else」がある場合、ページをPHPに配置できます。

ユーザー資格情報がページで一致しない場合、空白ページが表示されるか、ログインページに送信されるため、あまり気にしません。

<?php
session_start();

if(empty($_SESSION['captcha']) or $_SESSION['captcha'] != $key){
    header("Location: captcha.php");
}

if(!empty($_SESSION['captcha']) and $_SESSION['captcha'] == $key){

"the page"

}
?>

$key セッションの値を追加するだけでは十分ではないため、現在の日のハッシュまたは変更されるものである必要があります。

キャプチャのサンプルを追加したい場合は、コメントを書いてください。


この回答は、Webサイトが使用している、または開発者がPHPを知っていることを前提としていますが、PHPは正しくない可能性があります。また、ユーザーにとってコンテンツにアクセスするのが難しくなりますが、これは良いことではありません。
ジョンコンデ

すべての人がPHPを知っているわけではないが、CAPTCHAは「草の色」であり、盲人でもそれを知っていることを購入できます。
アルフォンスマルクレン

-3

4
いいえ。GoogleoffとGoogleonは、Google検索アプライアンスでのみサポートされています。GooglebotはWeb検索ではそれらを無視します。参照:googleonとgoogleoffのコメントを使用して、Googlebotがページの一部をインデックスに登録できないようにできますか? Google検索アプライアンスのドキュメントにリンクし、リンクした記事へのコメントは、Googlebotでは機能しないと言っています。
スティーブンオステルミラー

@StephenOstermillerああそう!ダーン
ルークマダンガ16年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.