web-dev-qa-db-ja.com

GoogleがJavascript内でAJAX呼び出しのインデックスを作成しないようにするにはどうすればよいですか?

Google EGには、いくつかの奇妙な結果が出ています:

http://www.somedomain.com/somepage/AjaxFunction.aspx?stuff=XXX&other=XXX 

「somepage」を見ると、HTML内でajax関数がまったく言及されていないため、Googleが外部のjavascriptファイルにスパイダーアウトしてこのAjaxFunction.aspx呼び出しを見つけていると思われます。

私の質問は:a)これは可能ですか? b)その場合、どうすれば停止できますか?

5
Strontium_99

Ajax関数をrobots.txtに入れます:

Disallow: /somepage/AjaxFunction.aspx

これにより、Googleがクロールできなくなります。 Googleは通常、クロールできないURLのインデックスを作成しません。それらが目立ってリンクされている場合にのみ、特に多数の外部リンクにインデックスが付けられます。 GoogleがURLのインデックスを作成しても、URLのコンテンツのインデックスは作成されません。 Googleは、検索結果に「このページはrobots.txtによってブロックされました」と表示します。

多くの場合、GoogleがAjax URLをクロールできるようにすることが実際に望ましいです。これらのURLは、JavaScriptが別のページに書き込んだ後にGoogleにインデックスを作成するコンテンツを提供する場合があります。その場合、robots.txtは適切ではありません。 Googleが検索結果にAjax URL自体を含めないようにするだけです。そのためにヘッダーディレクティブを使用できます。

X-Robots-Tag: noindex

Apacheサーバーでは、次のような。htaccessコードでヘッダーを追加できます。

<Files "AjaxFunction.aspx">
    Header append X-Robots-Tag "noindex"
</Files>

Aspxコードでは、それを設定できます このように

<% Response.AddHeader "X-Robots-Tag", "noindex" %> 
3