Configurer le fichier robots.txt pour WordPress

robots.txt wordpress

EDIT 7 mai 2016 : Depuis que Google veut voir les fichiers css, js, etc… pour crawler et indexer correctement nos sites, et plus particulièrement les aspects mobiles,  il est impératif de ne plus lui bloquer les accès à ces fichiers comme expliqué dans cet article.
Le fichier robots.txt doit maintenant se limiter à l’essentiel, et le bon fichier « pour bien commencer » est celui-ci :

User-agent: *
Disallow:

Je laisse cependant le contenu de cet article original intact pour la culture générale 🙂

Le fichier « robotos.txt » se place à la racine d’un site et va permettre d’indiquer aux moteurs ce qu’ils ont le droit d’indexer ou non pour ce site web.
Dans le cadre d’un site utilisant WordPress il faut veiller à ajouter quelques instructions spécifiques dans le fichier robots.txt pour éviter… le pire…
Voyons comment faire.

Avant d’aller plus loin, un petit rappel sur le crawl et l’indexation des moteurs.
Je le disais en introduction, le fichier robots.txt va éviter l’INDEXATION. Il n’évite pas le CRAWL.
L’indexation est le fait de retrouver une URL en résultat de recherche d’un moteur.
Le crawl est le fait qu’un moteur lise une page/un fichier du site.
Les moteurs, et Google en tête, pourront passer des dizaines, des centaines de fois sur une page, la crawler donc, sans pour autant qu’elle ressorte dans les pages de résultats.
D’ailleurs le paradoxe est que Google doit crawler une page pour savoir qu’il ne doit pas l’indexer 🙂
Il y a des techniques pour éviter le crawl mais c’est un autre sujet.

La structure de WordPress

Pour construire un fichier robots.txt il faut connaitre la structure de son site, et donc en l’occurrence celle de WordPress. Heureusement elle est assez simple.

Notez que la structure peut fortement évoluer en fonction des plugins que vous installez.
Ouvrez votre FTP et regarder VOTRE structure. C’est sur la base de celle-ci que vous devrez construire votre propre robots.txt.

A la racine du site nous trouvons :

  • des fichiers
  • un dossier wp-admin
  • un dossier wp-content
  • un dossier wp-includes

wp-admin

Comme son nom l’indique, ce dossier abrite tout le backoffice d’administration.
Il y a donc aucune raison d’indexer ce dossier.

wp-content

Dans ce dossier on va trouver principalement « votre contenu ». Je ne parle pas de vos articles, qui, eux, sont en base de données, mais disons « votre personnalisation » de WordPress. On trouvera principalement : les thèmes et les plugins wordpress.
En fonction de votre personnalisation et des plugins que vous aurez installé on trouvera par exemple :

  • les fichiers de cache
  • les sauvegardes
  • les fichiers de traduction
  • etc…

Et enfin, c’est aussi dans ce dossier que l’on trouvera tous vos documents : images pour illustrer vos pages et articles, vos pdf, etc… Tout ce que vous aurez uploadé, tout les médias que l’on trouvera dans publications.
Cela tombe bien puisque tout ce petit monde est placé dans un dossier « uploads » : /wp-content/uploads.

wp-includes

Pour faire simple, c’est dans ce dossier que se trouve le moteur de WordPress.
Tout comme le dossier wp-admin, il n’y a pas de raison de laisser indexer ce dossier a priori.

L’erreur à ne pas faire : copier/coller un fichier robots.txt d’un autre site WordPress

Maintenant que l’on sait a comment cela fonctionne, on peut commencer à créer notre propre fichier. Mais on part sur une page blanche ? Pas forcément.
Mais alors là faites attention ! la première tentation serai de taper « fichier robots.txt worpress » dans Google et de faire un gros copier/coller… Je vous le déconseille fortement !

Voilà ce que l’on trouve généralement comme exemple (je le répète : ne copiez pas ce code !) :

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-login.php
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /category/
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /*?
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.gz$
Disallow: /*.swf$
Disallow: /*.wmv$
Disallow: /*.cgi$
Disallow: /*.xhtml$

Mis à part qu’on ne copie/colle jamais du code sans comprendre ce qu’il fait, je vais vous expliquer ce qui me dérange dans ce genre d’instructions.

Disallow: /category/ : Et pourquoi pas ? Imaginez le carnage si vous avez travaillé vos pages de catégories ? Plus aucune ne se retrouve indexée… Résultat, chute potentielle de trafic.

Disallow: */feed : La aussi c’est à vous de voir. A priori les moteurs savent (je n’ai pas dit comprennent…) ce qu’ils lisent. Normalement ils laissent ce genre de fichier de côté.

