Testeur de robots.txt

Entrez une adresse et choisissez un robot. Nous récupérons le robots.txt du site, l’appliquons comme le dit la norme et vous disons si l’adresse est ouverte ou bloquée et quelle ligne en décide.

Le champ du jeton n’est lu que si « Un autre robot » est sélectionné. Les règles sont comparées au chemin et à la chaîne de requête : donnez donc l’adresse exacte, pas seulement le domaine.

Ou essayez en.wikipedia.org/w/index.php?title=Special:Search (Googlebot), www.nytimes.com/section/world (GPTBot), github.com/search?q=robots (Bingbot)

Un avis sur la porte, lu avant chaque visite

Avant de demander des pages à un hôte, un robot bien élevé réclame un seul fichier, /robots.txt. Le fichier liste les chemins que le propriétaire du site préférerait ne pas voir récupérés, triés selon le robot qui demande. Pendant des décennies, il n’a reposé que sur l’habitude. Il a reçu une norme écrite en 2022, la RFC 9309 et ce testeur suit ce texte.

Le fichier est fait de groupes. Un groupe commence par une ou plusieurs lignes User-agent et se poursuit avec des règles Allow et Disallow :

User-agent: *
Disallow: /cart/
Disallow: /*?sort=

User-agent: GPTBot
Disallow: /

Sitemap: https://www.example.com/sitemap.xml

Chaque hôte et chaque schéma a son propre fichier. Les règles de https://www.example.com ne disent rien de https://shop.example.com.

Comment le verdict est atteint

Il faut deux choix, dans cet ordre.

  1. Quel groupe. Le robot cherche un groupe qui nomme son propre jeton, sans tenir compte de la casse. S’il en trouve un, il obéit à ce groupe et à rien d’autre. Il ne se rabat sur User-agent: * que si aucun groupe ne le nomme. Cela piège les gens sans arrêt : ajoutez un court groupe pour Googlebot et vous avez libéré Googlebot de toutes les règles écrites sous *. Les groupes qui nomment le même jeton sont lus comme un seul. Quelques robots ont un second choix documenté, que le testeur applique. Googlebot-Image et Applebot suivent le groupe Googlebot quand ils n’ont pas le leur et YandexBot suit Yandex.
  2. Quelle règle. Dans le groupe, toute règle dont le motif correspond au début du chemin est candidate. La candidate au motif le plus long l’emporte, où qu’elle se trouve dans le fichier. Si un Allow et un Disallow de même longueur correspondent tous deux, Allow l’emporte. Si rien ne correspond, l’adresse est ouverte.

Les motifs sont comparés avec le chemin et la chaîne de requête, caractère par caractère et en tenant compte de la casse. Deux caractères sont spéciaux : * représente n’importe quelle suite de caractères et $ tout à la fin signifie « le chemin s’arrête ici ».

MotifCorrespond àNe correspond pas à
/fish/fish, /fish.html, /fishing/rods/Fish, /catfish
/fish//fish/, /fish/salmon/fish, /fish.html
/*.pdf$/guide.pdf, /docs/a.pdf/guide.pdf?v=2
/*?sort=/shoes?sort=price/shoes?page=2&sort=price

Le pourcentage d’encodage est uniformisé avant la comparaison : /caf%C3%A9 et /café sont donc le même chemin.

Lire le résultat

Le résumé donne le verdict, le numéro de la ligne décisive et le groupe qui s’est appliqué. Dessous, le fichier est affiché avec ses numéros de ligne. Les lignes du groupe appliqué portent une barre et la ligne décisive est surlignée. Quand plusieurs règles correspondent, un petit tableau les liste avec la longueur de leur motif et cette longueur suffit pour voir pourquoi l’une l’emporte sur l’autre. Un dernier tableau donne le verdict pour les autres robots de la liste, car un même fichier les traite souvent différemment.

L’état du fichier compte autant que son contenu :

  • 404 ou tout autre 4xx : il n’y a aucune règle, toutes les adresses sont ouvertes. Cela inclut le 403. Interdire le fichier n’interdit pas l’exploration.
  • 5xx, 429 ou pas de réponse : le robot ne peut pas connaître les règles et doit rester hors de tout le site jusqu’au retour du fichier.
  • 200 avec une page web à l’intérieur : aucune ligne valide, donc rien n’est bloqué. Cela arrive quand un site répond à toute adresse inconnue par sa page d’accueil.

Le testeur signale aussi les lignes qu’un robot ignorera : des règles placées avant toute ligne User-agent, des noms de directives inconnus ou mal orthographiés, des motifs qui ne commencent pas par /, un fichier de plus de 500 Kio, des lignes Noindex: (Google les a abandonnées en 2019) et Crawl-delay, que Googlebot ignore.

Ce qu’un robots.txt ne peut pas faire

C’est une demande. Les moteurs de recherche et les grandes entreprises d’IA disent la respecter. Les aspirateurs de contenu et les scanners de sécurité ne la respectent pas : n’y listez donc jamais un chemin secret. D’ailleurs, le fichier est public et n’importe qui peut le lire.

Bloquer une page ne la retire pas. Une page bloquée n’est pas récupérée, mais son adresse peut quand même apparaître dans les résultats quand d’autres pages y renvoient. Pour garder une page hors d’un index, laissez-la explorable et répondez avec noindex dans une balise meta ou un en-tête X-Robots-Tag.

Cette page lit le fichier une fois, depuis notre serveur. Un robot peut en garder une copie vieille d’un jour et un site peut servir un fichier différent à des visiteurs différents. Chaque robot a aussi son propre analyseur. Là où la norme est muette, sur les directives mal orthographiées par exemple, nous lisons la ligne comme le fait l’analyseur publié de Google et nous vous le disons.

Questions fréquentes

Comment bloquer un robot mais autoriser tous les autres ?

Donnez à ce robot son propre groupe avec Disallow: / et laissez les autres tranquilles :

User-agent: GPTBot
Disallow: /

Les robots qui ne trouvent aucun groupe à leur nom utilisent le groupe *, ou n’ont aucune restriction s’il n’y en a pas.

Pourquoi ma page est-elle bloquée alors qu’il y a une règle Allow pour elle ?

Il y a deux possibilités. Un motif Disallow plus long correspond aussi et le motif le plus long l’emporte. Ou bien la règle Allow se trouve dans un groupe que le robot ne lit pas, puisqu’un robot qui a son propre groupe ignore entièrement le groupe *. Le testeur montre quel groupe s’est appliqué et toutes les règles qui ont correspondu.

Disallow retire-t-il une page de Google ?

Non. Cela empêche Google de récupérer la page, pas d’en lister l’adresse. Mettez noindex sur la page elle-même et ne la bloquez pas dans le robots.txt, sinon le robot ne voit jamais la consigne.

Le robots.txt tient-il compte de la casse ?

Les chemins, oui : Disallow: /Private ne couvre pas /private. Les noms de directives et de robots, non : user-agent: googlebot et User-Agent: Googlebot veulent dire la même chose.

Que signifie une ligne Disallow vide ?

Disallow: sans rien après ne bloque rien. Un groupe qui ne contient que cette ligne dit « ce robot peut tout récupérer ». Disallow: /, avec la barre oblique, bloque tout le site.

Combien de temps faut-il pour qu’un changement du robots.txt s’applique ?

Les robots gardent une copie du fichier et la norme leur demande de ne pas l’utiliser plus de 24 heures. Attendez-vous à ce qu’une nouvelle règle soit suivie en un jour, parfois moins. Un nouveau Disallow ne retire pas les pages déjà présentes dans un index.