vendredi 25 septembre 2026

À propos

Contact

SEO & GEO

Générer un fichier llms.txt pour WordPress destiné aux robots des IA génératives

Une convention encore jeune, inspirée du robots.txt, propose de guider les modèles de langage vers les pages qui comptent vraiment. Voici comment la mettre en place sur WordPress.

Par Clément Hadrot • 20 février 2024 • 4 min de lecture • Aucun commentaire
Générer un fichier llms.txt pour WordPress destiné aux robots des IA génératives

La convention llms.txt propose une idée simple : plutôt que de laisser un modèle de langage deviner quelles pages d’un site méritent d’être lues en priorité, on lui fournit directement une liste structurée, en Markdown, à la racine du domaine. Ce n’est pas une norme officielle du W3C, mais un usage qui s’installe progressivement, porté par plusieurs outils de documentation technique avant de gagner les sites de contenu classiques.

Sur un projet WordPress, la mise en place demande quelques choix d’architecture, parce que le CMS ne prévoit par défaut aucun mécanisme pour servir un fichier statique à la racine sans passer par le système de fichiers du serveur.

Étape 1 : décider du contenu du fichier

Un llms.txt typique commence par un titre en H1 Markdown, un court résumé du site, puis des sections listant les pages clés sous forme de liens avec une description d’une ligne.

# WP Moderne

> Blog technique dédié au développement WordPress moderne : SEO technique, blocs, performance.

## Pages essentielles

- [Guide du sitemap natif](https://wpmoderne.fr/sitemap-natif-wp55/): fonctionnement et personnalisation du sitemap XML de WordPress.
- [Schema Article en JSON-LD](https://wpmoderne.fr/schema-article-json-ld/): balisage recommandé pour les articles de blog.

## Documentation

- [Archives](https://wpmoderne.fr/archives/): historique complet des articles publiés.

Étape 2 : choisir entre fichier statique et génération dynamique

Deux approches coexistent. La première consiste à déposer un fichier llms.txt statique par FTP à la racine du site, à côté de robots.txt. Simple, mais il faut penser à le mettre à jour manuellement à chaque nouvel article important, ce qui devient vite un oubli récurrent.

La seconde, que nous privilégions sur les projets actifs, génère le fichier dynamiquement à partir du contenu réel de la base WordPress, via une route virtuelle interceptée avant le routage classique.

Étape 3 : intercepter la requête avec une règle de réécriture

L'essentiel à retenir : Un fichier texte en Markdown, pas en XML ; Généré dynamiquement plutôt que figé à la main ; Placé à la racine, hors du dossier wp-content

On enregistre une règle de réécriture qui redirige les requêtes vers /llms.txt vers un point d’entrée dédié, sans passer par le moteur de templates classique de WordPress :

add_action( 'init', function () {
    add_rewrite_rule( '^llms\.txt$', 'index.php?wpmoderne_llms=1', 'top' );
} );

add_filter( 'query_vars', function ( $vars ) {
    $vars[] = 'wpmoderne_llms';
    return $vars;
} );

add_action( 'template_redirect', function () {
    if ( ! get_query_var( 'wpmoderne_llms' ) ) {
        return;
    }
    header( 'Content-Type: text/plain; charset=utf-8' );
    echo wpmoderne_generate_llms_txt();
    exit;
} );

Après l’ajout de cette règle, il faut impérativement vider les permaliens depuis Réglages > Permaliens, ou exécuter wp rewrite flush en ligne de commande, sinon la règle reste enregistrée sans être active.

Étape 4 : générer le contenu depuis les articles les plus pertinents

La fonction wpmoderne_generate_llms_txt() interroge les articles marqués comme prioritaires — via une taxonomie dédiée ou un simple champ personnalisé — et construit le Markdown à la volée :

function wpmoderne_generate_llms_txt() {
    $output = "# " . get_bloginfo( 'name' ) . "\n\n";
    $output .= "> " . get_bloginfo( 'description' ) . "\n\n## Pages essentielles\n\n";

    $posts = get_posts( array(
        'meta_key'   => 'llms_prioritaire',
        'meta_value' => '1',
        'numberposts' => 20,
    ) );

    foreach ( $posts as $post ) {
        $output .= sprintf(
            "- [%s](%s): %s\n",
            get_the_title( $post ),
            get_permalink( $post ),
            wp_trim_words( get_the_excerpt( $post ), 20 )
        );
    }

    return $output;
}

Étape 5 : vérifier l’accessibilité et l’absence de blocage

  • Confirmer que /llms.txt répond bien en Content-Type: text/plain et non en HTML enveloppé par le thème.
  • Vérifier que le fichier n’est pas lui-même bloqué par une règle du robots.txt, ce qui arrive quand une règle générique interdit l’accès à tous les fichiers texte à la racine.
  • Éviter d’y placer des informations sensibles : le fichier est public, lisible par n’importe qui, pas seulement par les robots visés.

Un llms.txt qui liste tout le site sans hiérarchie ne sert à rien : l’intérêt est de désigner ce qui compte vraiment, pas de dupliquer le sitemap.

En résumé

Mettre en place un llms.txt sur WordPress ne demande ni plugin lourd ni changement d’architecture profond : une règle de réécriture, une fonction de génération, et une discipline de mise à jour suffisent. La convention est encore jeune et son adoption réelle par les moteurs génératifs reste à confirmer dans les mois qui viennent, mais le coût de mise en place est suffisamment faible pour justifier de s’y préparer dès maintenant.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi