L’une des grandes qualités de WordPress est de permettre à n’importe qui de créer et de mettre en ligne facilement son propre site web. Mais il souffre quand même d’un petit défaut, à savoir que l’on peut très rapidement se retrouver avec des contenus dupliqués si l’on n’y fait pas attention. C’est là que bien configurer son fichier robots.txt pour WordPress devient utile. En effet, en ayant mis en place les bons réglages, on va éviter de se retrouver avec des pages inutiles indexées ou du contenu dupliqué.

A quoi sert le fichier robots.txt ?

Le fichier robots.txt, que l’on trouve à la racine du site (dans le dossier www), permet d’indiquer aux robots d’indexation des différents moteurs de recherche ce qu’ils ont le droit d’indexer ou non sur votre site (pages, fichiers, médias…). Cela est particulièrement utile pour empêcher l’indexation de pages inutiles ou qui viendraient gêner l’indexation de pages plus importantes.

Les commandes par défaut : Allow et Disallow

Lorsque vous êtes sur le panneau d’administration et que vous allez dans Réglages puis Lecture, vous constatez qu’il y a un champ « visibilité pour les moteurs de recherche » avec une case à cocher en face « demande aux moteurs de recherche de ne pas indexer ce site ».

indexation site wordpress

Lorsque la case est cochée, voici ce qui se trouve dans le fichier robots.txt :

User-agent:*
Disallow: /

Cela signifie que nous allons demander à tous les robots de ne rien indexer sur le site

Maintenant, si la case est décochée, voici ce qui s’y trouve :

User-Agent: *
Allow: /

Cela signifie que tous les robots ont le droit d’indexer tout ce qu’ils vont trouver.

La structure des dossiers WordPress

Lorsque vous vous connectez au FTP de votre site, vous pouvez voir à la racine 3 dossiers qui contiennent les différents fichiers qui composent le CMS. Il est important de comprendre le rôle des fichiers et des dossiers de WordPress avant d’autoriser ou de bloquer leur accès aux robots d’indexation.

Le dossier wp-admin : il contient l’ensemble des fichiers liés au panneau d’administration de WordPress. Grâce à lui, vous pouvez vous connecter au back-office pour administrer votre site. Je ne vois donc aucune raison d’autoriser l’indexation du dossier wp-admin.

Le dossier wp-content : ce dossier regroupe tous les éléments de personnalisation que vous avez apportés à votre WordPress : le thème, les plugins, les images, les vidéos… Si le dossier wp-content n’a pas vocation à être indexé, il est sans doute judicieux d’ajouter des exceptions, notamment pour votre dossier d’images.

Le dossier wp-includes : il s’agit du cœur du site, il regroupe les éléments vitaux pour le bon fonctionnement de WordPress. Là encore, vous n’avez pas d’intérêt à permettre l’indexation du dossier wp-includes et des différents fichiers qu’il contient.

Attention : il ne faut pas recopier un fichier robots.txt trouvé au hasard si vous n’êtes pas sur de savoir ce que vous faites. En effet, certain sites peuvent avoir des raisons de ne pas vouloir indexer certains dossiers, alors que pour vous ils seraient essentiels. Afin de ne pas pénaliser votre indexation, il faut donc être vigilant aux lignes que l’on va écrire.

Les lignes de commandes du fichier robots.txt

Voici les principales instructions que vous pouvez utilisez pour bien optimiser votre WordPress :

User-agent : *   
# cela signifie que l’on s’adresse à tous les robots

Disallow: /wp-login.php   
# ne pas indexer la page de connexion du back-office

Disallow: /wp-admin   
# ne pas indexer le dossier wp-admin et ce qu’il contient

Disallow: /wp-content  
# ne pas indexer le dossier wp-content et ce qu’il contient

Disallow: /wp-includes  
# ne pas indexer le dossier wp-includes et ce qu’il contient

Allow: /wp-content/uploads/  
# On autorise l’indexation du dossier uploads contenant les photos et les vidéos... 
# Il s’agit d’une exception, 
# car ce dossier uploads est situé dans le dossier wp-content que l’on n’indexe pas.

Disallow: /cgi-bin 
# on n’indexe pas ce répertoire sensible

Disallow: /*.php$ 
Disallow: /*.inc$
Disallow: /*.gz$
Disallow: /*.cgi$
# on n’indexe pas les différents fichiers sensibles

Disallow: */trackback 
# on n’indexe pas les URL de trackback et ping

Disallow: /*/feed      
# on n’indexe pas les flux RSS sauf le flux RSS principal
# pour qu'aucun flux RSS ne soit indexé, il suffit de retirer le /*

Disallow: /*/comments  
# on n’indexe pas les URL des commentaires laissés par les internautes

