Table des matières
- 1. Qu'est-ce que llms.txt
- 2. Pourquoi en a-t-on besoin -- différences avec robots.txt
- 3. Spécifications du format -- quoi écrire et comment
- 4. Informations à inclure -- obligatoires, recommandées, facultatives
- 5. Différence entre llms.txt et llms-full.txt
- 6. Fichier statique vs génération dynamique -- lequel choisir
- 7. Implémentation -- exemples de code par framework
- 8. Vérification après mise en place
- 9. Mesure réelle : les robots d'IA lisent-ils llms.txt ?
- 10. Exemples concrets de llms.txt
- FAQ
L'ère de la recherche par IA est arrivée. ChatGPT avec recherche web, Perplexity, Google AI Overviews -- les utilisateurs obtiennent de plus en plus souvent leurs informations via l'IA, et « faire comprendre correctement votre site à l'IA » devient un enjeu majeur.
C'est là qu'intervient llms.txt. Si robots.txt indique aux robots « vous pouvez / ne pouvez pas explorer cette page », llms.txt est un panneau indicateur qui dit à l'IA « voici ce que couvre ce site, et voici où lire les détails ». Rien ne prouve pourtant que le publier vous fasse citer dans les réponses des IA, et dans les journaux d'accès de ce site, aucun robot d'IA ne l'a demandé une seule fois en trois jours et demi. Ce guide explique aussi pour quel type de site il vaut vraiment la peine.
Cet article couvre en détail les spécifications du format de llms.txt, les informations à y inclure, les critères de choix entre fichier statique et génération dynamique, et les exemples d'implémentation pour les principaux frameworks.
1. Qu'est-ce que llms.txt
llms.txt est un fichier texte brut (au format Markdown) place à la racine de votre site web, dont le but est de transmettre aux LLM (grands modèles de langage) un aperçu de votre site, sa structure et la liste de ses contenus.
Informations de base
| Élément | Détail |
|---|---|
| Nom du fichier | llms.txt |
| Emplacement | Racine du domaine (https://example.com/llms.txt). Depuis la v2, il peut aussi se trouver dans un sous-chemin (/docs/llms.txt) et couvre alors les pages qui s'y trouvent |
| Format | Markdown (texte brut) |
| Encodage | UTF-8 |
| Initiateurs | llmstxt.org (Jeremy Howard et al.) |
| Statut de standardisation | Standard de facto (pas une RFC ni une spécification formelle). Version actuelle : v2 (révisée en août 2026) |
| Principaux lecteurs | Des agents d'IA qui ont besoin d'informations pendant qu'ils aident un utilisateur (l'usage prévu par la spécification, en particulier les agents de code qui parcourent une documentation). Aucun éditeur n'a déclaré officiellement que des robots d'entraînement ou de recherche comme GPTBot le lisent |
En un mot
robots.txt = « n'entrez pas » / llms.txt = « voici ce que nous sommes »
Alors que robots.txt gère le contrôle d'accès (autoriser/bloquer), llms.txt décrit le contenu du site (une présentation). Les deux ne sont pas en conflit -- ils sont complémentaires.
2. Pourquoi en a-t-on besoin -- différences avec robots.txt
Vous pensez peut-être : « avec un sitemap et des balises meta, l'IA devrait pouvoir comprendre mon site ». C'est vrai dans une certaine mesure, mais llms.txt offre des avantages spécifiques.
Comparaison des rôles : robots.txt / sitemap.xml / llms.txt
| Fichier | Objectif | Cible | Contenu |
|---|---|---|---|
| robots.txt | Autoriser/bloquer le crawl | Tous les robots | Règles Allow/Disallow |
| sitemap.xml | Fournir la liste des pages | Moteurs de recherche | URL, dates de MAJ, priorités |
| llms.txt | Décrire le contenu du site | Robots LLM | Aperçu, structure, résumés |
Trois raisons pour lesquelles llms.txt est nécessaire
Raison 1 : les LLM ne peuvent pas explorer efficacement tout un site
Googlebot explore des milliards de pages pour construire un index massif, mais les robots des LLM n'explorent pas de manière aussi exhaustive. En plaçant llms.txt, vous indiquez efficacement à l'IA : « voici le contenu le plus important de notre site ».
Raison 2 : il vous ferait citer dans les réponses des IA -- une affirmation fréquente, sans preuve
On lit souvent que llms.txt augmente les chances que ChatGPT ou Perplexity citent votre site, mais aucune donnée ni déclaration officielle des éditeurs ne le montre. Google indique explicitement qu'aucun fichier texte pour l'IA n'est nécessaire pour apparaître dans AI Overviews ou AI Mode (Google Search Central). Il est plus juste de voir llms.txt comme une table des matières qui aide les agents à atteindre vite la bonne information que comme un moyen d'obtenir des citations ; la section 9 le vérifie sur des journaux réels.
Pour une explication détaillée du LLMO, consultez « Qu'est-ce que le LLMO ? ».
Raison 3 : transmettre des meta-informations absentes du sitemap.xml
Le sitemap.xml n'est qu'une liste d'URL. Avec llms.txt, vous pouvez aussi communiquer :
- Le thème et le domaine d'expertise du site
- Le résumé et la catégorie de chaque contenu
- La fréquence de mise à jour et la taille du site
- Le support multilingue
- Les coordonnées de contact
3. Spécifications du format -- quoi écrire et comment
Structure du format llms.txt
H1 nom du site → résumé en blockquote → groupe de sections H2
llms.txt s'écrit en format Markdown. Voici le format conforme à la spécification de llmstxt.org.
Structure de base
# Nom du site
> Description du site. 1 a 3 phrases pour presenter le theme, le public cible et la valeur apportee.
## Nom de section 1
- [Titre de la page](URL): Resume de la page
## Nom de section 2
- [Titre de la page](URL): Resume de la page
- [Titre de la page](URL): Resume de la page
Règles de formatage
| Élément | Syntaxe Markdown | Rôle |
|---|---|---|
| Titre H1 | # Nom du site | Nom officiel du site. Un seul par fichier |
| Bloc de citation | > Texte de description | Description du site. Juste après le H1 |
| Titre H2 | ## Nom de section | Regroupement des contenus |
| Lien en liste | - [Titre](URL): Description | Information sur chaque contenu |
Exemple concret
# My Tech Blog
> My Tech Blog is a software engineering blog covering web development, cloud infrastructure, and AI tools. Updated weekly with practical tutorials and comparisons.
## Main Sections
- [Articles](https://example.com/articles): 50+ in-depth technical articles
- [Tutorials](https://example.com/tutorials): Step-by-step coding tutorials
## Popular Articles
- [React vs Vue in 2026](https://example.com/articles/react-vs-vue): A detailed comparison of React and Vue.js for modern web development, covering performance, ecosystem, and learning curve.
- [Docker for Beginners](https://example.com/articles/docker-beginners): Complete guide to Docker containers for developers who have never used containerization.
## Site Information
- URL: https://example.com
- Sitemap: https://example.com/sitemap.xml
- Languages: en, ja
- Contact: admin@example.com
Points d'attention
- Écrire en anglais par défaut. La spécification et les exemples de llms.txt sont tous en anglais, ce qui en fait la meilleure pratique. Pour les sites multilingues, écrivez en anglais et indiquez les langues supportées avec
Languages: ja, en, es, .... En revanche, pour les sites monolingues (par exemple un site entièrement en français ou en russe), écrire dans la langue du site est parfaitement acceptable. Les principaux LLM (GPT, Claude, Gemini, etc.) traitent la plupart des langues avec une grande précision, et les utilisateurs de ces sites poseront leurs questions dans la même langue, garantissant des réponses cohérentes. - L'encodage doit être UTF-8. D'autres encodages provoqueraient des erreurs d'affichage
- Utiliser des URL absolues (URL complètes commençant par https://)
- Un seul H1 par fichier. Utilisez H2 pour les subdivisions
4. Informations à inclure -- obligatoires, recommandées, facultatives
Beaucoup hésitent sur quoi écrire. Voici un classement par niveau de priorité.
À noter : la spécification (llmstxt.org) n'exige que le H1 avec le nom du site ; le bloc de citation avec le résumé et les listes de liens sous H2 sont formellement facultatifs. « Obligatoire » désigne ici le minimum que ce guide juge nécessaire pour que le fichier ait un intérêt.
Informations obligatoires (sans elles, llms.txt n'a aucun sens)
| Information | Emplacement | Exemple |
|---|---|---|
| Nom du site | Titre H1 | # AI Arte |
| Description du site | Bloc de citation | > AI learning platform... |
| Sections principales | H2 + liste de liens | - [Articles](URL): Description |
Informations recommandées (améliorent la compréhension par l'IA)
| Information | Pourquoi |
|---|---|
| Liste complète des contenus | L'IA peut saisir l'étendue du site |
| Résumé en une ligne par contenu | L'IA comprend le contenu à l'avance |
| Système de catégories/tags | Montre l'architecture de l'information |
| URL du site | Indique clairement l'URL canonique |
| URL du Sitemap | Redirige vers la liste détaillée des URL |
| Langues supportées | Essentiel pour les sites multilingues |
| Contact | Identifie l'exploitant du site |
Informations facultatives (souhaitables mais pas indispensables)
- Stack technique : avec quoi le site est construit (framework, etc.)
- Fréquence de mise à jour : à quelle cadence de nouveaux contenus sont ajoutés
- Nombre total de contenus : nombre d'articles, etc.
- Licence/politique de citation : l'IA peut-elle citer le contenu ou non
- Information API : si un accès programmatique est possible
Informations à ne pas inclure
- Informations confidentielles : URL d'administration, endpoints d'API internes, etc.
- Données personnelles : informations personnelles superflues (adresse postale, téléphone, etc.)
- Identifiants : clés API, mots de passe, etc.
5. Différence entre llms.txt et llms-full.txt
llms-full.txt regroupe tout le contenu d'un site dans un seul fichier. Il ne fait pas partie de la spécification de llmstxt.org : c'est une convention qui s'est répandue parce que des plateformes de documentation comme Mintlify le génèrent automatiquement avec llms.txt (documentation de Mintlify). La spécification v2 recommande plutôt, au lieu de tout réunir dans un fichier, de fournir une version Markdown de chaque page (page.md ou page.html.md) et de la lier depuis llms.txt.
| Fichier | Contenu | Taille indicative | Fonction |
|---|---|---|---|
| llms.txt | Aperçu, structure, liste de liens | 1 a 50 Ko | « Sommaire » du site |
| llms-full.txt | Texte intégral de tous les contenus | 100 Ko à plusieurs Mo | Fournir le texte complet à l'IA |
Quand llms-full.txt est nécessaire
- Documentation technique : références API, documentation de bibliothèques -- des cas où la compréhension du texte intégral par l'IA améliore la précision des réponses
- Base de connaissances : FAQ, glossaires et autres contenus souvent cités par extraits
Quand llms-full.txt est inutile
- Blogs et sites média : trop d'articles -- le fichier deviendrait énorme. Les résumés de llms.txt suffisent
- Sites e-commerce : les données produit sont mieux servies par des données structurées (JSON-LD, etc.)
- Sites corporate : peu de pages, llms.txt seul couvre les besoins
Pour un blog ou un site média classique, llms.txt seul est suffisant. Considérez llms-full.txt comme un outil réservé à la documentation technique.
6. Fichier statique vs génération dynamique -- lequel choisir
Fichier statique vs Génération dynamique — lequel choisir
Compromis : effort de mise en œuvre vs maintenance
Il existe deux grandes méthodes pour gérer llms.txt.
Méthode 1 : fichier statique
Placer un fichier texte directement dans public/llms.txt (ou équivalent).
Avantages :
- Implémentation ultra simple (poser le fichier et c'est tout)
- Zéro charge serveur
- Fonctionne sans framework
Inconvénients :
- Il faut mettre à jour le fichier manuellement à chaque ajout ou modification de contenu
- En cas d'oubli, l'IA reçoit des informations obsolètes
- Le nombre de contenus et les catégories peuvent diverger entre le fichier et la réalité du site
Méthode 2 : génération dynamique
L'application reçoit la requête vers /llms.txt, interroge la base de données et génère le texte dynamiquement.
Avantages :
- Les informations sont toujours à jour
- L'ajout d'un article se reflète automatiquement dans llms.txt
- Le nombre de contenus et les noms de catégories sont toujours exacts
Inconvénients :
- Demande un effort d'implémentation (définition de route + controleur)
- Un accès à la BDD est nécessaire à chaque requête (attenuable par un cache)
- Nécessite un framework
Critères de choix
| Situation | Recommandation |
|---|---|
| Moins de 10 contenus, rarement mis à jour | Fichier statique OK |
| Plus de 10 contenus ou MAJ au moins 1 fois/mois | Génération dynamique recommandée |
| Utilisation de WordPress / Laravel / Django, etc. | Génération dynamique facile à mettre en place |
| Site statique (Hugo, Jekyll, Astro, etc.) | L'idéal est la génération automatique au build |
| Exploitant seul, maintenance minimale souhaitée | Génération dynamique (une fois en place, plus rien à faire) |
Conclusion : en cas de doute, choisissez la génération dynamique. Le coût initial est plus élevé, mais comme on peut « installer et oublier », le coût de maintenance est plus bas sur le long terme. Le pire scénario est de commencer en statique et d'oublier de mettre à jour, transmettant ainsi des informations obsolètes à l'IA.
7. Implémentation -- exemples de code par framework
Voici comment implémenter la génération dynamique de llms.txt dans les principaux frameworks.
Laravel (PHP)
Définition de route (routes/web.php) :
use App\Http\Controllers\LlmsTxtController;
Route::get('/llms.txt', [LlmsTxtController::class, 'index']);
Controleur (app/Http/Controllers/LlmsTxtController.php) :
class LlmsTxtController extends Controller
{
public function index()
{
$articles = Article::published()
->with(['translations' => fn($q) => $q->where('locale', 'en')])
->orderBy('published_at')
->get();
$lines = [];
$lines[] = '# My Site Name';
$lines[] = '';
$lines[] = '> Site description here.';
$lines[] = '';
$lines[] = '## All Articles (' . $articles->count() . ')';
$lines[] = '';
foreach ($articles as $article) {
$t = $article->translations->first();
if (!$t) continue;
$url = 'https://example.com/en/articles/' . $article->slug;
$lines[] = '- [' . $t->title . '](' . $url . '): ' . $t->meta_description;
}
$content = implode("\n", $lines);
return response($content, 200)
->header('Content-Type', 'text/plain; charset=utf-8');
}
}
Le point important est de spécifier explicitement Content-Type: text/plain; charset=utf-8. Sans cela, le contenu risque d'être interprète comme du HTML.
Django (Python)
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('llms.txt', views.llms_txt, name='llms_txt'),
]
# views.py
from django.http import HttpResponse
from .models import Article
def llms_txt(request):
articles = Article.objects.filter(
status='published'
).order_by('published_at')
lines = ['# My Site', '', '> Description.', '', '## Articles', '']
for a in articles:
lines.append(f'- [{a.title}](https://example.com/articles/{a.slug}): {a.meta_description}')
content = '\n'.join(lines)
return HttpResponse(content, content_type='text/plain; charset=utf-8')
Next.js (TypeScript)
// app/llms.txt/route.ts (App Router)
import { NextResponse } from 'next/server'
export async function GET() {
// Recuperer les donnees depuis la BDD ou le CMS
const posts = await getAllPosts()
const lines = [
'# My Site',
'',
'> Description.',
'',
'## Articles',
'',
...posts.map(p =>
`- [${p.title}](https://example.com/posts/${p.slug}): ${p.description}`
),
]
return new NextResponse(lines.join('\n'), {
headers: { 'Content-Type': 'text/plain; charset=utf-8' },
})
}
WordPress (PHP)
À ajouter dans functions.php ou un plugin :
// functions.php
add_action('init', function() {
add_rewrite_rule('^llms\.txt$', 'index.php?llms_txt=1', 'top');
});
add_filter('query_vars', function($vars) {
$vars[] = 'llms_txt';
return $vars;
});
add_action('template_redirect', function() {
if (!get_query_var('llms_txt')) return;
header('Content-Type: text/plain; charset=utf-8');
$posts = get_posts(['numberposts' => -1, 'post_status' => 'publish']);
echo "# " . get_bloginfo('name') . "\n\n";
echo "> " . get_bloginfo('description') . "\n\n";
echo "## Articles (" . count($posts) . ")\n\n";
foreach ($posts as $post) {
$url = get_permalink($post);
$desc = get_the_excerpt($post);
echo "- [{$post->post_title}]({$url}): {$desc}\n";
}
exit;
});
Pour WordPress, n'oubliez pas de sauvegarder à nouveau les paramètres de permaliens (flush des règles de réécriture).
Générateurs de sites statiques (Hugo / Astro, etc.)
On écrit un script qui généré le fichier au moment du build.
# build-llms-txt.sh (exemple pour Hugo)
#!/bin/bash
echo "# My Site" > public/llms.txt
echo "" >> public/llms.txt
echo "> Site description." >> public/llms.txt
echo "" >> public/llms.txt
echo "## Articles" >> public/llms.txt
echo "" >> public/llms.txt
for file in content/posts/*.md; do
title=$(grep '^title:' "$file" | sed 's/title: //')
slug=$(basename "$file" .md)
desc=$(grep '^description:' "$file" | sed 's/description: //')
echo "- [${title}](https://example.com/posts/${slug}): ${desc}" >> public/llms.txt
done
En l'exécutant dans un pipeline CI (GitHub Actions, etc.) avant le build, le fichier est mis à jour automatiquement à chaque déploiement.
8. Vérification après mise en place
Une fois llms.txt en place, vérifiez les points suivants.
Checklist de base
| Point à vérifier | Comment vérifier |
|---|---|
| Accessible via l'URL | curl https://votresite.com/llms.txt |
| Content-Type correct | curl -I pour vérifier text/plain; charset=utf-8 |
| Pas de caractères corrompus | Ouvrir directement dans le navigateur et vérifier l'affichage |
| Liens valides | Les URL mentionnees sont-elles accessibles ? |
| Statut HTTP 200 | curl -o /dev/null -w "%{http_code}" |
| Non bloque par robots.txt | Vérifier l'absence de Disallow: /llms.txt dans robots.txt |
Vérifications supplémentaires pour la génération dynamique
- Vérifier llms.txt après l'ajout d'un article : le nouvel article apparaît-il ?
- Le nombre de contenus affiche est-il correct : le chiffre dans « All Articles (27) » correspond-il au nombre réel d'articles publiés ?
- Aucun article non publié n'est inclus : vérifier que les brouillons et les publications programmees ne s'affichent pas
Outils de validation
Il n'existe pas de validateur officiel du format llms.txt (au 29 septembre 2026). Lighthouse de Chrome compte llms.txt parmi ses audits « agentic browsing », mais il vérifie seulement si la récupération du fichier renvoie une erreur serveur ; si le fichier n'existe pas (404), l'audit est marqué non applicable (Chrome for Developers). Vérifiez le contenu avec les méthodes ci-dessous.
- Faire lire par ChatGPT ou Claude : demandez « lis https://votresite.com/llms.txt et décris ce site »
- Previsualiseur Markdown : collez le contenu de llms.txt dans un previsualiseur Markdown pour vérifier que la structure se rend correctement
- Outils d'audit SEO : certains outils d'audit SEO commencent à prendre en charge la vérification de la présence de llms.txt
9. Mesure réelle : les robots d'IA lisent-ils llms.txt ?
On entend souvent « publiez-le et l'IA le lira », mais savoir si quelque chose le demande vraiment se vérifie dans les journaux d'accès de votre propre serveur. Ce site (arte.itlibra.com) sert un /llms.txt généré dynamiquement ; nous avons donc compté les requêtes par User-Agent du 26 septembre à 07 h 20 au 29 septembre à 12 h 54 UTC (environ trois jours et demi, 86 696 requêtes au total).
| Robot (User-Agent) | Requêtes totales sur la période | robots.txt | llms.txt |
|---|---|---|---|
| OAI-SearchBot (recherche d'OpenAI) | 866 | 20 | 0 |
| ChatGPT-User (ChatGPT ouvre une page à la demande de l'utilisateur) | 1 275 | 2 | 0 |
| ClaudeBot (Anthropic) | 502 | 29 | 0 |
| Claude-User (Claude ouvre une page à la demande de l'utilisateur) | 438 | 70 | 0 |
| PerplexityBot | 1 086 | 19 | 0 |
| Googlebot | 2 186 | 14 | 0 |
| bingbot | 4 362 | 21 | 0 |
Sur cette période, /llms.txt n'a été demandé que trois fois : deux fois en ligne de commande (curl) et une fois par un outil d'audit de site. Les robots d'IA ont lu des articles des centaines de fois, mais n'ont jamais ouvert llms.txt. Beaucoup ont consulté robots.txt : ce n'est donc pas qu'ils ignorent les petits fichiers, ils ne cherchent tout simplement pas llms.txt.
Il s'agit de trois jours et demi de journaux d'un seul site ; d'autres sites ou des périodes plus longues peuvent donner un autre résultat. Mais, rapproché des déclarations officielles, le tableau est clair.
- Google : indique que « You don't need to create new machine readable files, AI text files, or markup » (inutile de créer de nouveaux fichiers lisibles par machine, fichiers texte pour l'IA ou balisages) pour apparaître dans AI Overviews ou AI Mode (AI features and your website)
- La spécification (v2, août 2026) : prévoit que llms.txt serve au moment de l'inférence, quand un agent a besoin d'informations en aidant un utilisateur, plutôt qu'à l'entraînement, et indique qu'il est surtout utilisé par des agents de code qui parcourent de la documentation logicielle (llmstxt.org)
- Lighthouse de Chrome : ses audits « agentic browsing » incluent llms.txt, mais une page n'échoue que si la récupération du fichier renvoie une erreur serveur. Un fichier absent (404) est marqué non applicable et ne coûte rien (Chrome for Developers)
Décider s'il faut en ajouter un
| Type de site | Décision | Pourquoi |
|---|---|---|
| Documentation d'API ou de bibliothèque | L'ajouter (avec une version Markdown de chaque page) | Les agents de code le suivent réellement ; c'est l'usage principal prévu par la spécification |
| Blog ou média | Sans risque, mais n'attendez ni plus de trafic ni plus de citations | Dans les journaux de ce site, les robots d'IA lisaient directement les articles. Ce qui compte d'abord, c'est la qualité des articles et le fait de ne pas bloquer les robots d'IA dans robots.txt |
| Petit site d'entreprise | Rien ne presse | Avec peu de pages, la page d'accueil et le sitemap suffisent |
Si vous en ajoutez un, vos propres journaux sont le moyen fiable de savoir s'il est utilisé. Pour des journaux d'accès au format standard de nginx ou d'Apache (combined), cette ligne compte les User-Agents qui ont demandé /llms.txt, du plus fréquent au moins fréquent.
grep ' /llms.txt ' access.log | awk -F'"' '{print $6}' | sort | uniq -c | sort -rn
10. Exemples concrets de llms.txt
OpenAI, Anthropic et Google (Gemini API) publient un llms.txt pour leur propre documentation développeur (indiqué sur la page de la spécification). Nous n'avons trouvé aucune statistique sur le taux d'adoption : le tableau ci-dessous n'est qu'une indication de tendance.
Caractéristiques des sites pionniers
| Type de site | Taux d'adoption | Raison |
|---|---|---|
| Services/outils IA | Élevé | L'industrie IA est naturellement sensibilisee au LLMO |
| Documentation technique | Élevé | Besoin de transmettre l'information précisément à l'IA |
| Blogs tech | Moyen | Forte sensibilité aux tendances techniques |
| Sites corporate | Faible | Notoriété encore faible |
| Sites e-commerce | Faible | Les données structurées (JSON-LD) sont prioritaires |
Caractéristiques d'un bon llms.txt
- Description claire et concise -- le domaine d'expertise du site se comprend d'un coup d'oeil
- Tous les contenus listes avec résumé -- l'IA saisit la vue d'ensemble
- Système de catégories explicite -- la structure de l'information est visible
- Génération dynamique -- toujours à jour
Caractéristiques d'un mauvais llms.txt
- Juste le nom du site et un contact -- trop peu d'information pour aider l'IA à comprendre
- Copier-coller du texte intégral -- llms.txt est un « sommaire », pas un « texte complet ». Le texte intégral est le rôle de llms-full.txt
- Informations obsolètes laissées à l'abandon -- « 10 articles » alors qu'il y en a 50 en réalité, ce qui nuit à la crédibilité
- Informations confidentielles présentés -- URL d'administration ou clés API qui s'y trouvent
FAQ
Q. Mon site n'apparaîtra-t-il pas dans les résultats IA sans llms.txt ?
Non. L'IA peut lire vos pages directement et les citer sans llms.txt. Google indique explicitement qu'aucun fichier texte pour l'IA n'est nécessaire pour apparaître dans AI Overviews ou AI Mode, et dans les journaux de ce site, les robots d'IA ont lu des articles des centaines de fois sans jamais ouvrir llms.txt. Ne pas en avoir ne vous pénalise pas : c'est un fichier facultatif, utile quand vous voulez guider des agents.
Q. Si je bloque les robots IA dans robots.txt, llms.txt est-il utile ?
Si vous avez un User-agent: GPTBot en Disallow dans robots.txt, ce robot n'explorera pas votre site. Cependant, llms.txt est indépendant des règles de robots.txt. L'IA peut y accéder par d'autres voies (par exemple, un utilisateur qui colle l'URL directement). Si vous bloquez intentionnellement les robots IA, la cohérence veut que vous ne placiez pas non plus de llms.txt.
Q. Dans quelle langue faut-il écrire llms.txt ?
Pour les sites multilingues, en anglais. Pour les sites monolingues, la langue du site convient aussi. La spécification et les exemples sont principalement en anglais, ce qui en fait le choix le plus logique pour les sites multilingues en tant que langue neutre. Cependant, si le contenu d'un site est entièrement dans une seule langue, rédiger le llms.txt dans cette langue est acceptable. Les principaux LLM traitent la plupart des langues avec une grande précision, et les utilisateurs poseront leurs questions dans la même langue que le site, obtenant des réponses cohérentes.
Q. Y a-t-il une limite de taille pour llms.txt ?
La spécification ne fixe aucune limite ; elle dit seulement que le fichier doit rester assez petit pour tenir dans le contexte. À titre de repère, le llms.txt de ce site liste 225 articles et 40 chapitres de cours, une ligne chacun, et pèse environ 116 Ko (au 29 septembre 2026). S'il devient trop gros, raccourcissez les résumés d'une ligne, déplacez les liens secondaires dans ## Optional ou répartissez-le en plusieurs llms.txt par sous-chemin, comme le permet la v2. Pour fournir le texte intégral, liez les versions Markdown de chaque page.
Q. À quelle fréquence faut-il mettre à jour ?
Avec la génération dynamique, les informations les plus récentes sont renvoyées à chaque requête, donc pas besoin de s'en soucier. Avec un fichier statique, l'idéal est de mettre à jour à chaque ajout ou modification de contenu. Au minimum, vérifiez et mettez à jour une fois par mois. Si des informations obsolètes risquent de rester, il vaut mieux passer à la génération dynamique.
Q. Y a-t-il un impact sur le SEO ?
Il n'a pas d'effet sur le classement Google. Google explique que, y compris pour AI Overviews et AI Mode, aucun fichier texte pour l'IA ni balisage particulier n'est nécessaire et que les fondamentaux habituels du SEO s'appliquent (Google Search Central). Rien ne prouve non plus qu'il augmente les citations dans ChatGPT ou Perplexity. Pour savoir s'il sert à quelque chose, consultez vos propres journaux d'accès, comme dans la section 9.
Q. Existe-t-il un plugin WordPress ?
Oui. La liste de llmstxt.org cite Yoast SEO et AIOSEO comme extensions WordPress capables de générer llms.txt (au 29 septembre 2026). Quelle que soit celle que vous choisissez, vérifiez toujours le contenu généré. Quelques dizaines de lignes dans functions.php suffisent aussi à le faire vous-même : l'extension n'est donc pas indispensable.