web-dev-qa-db-fra.com

Comment puis-je empêcher Google d'indexer AJAX appels en Javascript?

Nous obtenons un certain nombre de résultats étranges sur Google EG:

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

Quand j'ai regardé "somepage", la fonction ajax n'est pas du tout mentionnée dans le code HTML, ce qui me fait supposer que Google est en train de chercher les fichiers javascript externes et de trouver cet appel AjaxFunction.aspx.

Ma question est: a) Est-ce possible? b) Si oui, comment puis-je l'arrêter?

5
Strontium_99

Je mettrais la fonction Ajax dans robots.txt :

Disallow: /somepage/AjaxFunction.aspx

Cela empêchera Google de l'explorer. Google n'indexe généralement pas les URL qu'il ne peut pas analyser. Il ne les indexera que si elles sont liées de manière visible, notamment de nombreux liens externes. Même si Google indexe l'URL, il n'indexera pas le contenu de l'URL. Google montrera "cette page a été bloquée par robots.txt" dans les résultats de recherche.

Dans de nombreux cas, il est souhaitable d'autoriser Google à analyser les URL Ajax. Ces URL peuvent fournir du contenu que vous souhaitez que Google indexe après que JavaScript l'ait écrit sur une autre page. Dans ce cas, robots.txt n'est pas approprié. Vous ne voulez tout simplement pas que Google inclue l'URL Ajax elle-même dans les résultats de recherche. Vous pouvez utiliser une directive en-tête pour cela:

X-Robots-Tag: noindex

Sur un serveur Apache, vous pouvez ajouter cet en-tête avec le code . Htaccess comme:

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

En code aspx, vous pouvez le définir comme ceci :

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