Disallow: /*? 
# on n’indexe pas les URL contenant des paramètres particuliers
# cela permet notamment d'éviter les pages avec des contenus dupliqués

Allow: /*css?*  
Allow: /*js?*
# on autorise l’accès aux fichiers CSS et JS 
# pour ne pas être pénalisé sur la recherche par mobile.

Bien configurer le fichier  robots.txt spécialement pour WordPress

Voici un exemple de fichier bien optimisé :

User-agent: *
Disallow: /wp-login.php
Disallow: /*?

Disallow: /*/comments
Disallow: */trackback
Disallow: /*/feed

Disallow: /cgi-bin
Disallow: /*.php$
Disallow: /*.inc$
Disallow: /*.gz
Disallow: /*.cgi

Allow: /*css?*
Allow: /*js?*

Il faudra bien sûr l’adapter en fonction des spécificités de votre site et de ce que vous souhaitez indexer ou non.

Vous pouvez consulter mon propre robots.txt à cette adresse: https://olivier-chauvel.fr/robots.txt

Pour aller plus loin, vous pouvez également consulter le guide proposé par Google sur le sujet.

Tester son fichier robots.txt

Lorsque tout est en place, il vous suffit de rajouter l’extension /robots.txt à la suite de votre nom de domaine dans la barre d’adresse du navigateur pour l’afficher.

Vous pouvez vérifier que vous n’avez pas fait d’erreur en vous rendant sur Google Webmaster Tools. Dans le menu « Exploration », vous allez trouver une rubrique « Outil de test du fichier robots.txt ».

Si vous avez bloqué une URL spécifique, vous pourrez également tester ici si c’est bien le cas.

outil de test du fichier robots.txt de Google Webmaster Tools
L’interface de Google Webmaster Tools pour vérifier que vos commandes fonctionnent correctement.
Souhaitez vous évaluer cet article ?

11 réflexions sur « Optimisez votre fichier robots.txt pour WordPress »

  1. Bonjour, pouvez vous m’indiquer ou se trouve le fichier robots txt ? car je ne le retrouve pas via mon ftp. merci 🙂

  2. Bonjour, le fichier robots.txt est situé à la racine du site. S’il n’y a rien, alors vous pouvez le créer avec un simple éditeur de texte comme le bloc note de Windows. Veillez juste à bien l’enregistrer au format txt et à écrire tout le nom en lettres minuscules.

  3. Bonjour,
    Dans votre exemple « Bien configurer le robots.txt pour worpdress », vous n’indiquez pas de propriété particulière pour les wp-content, wp-includes, wp-admin (ni dans votre propre robots.txt)

    Faut-il restreindre l’accès à ces répertoires comme vous l’indiquez en début de chapitre ?

    Merci d’avance,
    Cordialement,

  4. Bonjour, vous pouvez très bien les ajouter à votre robots.txt
    Cependant, si vous décidez de mettre Disallow: /wp-includes alors ajoutez bien Allow: /*css?* et Allow: /*js?* car sinon Googlebot n’aura plus accès aux fichiers CSS et javascript de votre site et vous recevrez alors un message d’avertissement dans la search console.
    De plus si vous indiquez Disallow: /wp-content alors il faut ajouter au moins l’exception Allow: /wp-content/uploads/
    Vous aurez peut être aussi besoin de faire des exceptions pour d’autres dossiers comme celui des plugins par exemple
    Si vous n’êtes pas sûr de ce que vous faites, alors ne les ajoutez pas, comme c’est le cas dans l’exemple de fichier robots.txt pour WordPress donné à la fin de l’article

  5. Bonjour Olivier,

    Le robots.txt par défaut de WordPress viens avec les règles suivantes :

    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php

    Pourquoi ne pas les garder pour votre exemple ?

    De plus je vois que dans votre fichier robots.txt personnel vous avez bien bloqué l’admin mais pas l’exception :
    Allow: /wp-admin/admin-ajax.php
    Quel importance a t’elle vraiment ?

    Cordialement,
    Eric.

  6. Bonjour Eric,

    Autoriser l’accès au fichier admin-ajax.php lorsque l’accès au dossier wp-admin est interdit permet d’éviter de recevoir un message d’erreur dans la Google Search Console (comme pour les fichiers CSS et JS) si jamais un plugin ou autre fait appel à cet admin-ajax.php

    Aujourd’hui, il n’est plus vraiment recommandé de bloquer l’accès au dossier /wp-admin/ (vous pouvez également voir cet article en anglais pour plus d’informations : https://yoast.com/wordpress-robots-txt-example/ )

    Dans mon exemple, étant donné que je ne propose pas de bloquer le dossier wp-admin , il n’y a donc pas de raison de donner une autorisation d’accès spécifique pour le fichier admin-ajax.php car tout le contenu du dossier est déjà accessible.

    Pour finir, vous avez raison sur un point : dans mon fichier personnel, vu que je bloque encore le dossier /wp-admin/ il aurait été préférable de laisser Allow: /wp-admin/admin-ajax.php par mesure de précaution (cela ne m’a pas été nécessaire jusqu’ici car je n’ai aucun plugin qui l’utilise)

  7. Merci pour cette précision Olivier !

    Dernière question néanmoins, cette ligne :

    Disallow: /*?

    Elle me semble très efficace et presque une incontournable, néanmoins elle empêche à google le chargement de certaines ressources (du genre « fonts » principalement), je me dis personnellement que google n’a que faire de la police donc ce n’est pas grave, mais au final qu’en est-il vraiment ?

    exemple : /wp-content/plugins/revslider/public/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff?v=4.5.0

    Cordialement,
    Eric.

  8. La commande Disallow: /*? va vous permettre de prévenir l’indexation de contenu dupliqué. Le fichier que vous indiquez en exemple ne me semble pas avoir d’intérêt à être indexé.

  9. pour ma part google se plaint que
    google.com/maps/vt?pb=
    maps.googleapis.com/maps/api/js/
    ne sont pas accessible
    et je ne trouve pas ce qui bloque le robot dans robots.txt
    si vous avez une idée ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *