robots.txt : quelle ligne décide vraiment, quand elles se contredisent
Un fichier de trente lignes peut en contenir trois qui s'opposent. La règle de priorité, et le piège du groupe générique.
contient une mesure de notre moteur
Un robots.txt n’est pas lu de haut en bas comme un texte : il est lu par
groupes, avec une règle de priorité.
Comment un agent lit ce fichier
1. Il cherche un groupe qui le nomme. Une ligne User-agent: portant
exactement son nom.
2. S’il en trouve un, il ignore complètement le groupe générique. C’est le point que presque tout le monde ignore : un groupe propre à un agent remplace le générique, il ne s’y ajoute pas.
3. À l’intérieur du groupe applicable, le motif le plus long gagne.
Disallow: /prive/ bat Allow: / pour une page dans ce dossier.
4. À longueur égale, l’autorisation gagne.
Le piège le plus courant
Vous écrivez un groupe générique restrictif, puis un groupe nominatif pour un agent, avec l’intention de lui ajouter une autorisation. Il n’héritera de rien du générique : son groupe doit être complet.
Symétriquement, un agent nommé dans un groupe permissif ne sera pas concerné par les restrictions du groupe générique, même si vous les pensiez générales.
La conséquence pratique
Écrivez chaque groupe comme s’il était seul. Un fichier plus long, plus répétitif, et sans ambiguïté.
Le second piège : plusieurs fichiers empilés
Un intermédiaire peut préfixer votre fichier de son propre contenu. Vous vous retrouvez avec deux groupes pour le même agent.
La norme prévoit la fusion des groupes de même agent, et l’autorisation l’emporte à longueur égale. Mais cela suppose que chaque éditeur d’agent implémente exactement cette fusion, et un analyseur qui retient le premier groupe rencontré vous laisse bloqué sans que vous puissiez le savoir.
La seule solution robuste : supprimer le blocage à la source, plutôt que de le contredire plus bas.
Comment vérifier sans se fier à personne
Ouvrez votre robots.txt servi, pas celui de votre dépôt. C’est le fichier
servi qui décide.
Notre moteur d’audit affiche, pour chacun des 12 agents surveillés, la ligne exacte qui l’autorise ou le bloque, et si elle vient de son propre groupe ou du groupe générique. C’est cette provenance qui permet de comprendre un verdict, et c’est ce qu’aucun testeur de robots.txt ne montre.