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_txttransmet 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_txtde WordPress décrit une chaîne de sortie nommée$outputet un booléen$publicqui 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 cheminadmin-ajax.phpavant 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
- robots.txt
- Où se trouve le réglage de visibilité pour les moteurs de recherche dans WordPress ?
- Où se trouve le sitemap XML natif de WordPress ?
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
- WordPress Developer Resources, « robots_txt », sans date
- WordPress Developer Resources, « do_robots() », sans date
- WordPress Developer Resources, « add_filter() », sans date
- WordPress Developer Resources, « WP_Rewrite::mod_rewrite_rules() », sans date
- WordPress Developer Resources, « WP_Sitemaps::add_robots() », sans date
- 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