Comment modifier le contenu du robots.txt virtuel de WordPress ?

L'équipe Citead, mis à jour le

En bref. Utiliser une fonction de rappel robots_txt pour renvoyer la réponse WordPress modifiée, et vérifier si un fichier robots.txt physique contourne WordPress.

Définition : Le robots.txt virtuel de WordPress est une réponse textuelle produite par le code de WordPress, distincte d’un fichier robots.txt physique servi directement par le serveur web. Le filtre robots_txt transmet cette réponse à une fonction de rappel (callback), une fonction enregistrée qui renvoie le texte modifié, avant que WordPress ne l’affiche.

Points clés

  • Au 17 octobre 2026, la documentation de robots_txt de WordPress décrit une chaîne de sortie nommée $output et un booléen $public qui indique si le site est considéré comme public.
  • La fonction do_robots() de WordPress construit un groupe avec un agent utilisateur (user-agent) générique, interdit le chemin d’administration et autorise le chemin admin-ajax.php avant d’appliquer le filtre.
  • La documentation de add_filter() explique que les fonctions de rappel renvoient la valeur modifiée et s’exécutent par ordre de priorité.
  • Le générateur de règles de réécriture Apache de WordPress vérifie l’existence d’un fichier avant de diriger les requêtes vers le script d’index de WordPress. Un fichier robots.txt physique peut donc contourner le filtre de sortie de WordPress.

Comment le filtre modifie-t-il la réponse ?

Un filtre est un point d’accroche (hook) qui fait passer une valeur par des fonctions de rappel enregistrées. L’extrait PHP ci-dessous illustre l’enregistrement d’une fonction de rappel dans une extension personnalisée pour ajouter une adresse de sitemap tout en conservant le contenu reçu. L’adresse de l’exemple est à remplacer par celle d’un sitemap existant.

add_filter( 'robots_txt', function ( $output, $public ) {
    if ( $public ) {
        $output .= "\nSitemap: https://www.example.com/additional-sitemap.xml\n";
    }

    return $output;
}, 10, 2 );

Ce code suit le modèle de la méthode WP_Sitemaps::add_robots() de WordPress : ajouter une ligne Sitemap: lorsque l’indicateur de visibilité publique vaut vrai, puis renvoyer le contenu. La fonction de rappel personnalisée ajoute une adresse de sitemap distincte ; la méthode du cœur de WordPress fournit l’adresse de l’index de sitemaps du cœur.

Dans cet enregistrement, 10 est la priorité et 2 le nombre d’arguments acceptés. La documentation sur l’enregistrement des filtres de WordPress indique une priorité par défaut de 10 et un nombre d’arguments acceptés par défaut de 1. Accepter explicitement les deux arguments rend $public disponible. Les priorités les plus faibles s’exécutent en premier ; les fonctions de rappel exécutées ensuite peuvent donc encore modifier la réponse.

Que se passe-t-il lorsqu’un fichier robots.txt physique existe ?

Un robots.txt physique est un fichier texte stocké sur le serveur. Avec les règles de routage Apache standard de WordPress, un fichier existant contourne la route de repli vers WordPress. Le code source du générateur de règles de réécriture contient la condition !-f, qui réserve cette route aux requêtes sans fichier correspondant.

Une fonction de rappel peut donc être correctement enregistrée alors que l’URL publique sert toujours un fichier physique. Modifier ce fichier change le contenu servi par le serveur. Pour modifier la réponse virtuelle, la requête doit parvenir au gestionnaire robots de WordPress. La vérification de la réponse effectivement servie précède toute modification des priorités des fonctions de rappel PHP.

Comment vérifier la réponse publique ?

La réponse publique se vérifie à l’URL /robots.txt du site après modification de la fonction de rappel. La RFC 9309 prescrit ce nom de fichier en minuscules à la racine du service, avec un encodage UTF-8 et le type de média text/plain. Elle donne l’URL suivante en exemple :

https://www.example.com/robots.txt

Pour l’exemple de sitemap ci-dessus, le texte renvoyé doit contenir la ligne Sitemap: configurée lorsque $public vaut vrai. La vérification porte sur toute la réponse, y compris les règles déjà présentes avant l’exécution de la fonction de rappel. Le code source de do_robots() de WordPress définit un type de contenu texte brut et affiche la valeur renvoyée par apply_filters( 'robots_txt', $output, $public ).

Termes associés

Questions fréquentes

Faut-il renvoyer ou afficher le texte modifié ?

Renvoyez la chaîne de sortie depuis votre fonction de rappel. La documentation de robots_txt montre que WordPress affiche la valeur de retour filtrée.

Ce filtre peut-il modifier un fichier physique ?

Le filtre modifie la valeur produite pendant l’exécution de WordPress. Si votre serveur sert directement un fichier robots.txt physique, modifiez ce fichier ; les règles de réécriture Apache standard de WordPress contournent les fichiers existants.

D’où vient l’indicateur de visibilité publique ?

L’implémentation de do_robots() de WordPress lit l’option blog_public et la convertit en booléen avant de la transmettre au filtre.

Sources

  1. WordPress Developer Resources, « robots_txt », sans date
  2. WordPress Developer Resources, « do_robots() », sans date
  3. WordPress Developer Resources, « add_filter() », sans date
  4. WordPress Developer Resources, « WP_Rewrite::mod_rewrite_rules() », sans date
  5. WordPress Developer Resources, « WP_Sitemaps::add_robots() », sans date
  6. IETF, « Robots Exclusion Protocol », septembre 2022

Vérifiez comment une page se lit pour les moteurs de réponse. Ouvrir l’analyseur de score GEO

Testez une page et voyez quoi corriger en premier

L'analyse prend en général moins de 10 secondes et ne demande pas de compte.

400 000+ pages notées dans le benchmark public