llms.txt : le robots.txt de l'ère GenAI

2026-03-20  ·  2 MIN DE LECTURE  ·  MAJ : 2026-03-20

Le fichier robots.txt dit aux crawlers des moteurs de recherche ce qu’ils peuvent explorer. Le fichier llms.txt fait la même chose pour les LLMs - mais avec une différence fondamentale : il ne restreint pas, il explique.

Qu’est-ce que llms.txt ?

llms.txt est une convention proposée par Jeremy Howard (fast.ai) en 2024. L’idée : placer un fichier texte à la racine d’un site avec une description structurée du contenu, des liens vers les pages importantes, et un résumé de ce que le site représente.

Contrairement à robots.txt, ce fichier n’est pas un standard W3C. C’est une convention émergente, adoptée volontairement par les sites qui veulent maximiser leur lisibilité par les LLMs.

Pourquoi ça compte pour le GEO

Les AI crawlers comme GPTBot, ClaudeBot ou PerplexityBot parcourent le web pour entraîner des modèles ou construire des index de recherche. Quand ils arrivent sur ton site, ils ont besoin de comprendre rapidement :

  • Ce que fait le site
  • Qui en est l’auteur
  • Quels sont les contenus les plus importants

Le llms.txt répond à ces trois questions en quelques lignes de texte brut - un format que les LLMs lisent mieux que n’importe quel HTML.

Implémenter llms.txt sur Astro

Sur un site Astro avec Content Collections, on peut générer le fichier dynamiquement au build. L’avantage : la liste des articles se met à jour automatiquement quand tu ajoutes un article.

// src/pages/llms.txt.ts
import type { APIRoute } from 'astro';
import { getCollection } from 'astro:content';

export const GET: APIRoute = async () => {
  const posts = await getCollection('blog', ({ data }) => !data.draft);
  const sorted = posts.sort(
    (a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf()
  );

  const lines = [
    '# Nom du site',
    '',
    '> Description courte.',
    '',
    '## Articles',
    '',
    ...sorted.map(post => `- [${post.data.title}](/blog/${post.id})`),
  ];

  return new Response(lines.join('\n'), {
    headers: { 'Content-Type': 'text/plain; charset=utf-8' },
  });
};

Ce que ca change concrètement

Difficile de mesurer l’impact direct d’un llms.txt sur la visibilité dans les LLMs - les modèles ne communiquent pas leurs critères d’indexation. Mais la logique est simple : un contenu mieux structuré, plus facile à parser, est un contenu plus susceptible d’être compris et cité.

C’est la même logique que le schema markup pour Google : pas de garantie, mais un signal positif supplémentaire que tu peux envoyer sans effort.