Disallow: /*? : Non plus ! Êtes-vous sûr de ne pas vouloir indexer les URLs qui contiennent un point d’interrogation ? Vérifiez vos Urls avant d’activer cette instruction.

Disallow: /*.php$ : Non, toujours pas… Vous êtes tout à fait libre d’ajouter des fichiers dans votre installation de wordpress. Si vous avez une page personnalisée qui est en php ? Là elle disparaitra des résultats des moteurs…

Disallow: /*.wmv$ : Des fichiers vidéos ? Pourquoi ne pas les indexer ? A vous de voir

J’insiste sur le fait qu’il faut bien comprendre ce que l’on fait.
Les règles ci-dessus ne sont pas mauvaises, mais disons qu’elles correspondent à une installation spécifique, un site spécifique et un besoin spécifique !

Un fichier robots.txt pour WordPress pour bien commencer

La bonne pratique est de commencer « gentiment », de régler les cas simples, et ensuite avec le temps et un peu d’analyse, on pourra compléter notre fichier robots.txt.

Je vous propose le fichier suivant :

User-agent: * 
Disallow: /wp-login.php
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Allow: /wp-content/uploads/

Explications :

User-agent: * : Concerne tous les robots

Disallow: /wp-login.php : la page de login de WordPress. Inutile de l’indexer.

Disallow: /wp-admin : le répertoire du backoffice d’administration. Là pas de doute, aucune raison de le laisser indexer, on l’interdit intégralement.

Disallow: /wp-includes : Même chose que pour le répertoire /wp-admin. A moins que votre installation nécessite une exception. Cela dit c’est rare…

Disallow: /wp-content : Plus délicat. Mais on va y revenir. Disons que par défaut nous allons aussi interdire ce dossier MAIS nous allons ajouter des exceptions.

Allow: /wp-content/uploads/ : Voilà l’exception ! Notez le « Allow » au lieu de « Disallow ». Bien que l’on interdise l’indexation de /wp-content, on permet quand même l’indexation des images et autres fichiers qui se trouvent dans /wp-content/uploads/.

Voilà une base ! Classique. Je le dit et re-dit, ajustez en fonction de vos besoins.
Mais là normalement, on ne peut pas faire plus simple et « peu risqué ». Mais il faut tester !

Tester son fichier robots.txt

Pour tester votre fichier robots.txt le plus simple c’est de vous rendre dans les outils Google pour Webmaster.
Allez dans la section ad hoc et collez le contenu de votre fichier dans la zone des instructions.
Ensuite indiquez quelques URLs pour voir si elles sont « acceptées » ou non.
Essayez avec la home, une page, un article, une page de catégorie, une image, un fichier… tout ce qui peut être représentatif. Logiquement tout passe.

Quand vous êtes satisfaits uploadez votre fichier robots.txt à la racine de votre site.

Une version avancée du fichier robots.txt pour WordPress

Maintenant nous allons essayer de voir s’il n’y a pas de règles spécifiques à appliquer.
Pour voir ce que Google a indéxé, le faut utiliser la commande « site: » :

https://www.google.fr/search?q=site:votre-domaine.tld

Epluchez les pages unes par unes et regardez ce qui sort.

Maintenant, supposez que vous voyez apparaitre un de vos fichier css. Là on peut se dire que cela ne sert à rien. Donc on peut globalement le supprimer.
Et par extensions, même chose pour les fichiers javascript ou autre.
Donc on pourra compléter notre fichier robots pour avoir quelque chose comme ceci :

User-agent: * 
Disallow: /wp-login.php
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Allow: /wp-content/uploads/
Disallow: /*.css$
Disallow: /*.js$

Les 2 dernières lignes indiquent : « tout ce qui se termine par .css » et « tout ce qui se termine par .js ».

Voilà, vous savez tout.
Configurer votre robots.txt à loisir et surtout… TES-TEZ !

21 commentairesLaisser un commentaire

  • Bonjour,

    Merci pour ce tuto c’est très bien expliqué. J’ai une question. Je viens de tester votre méthode et ce que j’ai mis a disparu
    User-agent: *
    Disallow: /wp-login.php
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content
    Allow: /wp-content/uploads/

    Est apparu

    User-agent: *
    Disallow: /wp-admin

    Sitemap : http://www.example.com/sitemap.xml.gz

    J’ai l’impression que ça fonctionne mais j’ai eu un message d’erreur en envoyant un sitemap :
    Votre sitemap dépasse la taille maximale de fichier autorisée. Veuillez créer plusieurs sitemaps contenant un plus petit nombre d’URL afin de respecter cette limite.

    Comment faire pour scinder le sitemap ? Merci

    Cordialement

  • Bonsoir Mirinda,

    Désolé mais je ne comprends pas votre message 🙂
    Enfin si… De ce que je comprends, vous avez mis ma proposition de robots.txt et au lieu de voir ce que vous avez mis, vous voyez à la place :

    User-agent: *
    Disallow: /wp-admin
    Sitemap : http://www.example.com/sitemap.xml.gz

    C’est çà ?
    Si oui je ne vois pas d’autres explications qu’une erreur quelque part où une problème avec votre serveur/hébergeur…

    Quelle est votre url ? Qu’on regarde

  • Bonjour,

    Utilisant WebMasterTools pour la première fois, je me suis aperçu que 42 ressources étaient bloquées pour l’indexation, ce sont essentiellement des fichiers css ou php des dossiers wp-content/themes et wp-content/plugins. Est-ce que ça apportera un + pour l’indexation si je mets Allow pour ces deux dossiers dans mon fichier robots.txt ? (en sachant que mon site est correctement indexé puisque WMT ne m’avertit d’aucune erreur d’indexation ou d’exploration).

    D’avance merci.

  • @nico très bonne question !
    Google sait de de mieux en mieux lire les JS et CSS et maintenant on doit lui laisser lire/interpréter pour qu’il comprenne mieux le site.
    C’est capital pour la prochaine mise à jour « mobile » de fin avril.
    Si on lui bloque les accès à ces fichiers, les thèmes pourront ne plus paraitre responsive ! Et cela deviendra pénalisant.

    Et je parle en connaissance de cause car je l’ai subit sur memoinfo.fr.

    Donc, maintenant, oui, on doit laisse google indexer les JS et CSS sinon on sera pénalisé par la suite.

    A+

  • Bonjour,
    Alors mon robot.txt est le suivant (sur vos bons conseils 😉 )
    User-agent: *
    Disallow: /wp-login.php
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content
    Allow: /wp-content/uploads/

    Et voilà que je reçois un message de google « Accès de Googlebot aux fichiers CSS et JS impossible sur le site (…) Supprimez les restrictions pour les fichiers CSS et JavaScript de votre site des instructions de votre fichier robots.txt »

    Je fais quoi du coup ??

    Merci d’avance,

  • Bonjour Tirips,

    Désolé pour la réponse tardive, votre message était passé dans les spams 🙂

    La ligne qui pose problème est celle-ci : « Disallow: /wp-content »
    En fonction de votre thème c’est elle qui va bloquer les accès au JS et CSS.
    Comme je le disais dans un commentaire plus haut, Google doit maintenant pouvoir lire les CSS et JS… Donc faut laisser passer…

    A binetôt

  • Je pense qu’il ne faut plus, depuis 2014 à peu près, mettre
    Disallow: /wp-includes
    car cela empêche l’accès aux js, css de WP, et le googlebot souhaite y avoir accès, et il vous écrira dans « google console » :
    « Googlebot cannot access CSS and JS files on http://votre-site.com/« 

  • Bonsoir Gilles,

    Merci pour votre commentaire.

    Effectivement vous avez raison. J’aurais dû faire un edit il y a bien longtemps et grâce à vous c’est chose faite 🙂

    Pour aller un peu plus loin, il n’y a pas que wp-includes de concerné mais pratiquement tous les dossiers :
    Les plugins dans /wp-content poseront systématiquement un problème, et voir même dans /wp-admin en fonction de ce qu’on utilise.
    Cela dépendra donc de chaque installation. Mais c’est vrai que par défaut maintenant on ne peut quasiment rien bloquer.

  • Bonjour j’aimerais savoir comment bloquer mes url du genre ?start=4 …. ?start=8 qui font doublons avec mes autres Url ? Merci et a bientôt !

  • Bonsoir Nicolas,

    Là comme çà, c’est un peu flou. Merci de nous donner plus de détails sur les urls exactes que l’on comprenne mieux.

  • Bonjour,

    « Je le disais en introduction, le fichier robots.txt va éviter l’INDEXATION. Il n’évite pas le CRAWL. »
    Attention, il est tout à fait possible de bloquer le crawl via le fichier robots.txt, tout simplement en indiquant les URL pour lesquelles on souhaite interdire l’accès à Google, et de ce fait les URL en question ne seront pas indexées.
    D’ailleurs pour interdire l’indexation d’une page qui aurait déjà été crawlée par Google, il faut ajouter une balise meta robots noindex sur la page, et ne pas lui interdire l’accès dans le fichier robots.txt, sinon celle-ci continuera d’être indexée, le crawl étant bloqué.

  • Bonsoir Stéphanie,

    Je n’ai pas vérifié depuis longtemps donc je ne sais pas ce qu’il en est aujourd’hui.
    Mais à l’époque de cet article et après avoir analysé mes logs, Google crawlait bien les éléments malgré leur blocage dans le robots.txt.
    Il serait intéressant de refaire un test aujourd’hui pour voir ce qu’il en est.

  • Bonjour,

    Je me permets de vous contacter parce que mon souci c’est que google me dit toujours que ma description n’est pas disponible à cause du fichier robot.

    Voici le mien comme je le vois dans search console

    User-agent: *
    Disallow: /wp-admin/
    Disallow: /wp-includes/
    Disallow: /wp-content/
    Allow: /wp-content/uploads/

    Pouvez-vous m’aider s’il vous plaît?

    Merci

  • Bonjour Ainahh,

    Effectivement, avec cette configuration vous bloquez des éléments maintenant nécessaires pour Google.
    Je vous invite à lire l’édit en début d’article qui explique le pourquoi il faut maintenant adapter sa configuration.
    Pour faire simple votre robots.txt ne doit plus bloquer ces dossiers
    Commencez avec cette configuration de base :

    User-agent: *
    Disallow:

    A bientôt

  • Coucou,

    J’ai un sitemap monite.fr/sitemap et lorsque je clique dessus j’ai accès aux différentes catégories de sitemap (pages, catégorie).

    1 – Est-ce que je répertorie le sitemap monite.fr/sitemap ou monite.fr/page et monite.fr/categorie ou les trois ?

    2 – Combien de temps ça met à s’indexer ? Car actuellement j’ai mis les trois et j’ai 4 liens d’indexés sur environ 400 URLs. « Catégorie » est fini et sur 16 URLs j’en ai aucun par exemple.

    3 – On m’indique que ma page d’accueil est bloquée alors qu’elle apparait dans google et on me dit que c’est à cause de « Disallow: /wp-content/ » dans robots.txt, comment remédier à cela ?

    Merci beaucoup pour vos lumières 🙂

  • Bonjour Marine,

    1/ Si le site n’est pas trop gros vous pouvez tout avoir dans une seule page /sitemap.xml. Sinon vous pouvez avoir, comme ici, un « sitemap » index avec un lien vers les pages, un vers les articles, un vers les catégories, etc… Pas de problème.
    C’est d’ailleurs préférable point de vue lecture dans les webmaster tools. Cela reste plus organisé.

    2/ Bonne question… C’est assez rapide en général, et dépendra je pense de votre trafic. Plus vous avez de visites, plus Google vient souvent. Mais dans tous les cas, un lien pointant vers les pages en questions sera plus efficace pour moi que le simple sitemap.xml.

    3/ Effectivement, bloquer des éléments dans le robots.txt pose problème dans certains cas. Je vous invite à lire le tuto relatif au robots.txt ici : /tutoriels-web/configurer-fichier-robots-txt-wordpress/ En veillant à bien prendre note de la remarque en rouge en début d’article.

    A bientôt

  • Bonjour,

    Ce auto est très bien expliqué ! Merci à vous pour l’article.
    Le souci c’est que j’ai un problème concernant l’envoi du fichier sitemap à Google.
    Il me dit que mon fichier sitemap n’est pas dans le bon format, qu’il devrait être en .XML
    Or, il est bien dans le bon format .XML

    Merci pour votre aide 🙂

  • Bonsoir Antoine,

    Il va falloir un peu plus de détails sur votre problème pour pouvoir le résoudre.
    Qu’elle est l’adresse de votre sitemap ? De votre site.
    Sans un minimum d’information, cela il va être difficile de vous aider.

    A vous lire.

  • Bonjour Pol,

    Etant débutant je ne sais pas où le placer dans mon backoffice ce fameux code…
    Je suis en WordPress Divi 3.22
    J’ai beau chercher mais rien à faire…. C’est mon premier site

    Bien à vous,

    Yves

  • Bonjour Yves,

    Dans le fichier « robots.txt », fichier texte qui se trouve à la racine de votre site.
    Vous pouvez y accéder en ftp

Vous avez aimé cet article ? Réagissez !

Votre email ne sera pas publié. Les champs requis sont marqués d'une astérisque *