Quelle est la bonne façon de gérer Autoriser et Interdire dans robots.txt?


8

J'exécute un robot d'indexation à grande échelle. Nous nous efforçons de faire fonctionner le robot dans les normes de la communauté acceptées, et cela inclut le respect de robots.txt. Nous recevons très peu de plaintes concernant le robot, mais lorsque nous le faisons, la majorité concerne notre gestion de robots.txt. Le plus souvent, le Webmaster a fait une erreur dans son fichier robots.txt et nous tenons à signaler l'erreur. Mais périodiquement, nous rencontrons des zones grises qui impliquent la manipulation de Allowet Disallow.

La page robots.txt ne couvre pas Allow. J'ai vu d'autres pages, dont certaines disent que les robots d'exploration utilisent une règle de "première correspondance", et d'autres qui ne spécifient pas. Cela crée une certaine confusion. Par exemple, la page de Google sur robots.txt avait l'habitude d'avoir cet exemple:

User-agent: Googlebot
Disallow: /folder1/
Allow: /folder1/myfile.html

De toute évidence, une règle de "première correspondance" ici ne fonctionnerait pas, car le robot verrait Disallowle fichier et s'en irait, sans jamais analyser le fichier spécifiquement autorisé.

Nous sommes en clair si nous ignorons toutes les Allowlignes, mais nous pourrions alors ne pas explorer quelque chose que nous sommes autorisés à explorer. Nous allons manquer des choses.

