Writing / GEO en production

llms.txt en production : ce qui a cassé, ce qui marche, comment je le surveille

llms.txt est un fichier texte à la racine de votre domaine qui dit aux systèmes d’IA ce qu’est votre site et quelles pages comptent. La spec de llmstxt.org demande un H1, un résumé court et des liens markdown. Je le fais tourner sur deux sites WordPress réels : un portfolio d’une page et un catalogue bière de 5 200 pages. Une heure de mise en place sur chacun. Ce qui mérite un article : le mode d’échec dont personne ne vous prévient, et la surveillance que tout le monde saute.

Le fichier qui échouait en silence

En juillet, j’ai passé mon propre site aux audits agentic-browsing de Lighthouse. Score : 67, avec cette ligne dans le rapport :

File does not appear to contain any links.

Le fichier existait. Il répondait en 200 avec le bon content-type. Il décrivait le site dans une prose propre, et un relecteur humain l’aurait validé. Le parseur l’a noté comme vide parce que j’avais écrit les URL en texte brut. La spec repose sur les liens markdown, et une machine qui lit https://damien-martire.com au milieu d’une phrase voit une chaîne de caractères, pas une destination.

J’ai réécrit le fichier au format llmstxt.org : un H1 avec le nom du site, un résumé en blockquote, puis des sections de liens [titre](url) avec une ligne de description chacun. Six liens en tout : les pages d’accueil anglaise et française, mes deux sites, LinkedIn, un email. Le score agentique est passé de 67 à 100.

Ce que j’en retiens : llms.txt a deux publics, et le public machine ne lit pas la prose. Validez le fichier avec un parseur, pas avec vos yeux.

La spec tient sur une fiche bristol

Quatre règles suffisent :

  1. Un # H1 avec le nom du site ou du projet. Obligatoire, et c’est le seul élément obligatoire.
  2. Un > blockquote juste après, qui résume le site en une ou deux phrases.
  3. Des sections ## H2 contenant des listes de liens markdown : [titre de la page](url) : ce que cette page répond.
  4. Une section ## Optional pour les liens secondaires qu’une IA peut sauter quand son contexte est compté.

Servez le tout sur /llms.txt en text/plain. C’est toute la norme.

Le servir sur WordPress sans plugin

Mes deux sites servent le fichier depuis un snippet PHP plutôt qu’un plugin. Le snippet s’accroche tôt dans le cycle de requête, détecte /llms.txt, envoie l’en-tête Content-Type: text/plain; charset=utf-8, imprime le contenu et sort avant que WordPress ne construise une page. Le code vit dans Code Snippets, avec une copie miroir dans le dossier du projet : le fichier survit aux changements de thème et je peux comparer les versions après chaque modification.

Sur le portfolio, le contenu est une chaîne statique. Sur le catalogue, le snippet construit le fichier depuis les données du site et met le résultat en cache serveur pendant six heures, parce que regénérer le résumé d’un site de 5 200 pages à chaque requête reviendrait à s’auto-infliger un déni de service.

Le problème des 5 200 pages

Un portfolio d’une page a besoin de six liens. Un catalogue programmatique impose un choix éditorial, et le mauvais choix, c’est le déversement de sitemap.

Un agent IA qui lit votre llms.txt y dépense des tokens. Mille URL grilleraient le budget du lecteur avant qu’il n’atteigne votre meilleur contenu. Sur le catalogue, je liste des points d’entrée : les deux hubs du catalogue (français et anglais), le hub des styles, les index du blog et une poignée de guides piliers. Une page qui n’apparaîtrait pas dans la visite de deux minutes que vous feriez faire à un nouveau visiteur reste hors du fichier.

Le sitemap couvre déjà la découverte exhaustive. llms.txt répond à une autre question : par où commence un lecteur qui a trente secondes.

Le traiter comme de la production, pas comme une tâche de lancement

Les fichiers pourrissent. Une mise à jour de plugin, une règle de cache, un changement de slug, et votre endpoint renvoie une 404 habillée que personne ne remarque, parce qu’aucun humain ne visite /llms.txt.

Mon dashboard de monitoring sonde chaque site quotidiennement et affiche trois choses sur la carte santé de chaque site : l’endpoint répond 200, le fichier commence par un H1, et le nombre de liens markdown. La sonde fait trente lignes de code, ne demande aucun credential, et elle a déjà attrapé mon propre écart de conformité une fois. Publier un llms.txt sans le surveiller, c’est publier un fichier qui cassera en silence quelque part entre aujourd’hui et le jour où un système d’IA se mettra à le lire.

Est-ce qu’une IA le lit aujourd’hui ?

La réponse honnête, au moment où j’écris ces lignes en juillet 2026 : non. En tout cas pas à un rythme dont j’ai trouvé la preuve. Une étude de logs serveur sur 48 jours (février-mars 2026, 12 099 requêtes de bots sur 19 crawlers dont GPTBot, ClaudeBot, OAI-SearchBot et PerplexityBot) a enregistré zéro requête vers /llms.txt ; le seul visiteur du fichier était une société d’analytics web. Aucun grand fournisseur ne s’est engagé publiquement à le récupérer. Quiconque vous vend llms.txt comme un levier de ranking court devant les preuves.

Je le déploie quand même, pour trois raisons. Le coût s’arrondit à une heure. L’outillage d’audit a commencé à le vérifier, et un Lighthouse qui note la préparation agentique vous dit où va l’écosystème : les checks d’outillage précèdent l’adoption des plateformes. Et l’exercice éditorial de dire ce qu’est votre site en vingt lignes améliore votre propre réflexion, même si aucun crawler ne lit jamais le résultat.

Je mesure aussi, au lieu d’espérer. Avant le déploiement, j’ai enregistré ce que ChatGPT et Perplexity disent de mon nom et de mes sites. Trente jours après, je relance les mêmes prompts et je compare les réponses. Si le fichier ne bouge rien, je l’écrirai aussi.

FAQ

Ai-je besoin de llms.txt si j’ai déjà un sitemap ?
Les deux font des métiers différents. Le sitemap est un inventaire exhaustif pour les crawlers. llms.txt est une page d’orientation curée pour des lecteurs au budget de tokens limité, écrite en markdown pour que les machines puissent suivre les liens.
Que mettre dedans sur un gros site ?
Des points d’entrée : hubs, index, pages piliers. Visez l’ensemble de liens que vous montreriez à un visiteur qui découvre le site, et rangez le secondaire sous une section ## Optional.
Comment savoir si le mien est valide ?
Passez un audit agentique (Lighthouse en inclut un désormais) ou n’importe quel parseur llms.txt. Les deux échecs que je vois le plus : pas de H1, et des URL collées en texte brut au lieu de liens markdown.

Mes deux fichiers sont en ligne : damien-martire.com/llms.txt et beer-galaxy.com/llms.txt. Lisez-les, copiez la structure.

Retour en haut