web-dev-qa-db-fra.com

Pourquoi les résultats de recherche Google incluent-ils les pages interdites dans le fichier robots.txt?

J'ai des pages sur mon site que je veux éloigner des moteurs de recherche, je les ai donc interdites dans mon fichier robots.txt comme ceci:

User-Agent: *
Disallow: /email

Pourtant, j'ai récemment remarqué que Google renvoyait parfois des liens vers ces pages dans les résultats de recherche. Pourquoi cela se produit-il et comment puis-je l'arrêter?

Contexte:

Il y a plusieurs années, j'ai créé un site Web simple pour un club dans lequel un de mes parents était impliqué. Ils voulaient avoir des liens de courrier électronique sur leurs pages. Essayez donc d'éviter que ces adresses ne se retrouvent trop souvent. Listes de spam, au lieu d’utiliser des liens directs mailto:, j’ai fait pointer ces liens vers un simple redirecteur/ piège de collecte d’adresses exécuté sur mon propre site. Ce script renverrait soit une redirection 301 vers l'URL réelle mailto:, soit, si elle détectait un motif d'accès suspect, une page contenant de nombreuses adresses de messagerie factices et des liens vers d'autres pages similaires. Pour éloigner les robots de recherche légitimes du piège, j'ai défini la règle robots.txt ci-dessus, interdisant tout l'espace des liens de redirection et des pages de piège légitimes.

Récemment cependant, une des personnes du club a cherché sur Google leur nom et a été assez surprise lorsque l'un des résultats de la première page était un lien vers le script de redirection, suivi d'un titre contenant leur adresse e-mail. par mon nom. Bien sûr, ils m'ont immédiatement envoyé un e-mail et voulaient savoir comment extraire leur adresse de l'index de Google. J'ai également été assez surpris, car je ne savais absolument pas que Google indexerait ces URL, ce qui constituerait une violation de ma règle robots.txt.

J'ai réussi à soumettre une demande de suppression à Google, et cela semble avoir fonctionné, mais j'aimerais savoir pourquoi et comment Google contourne mon robots.txt de cette manière et comment faire en sorte qu'aucune des pages interdites apparaîtra dans leurs résultats de recherche.

Ps. J'ai en fait découvert une explication possible et une solution, que je posterai ci-dessous, tout en préparant cette question, mais je pensais le demanderais quand même au cas où quelqu'un d'autre aurait le même problème. S'il vous plaît, n'hésitez pas à poster vos propres réponses. Je souhaiterais également savoir si d'autres moteurs de recherche le font également et si les mêmes solutions fonctionnent aussi pour eux.

18
Ilmari Karonen

Il semble que Google inclue délibérément les URL non autorisées dans robots.txt dans leur index s'il existe des liens vers ces URL à partir d'autres pages qu'ils ont explorées. Pour citer leurs pages d’aide Outils pour les webmasters :

"Bien que Google n'analyse pas et n'indexe pas le contenu des pages bloquées par le fichier robots.txt, nous pouvons toujours indexer les URL si nous les trouvons sur d'autres pages du Web. Par conséquent, l'URL de la page et, éventuellement, d'autres. Les informations accessibles au public, telles que le texte d'ancrage dans les liens vers le site ou le titre du projet Open Directory (www.dmoz.org), peuvent apparaître dans les résultats de la recherche Google. "

Apparemment, Google interprète une directive Disallow dans robots.txt comme une interdiction d'explorer la page et non contre de l'indexer . Je suppose que c'est techniquement une interprétation valable, même si ça sent les règles me concernant.

Dans cet article d'interview , Matt Cutts, de Google, donne un peu plus de contexte et fournit une explication raisonnable de la raison pour laquelle ils le font:

"Au début, de nombreux sites Web très populaires ne voulaient pas du tout être explorés. Par exemple, eBay et le New York Times ne permettaient à aucun moteur de recherche, ou du moins à Google, d'explorer aucune page de celui-ci. Le Divers articles de la Bibliothèque du Congrès indiquaient que vous n'étiez pas autorisé à explorer un moteur de recherche. Ainsi, lorsque quelqu'un est arrivé sur Google et qu'il a tapé sur eBay, nous n'avons pas exploré eBay et nous ne pouvions pas renvoyer eBay. Le compromis que nous avons décidé de proposer était que nous ne vous explorerions pas à partir de robots.txt, mais nous pourrions renvoyer la référence d'URL que nous avons vue. "

La solution recommandée sur ces deux pages consiste à ajouter une balise méta noindex aux pages que vous ne souhaitez pas indexer. (L'en-tête HTTP X-Robots-Tag devrait également fonctionner pour les pages non HTML. Je ne sais pas s'il fonctionne sur les redirections.) Paradoxalement, cela signifie que vous devez autoriser Googlebot pour explorer ces pages (soit en les supprimant entièrement de robots.txt, soit en ajoutant un ensemble de règles distinct, plus permissif pour Googlebot), car sinon il ne pourrait pas voir la balise méta en premier lieu .

J'ai modifié mon script d'interruption de redirection/spider pour envoyer à la fois la balise méta et l'en-tête X-Robots-Tag avec la valeur noindex,nofollow et permis à Googlebot d'explorer l'URL du script dans mon robots.txt. Nous verrons si cela fonctionne une fois que Google a réindexé mon site.

25
Ilmari Karonen

Il est vrai que si cela devrait empêcher Google (et les bons robots) d'explorer ces pages et de lire leur contenu, ils peuvent toujours afficher un lien uniquement URL dans les SERP s'ils sont liés, sous la forme:

URL only link in Google SERPs

Comme vous pouvez le constater, il n’ya pas de titre ou de description, c’est littéralement l’URL. Naturellement, ces types de résultats sont généralement omis des SERP, à moins que vous ne les recherchiez explicitement.

Et comme vous l'avez mentionné dans votre réponse, si vous ne souhaitez pas que l'URL apparaisse dans les SERP, vous devez autoriser les robots mais inclure une balise méta noindex.

5
MrWhite