EDIKKA LABORATOIRE OUVERTV1.0

REVUE ROBOTS.TXT / POLITIQUES D’EXPLORATION

Vous modifiez votre robots.txt.
Quelles URL changent de règle ?

Comparez deux versions, déclarez vos attentes et rejouez les mêmes contrôles sur le fichier servi.

LE PIÈGE À VOIR
Groupe général */documents/
Interdit
/documents/
Autorisé

Ajouter une restriction peut ouvrir un autre chemin. Le groupe spécifique n’hérite pas automatiquement du groupe général.

01 / COMPRENDRE EN UNE MINUTE

Une intention.
Une ouverture involontaire.

Conserver l’exclusion des documents et ajouter celle du blog pour GPTBot. Autoriser le blog pour OAI-SearchBot.

L’ajout d’un groupe GPTBot remplace le groupe général pour ce profil. Ses restrictions ne sont pas héritées.

Avant

example.com · synthétique
User-agent: *
Disallow: /documents/

Modification proposée

Groupe spécifique ajouté
User-agent: *
Disallow: /documents/

User-agent: GPTBot
Disallow: /blog/
1 écart sur 5 attentes évaluées0 cas incertain · contrôle avec écarts

Contenus différents · 2 décision(s) différente(s). Cela ne prouve pas l’équivalence sur toutes les URL.

Décisions du modèle et intentions déclarées · https://example.com
Profil · URLAvantCandidateAttenteBilan
GPTBot/documents/guide.pdfcrawl · documentsInterditAutoriséInterditÉcart à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil GPTBot → dimension crawl. Jeton GPTBot ; groupe spécifique présent. Source opérateur (nouvel onglet)

2. URL comparée. /documents/guide.pdf Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 2, User-agent GPTBot (L4)

4. Règles correspondantes. Aucune règle correspondante.

5. Règles décisives. Aucune règle non vide. Aucune règle non vide correspondante : autorisation dans le modèle.

6. Intention. Conserver l’exclusion des documents. Attendu : Interdit. Écart à l’attente.

Code : EXPECTATION_MISMATCH · dimension crawl

GPTBot/blog/articlecrawl · blogAutoriséInterditInterditConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil GPTBot → dimension crawl. Jeton GPTBot ; groupe spécifique présent. Source opérateur (nouvel onglet)

2. URL comparée. /blog/article Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 2, User-agent GPTBot (L4)

4. Règles correspondantes. L5 disallow: /blog/ · priorité 6

5. Règles décisives. L5 Règle la plus précise (6 octets de motif normalisé, jokers inclus). Disallow prévaut.

6. Intention. Ajouter l’exclusion du blog pour GPTBot. Attendu : Interdit. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

OAI-SearchBot/blog/articlecrawl · search-blogAutoriséAutoriséAutoriséConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil OAI-SearchBot → dimension crawl. Jeton OAI-SearchBot ; aucun groupe spécifique, sélection générique possible. Source opérateur (nouvel onglet)

2. URL comparée. /blog/article Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 1, User-agent * (L1)

4. Règles correspondantes. Aucune règle correspondante.

5. Règles décisives. Aucune règle non vide. Aucune règle non vide correspondante : autorisation dans le modèle.

6. Intention. Conserver la possibilité de recherche OpenAI. Attendu : Autorisé. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

OAI-SearchBot/documents/guide.pdfcrawl · search-docsInterditInterditInterditConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil OAI-SearchBot → dimension crawl. Jeton OAI-SearchBot ; aucun groupe spécifique, sélection générique possible. Source opérateur (nouvel onglet)

2. URL comparée. /documents/guide.pdf Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 1, User-agent * (L1)

4. Règles correspondantes. L2 disallow: /documents/ · priorité 11

5. Règles décisives. L2 Règle la plus précise (11 octets de motif normalisé, jokers inclus). Disallow prévaut.

6. Intention. Conserver les documents hors exploration déclarée. Attendu : Interdit. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

GPTBot/a-proposcrawl · publicAutoriséAutoriséAutoriséConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil GPTBot → dimension crawl. Jeton GPTBot ; groupe spécifique présent. Source opérateur (nouvel onglet)

2. URL comparée. /a-propos Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 2, User-agent GPTBot (L4)

4. Règles correspondantes. Aucune règle correspondante.

5. Règles décisives. Aucune règle non vide. Aucune règle non vide correspondante : autorisation dans le modèle.

6. Intention. Laisser la page publique autorisée. Attendu : Autorisé. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

La version initiale n’excluait pas le blog : son écart à cette nouvelle attente n’est pas une régression. Le bilan porte sur la candidate. La correction illustre cette intention, sans recommander une politique universelle de blocage.

La correction expliquée, même sans JavaScript
User-agent: *
Disallow: /documents/

User-agent: GPTBot
Disallow: /documents/
Disallow: /blog/
Aucun écart sur les 5 attentes évaluées0 cas incertain · contrôle complet

Contenus différents · 1 décision(s) différente(s). Cela ne prouve pas l’équivalence sur toutes les URL.

Décisions du modèle et intentions déclarées · https://example.com
Profil · URLAvantCandidateAttenteBilan
GPTBot/documents/guide.pdfcrawl · documentsInterditInterditInterditConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil GPTBot → dimension crawl. Jeton GPTBot ; groupe spécifique présent. Source opérateur (nouvel onglet)

2. URL comparée. /documents/guide.pdf Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 2, User-agent GPTBot (L4)