Nous avons eu beaucoup de succès en vérifiant d' Allowabord, puis en vérifiant Disallow, l'idée étant que cela Allowdevait être plus précis que Disallow. En effet, par défaut (c'est-à-dire en l'absence d'instructions contraires), tout accès est autorisé. Mais alors nous rencontrons quelque chose comme ceci:

User-agent: *
Disallow: /norobots/
Allow: /

L'intention ici est évidente, mais cela Allow: /entraînera un bot qui vérifie d' Allowabord qu'il peut explorer quoi que ce soit sur le site.

Même cela peut être contourné dans ce cas. Nous pouvons comparer la correspondance Allowavec la correspondance Disallowet déterminer que nous ne sommes pas autorisés à explorer quoi que ce soit dans / norobots /. Mais cela tombe en panne face aux caractères génériques:

User-agent: *
Disallow: /norobots/
Allow: /*.html$

La question, alors, est-elle autorisée à ramper /norobots/index.html?

La règle de "première correspondance" élimine toute ambiguïté, mais je vois souvent des sites qui montrent quelque chose comme l'ancien exemple de Google, en mettant le plus spécifique Allow après le Disallow. Cette syntaxe nécessite plus de traitement par le bot et conduit à des ambiguïtés qui ne peuvent pas être résolues.

Ma question est donc la suivante: quelle est la bonne façon de faire les choses? Qu'attendent les webmasters d'un bot bien élevé en matière de manipulation de robots.txt?


Le simple fait de traiter toutes les directives dans l'ordre (de haut en bas) semble lever toute ambiguïté (y compris le traitement des modèles d'URL génériques , qui est officiellement "non défini"). Cependant, les principaux robots des moteurs de recherche (Googlebot, Bingbot, etc.) ne fonctionnent pas comme ça, donc ce n'est pas réalisable.
MrWhite

Réponses:


4

Une note très importante: la Allow déclaration doit venir avant la Disallow déclaration, peu importe la façon dont vos propres déclarations sont. Donc, dans votre troisième exemple - non, les robots ne vont pas ramper /norobots/index.html.

En règle générale, en règle générale, je mets d'abord les instructions allow, puis j'énumère les pages et les dossiers interdits.


Vous recommandez donc que je suive la norme "première règle de correspondance"? Autrement dit, le bot lit le fichier robots.txt et prend le premier Allow ou Disallow qui correspond à l'url en question?
Jim Mischel

1
Mais savez-vous si c'est l'interprétation généralement acceptée de robots.txt? Autrement dit, si je devais mettre en œuvre la norme "première règle de correspondance", serait-ce ce que la plupart des webmasters attendent?
Jim Mischel

4
La description de Autoriser dans l'article Wikipedia sur robots.txt - en.wikipedia.org/wiki/Robots_exclusion_standard#Allow_directive - (et plusieurs autres sites) dit que "la première règle de correspondance" est la norme. Comme c'est 100% sans ambiguïté et facile à mettre en œuvre et à prouver, c'est ce que j'ai choisi.
Jim Mischel

1
Merci d'avoir répondu à votre propre question :) Je ne savais pas trop comment répondre. Je ne connais pas la méthode généralement acceptée, mais c'est ainsi que je l'utilise depuis que j'ai commencé à travailler en tant qu'expert SEO et cela a toujours fonctionné correctement.
Vergil Penkov

1
L'ordre des instructions Allow et Disallow ne fait aucune différence pour Googlebot qui examine plutôt la spécificité. Bing aussi, mais je ne sais pas pour les autres moteurs de recherche, donc en cas de doute, permettez-moi d'abord.
pelms

2

Voici mon point de vue sur ce que je vois dans ces trois exemples.

Exemple 1
J'ignorerais le /folder1/répertoire entier sauf le myfile.htmlfichier. Puisqu'ils le permettent explicitement, je suppose qu'il était tout simplement plus facile de bloquer tout le répertoire et d'autoriser explicitement ce fichier au lieu de répertorier tous les fichiers qu'ils voulaient bloquer. Si ce répertoire contenait beaucoup de fichiers et de sous-répertoires, ce fichier robots.txt pourrait devenir rapidement difficile à utiliser.

Exemple 2
Je suppose que le /norobots/répertoire est hors limites et que tout le reste est disponible pour être analysé. J'ai lu cela comme "tout explorer sauf le répertoire / norobots /".

Exemple 3
Similaire à l'exemple 2, je suppose que le /norobots/répertoire est hors limites et que tous les .htmlfichiers qui ne se trouvent pas dans ce répertoire sont disponibles pour être analysés. J'ai lu ceci comme "analyser tous les fichiers .html mais n'explorer aucun contenu dans le répertoire / norobots /".

J'espère que l'agent utilisateur de votre bot contient une URL où ils peuvent trouver plus d'informations sur vos habitudes d'exploration et faire des demandes de suppression ou vous donner des commentaires sur la façon dont ils veulent que leur robots.txt soit interprété.


1
Vos réponses correspondent probablement à l'intention, à l'exception de la dernière, que je trouve quelque peu discutable. Dans ces cas spécifiques, je peux coder les robots qui se comportent correctement, mais il y a d'autres cas ambigus qui ne sont pas aussi faciles à déterminer. De plus, je recherche une solution générale. Et, oui, notre chaîne d'agent utilisateur a un lien vers notre page FAQ. Et bien que nous puissions décrire la façon dont nous traitons le fichier robots.txt, il serait préférable pour toutes les parties concernées si nous n'y étions pas obligés. Autrement dit, si tout le monde a géré les choses de la même manière. Mais cela ne semble pas être le cas.
Jim Mischel

Ce qui précède est la façon dont Googlebot traite vos exemples, comme cela peut être testé sur leur outil de test robots.txt (Outils pour les webmasters> URL bloquées). Google ne se soucie pas de savoir si vous accordez la priorité à ou non, mais dispose d'un algorithme qui détermine la spécificité, ce qui conduit à des résultats non évidents. Par exemple, si vous remplacez '/*.html$' par '/*myfile.html$' dans le 3e exemple, alors 'monfichier.html' est autorisé plutôt que d'être bloqué OU si vous perdez le '/' de fin de ' / norobots / ', les fichiers .html sont également autorisés.
pelms

Ah! Selon Wikipedia, Google examine simplement le nombre de caractères pour déterminer la directive à utiliser et dans le cas d'un "tirage" va de pair avec "Autoriser".
pelms
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.