4. Règles correspondantes. L5 disallow: /documents/ · priorité 11

5. Règles décisives. L5 Règle la plus précise (11 octets de motif normalisé, jokers inclus). Disallow prévaut.

6. Intention. Conserver l’exclusion des documents. Attendu : Interdit. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

GPTBot/blog/articlecrawl · blogAutoriséInterditInterditConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil GPTBot → dimension crawl. Jeton GPTBot ; groupe spécifique présent. Source opérateur (nouvel onglet)

2. URL comparée. /blog/article Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 2, User-agent GPTBot (L4)

4. Règles correspondantes. L6 disallow: /blog/ · priorité 6

5. Règles décisives. L6 Règle la plus précise (6 octets de motif normalisé, jokers inclus). Disallow prévaut.

6. Intention. Ajouter l’exclusion du blog pour GPTBot. Attendu : Interdit. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

OAI-SearchBot/blog/articlecrawl · search-blogAutoriséAutoriséAutoriséConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil OAI-SearchBot → dimension crawl. Jeton OAI-SearchBot ; aucun groupe spécifique, sélection générique possible. Source opérateur (nouvel onglet)

2. URL comparée. /blog/article Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 1, User-agent * (L1)

4. Règles correspondantes. Aucune règle correspondante.

5. Règles décisives. Aucune règle non vide. Aucune règle non vide correspondante : autorisation dans le modèle.

6. Intention. Conserver la possibilité de recherche OpenAI. Attendu : Autorisé. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

OAI-SearchBot/documents/guide.pdfcrawl · search-docsInterditInterditInterditConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil OAI-SearchBot → dimension crawl. Jeton OAI-SearchBot ; aucun groupe spécifique, sélection générique possible. Source opérateur (nouvel onglet)

2. URL comparée. /documents/guide.pdf Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 1, User-agent * (L1)

4. Règles correspondantes. L2 disallow: /documents/ · priorité 11

5. Règles décisives. L2 Règle la plus précise (11 octets de motif normalisé, jokers inclus). Disallow prévaut.

6. Intention. Conserver les documents hors exploration déclarée. Attendu : Interdit. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

GPTBot/a-proposcrawl · publicAutoriséAutoriséAutoriséConforme à l’attente
Pourquoi cette décision ?

1. Profil et jeton. Profil GPTBot → dimension crawl. Jeton GPTBot ; groupe spécifique présent. Source opérateur (nouvel onglet)

2. URL comparée. /a-propos Préparation WHATWG : origine/base, IDN, port par défaut, UTF-8 et segments point éventuels. Requête et casse du chemin conservées.

3. Groupes sélectionnés. Groupe 2, User-agent GPTBot (L4)

4. Règles correspondantes. Aucune règle correspondante.

5. Règles décisives. Aucune règle non vide. Aucune règle non vide correspondante : autorisation dans le modèle.

6. Intention. Laisser la page publique autorisée. Attendu : Autorisé. Conforme à l’attente.

Code : EXPECTATION_MET · dimension crawl

02 / REVUE DE VOS FICHIERS

Votre politique.
Vos critères de réception.

Analyse dans votre navigateur. Vos fichiers ne sont pas envoyés à un serveur.

Ressources chargées à l’ouverture. Aucune analyse distante, sauvegarde automatique ou télémétrie.

Limites V1 : 2 Mio par robots.txt · 5 000 attentes · 8 192 octets par URL. UTF-8. Une seule origine. Au-delà de 500 Kio, le comportement Google n’est pas simulé.

Schéma + nom d’hôte + port éventuel. Aucun appel à cette adresse depuis le navigateur.

Déclarer les attentes

Télécharger le modèle JSON ↓

CSV : id, profile, dimension, url, expected, reason. Conservez vos colonnes supplémentaires. Les lignes rejetées restent visibles dans l’aperçu.

Rejouer une capture de livraison issue de la CLI

Le corps capturé devient la candidate. Son empreinte, son origine et son état sont contrôlés. Aucun accès réseau.

Aucune capture importée.

Prêt pour une revue locale.

03 / REPRODUIRE

Du fichier prévu
au fichier reçu.

Rejouez les mêmes attentes en local ou en CI. La commande de livraison récupère uniquement robots.txt et sa chaîne de redirections.

Lire le protocole CLI ↗
CONTRÔLE HORS LIGNE
npm run review -- check \
  --robots examples/corrected.txt \
  --expectations examples/expectations.json \
  --out reports/local
ACQUISITION EXPLICITE
npm run review -- check-served \
  --origin https://example.com \
  --planned examples/corrected.txt \
  --expectations examples/expectations.json \
  --out reports/served

Codes 0 / 1 / 2 : conforme / écarts / non concluant.
Le code 2 est prioritaire.

04 / SAVOIR CE QUE LA PREUVE DIT

Des règles vérifiées.
Des limites visibles.

01

Un modèle confronté à une référence

1016 cas concordants sur 1016 triplets exécutés face au moteur C++ Google figé. Une preuve sur ce corpus, pas une certification.

Méthode et référence ↗
02

12 profils, plusieurs usages

Exploration, demande utilisateur et contrôle d’usage restent distincts. Un nom de robot ne suffit pas à déduire ses règles.

Voir les profils et leurs sources ↗
03

Pas de promesse de protection

robots.txt exprime une politique. Ce contrôle ne mesure ni respect effectif, ni désindexation, ni effacement de données déjà collectées.

Lire l’article Edikka (nouvel onglet)↗