The Joomla! Community Magazine™

Issue 2014 July > French

Robots.txt : optimisation SEO et sécurité

Written by | Tuesday, 01 July 2014 00:00 | Published in 2014 July
Certains robots sont bienveillants pour la santé de notre site; le fichier robots.txt en fait partie. Il va nous aider à mieux référencer notre site sur les moteurs de recherche.  Toutefois, quelques mesures de sécurité s'imposent.

Lorsque vous regardez à la racine de votre site web, vous trouverez un fichier nommé robots.txt. S’il ne s’y trouve pas, renommez l’éventuel fichier robots.txt.dist en robots.txt. Et si aucun des deux fichiers ne s’y trouve, copiez le code ci-dessous dans un fichier texte que vous sauvegarderez sous le nom de robots.txt à la racine du site.

Contenu par défaut

User-agent: *
Disallow: /administrator/
Disallow: /bin/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /layouts/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/

Tout ce qui n'est pas mentionné dans le code ci-dessus est par défaut en "allow" ce qui signifie que ce contenu-là peut être indexé.

À quoi sert ce fichier ?

robots.txt est lu par les logiciels (qu’on nomme « bots ») des moteurs de recherche afin de savoir ce qu’ils peuvent indexer c’est-à-dire reprendre dans leurs pages de résultats. Si vous regardez le code ci-dessus, vous lirez « Disallow : /administrator/ » ce qui donne ordre de ne jamais indexer une page qui pointerait vers l’administration du site Joomla!®. Quoi de pire en effet que de tomber, via Google pour ne citer que lui, sur une page de votre administration.

Pour s’assurer qu’aucune page de l’administration n’a été indexée, vous pouvez utiliser une recherche paramétrée comme celle-ci :

inurl:/administrator/ inurl:votre-domaine


Pour un site Joomla!, il n’y a en effet pas lieu d’indexer les urls qui pointent vers un des dossiers qui a été mentionné ci-dessus.

Remarque : dans les précédentes versions de Joomla! (jusqu’à la version 3.x), il y avait aussi une ligne Disallow: /images/ qu’il convient cependant de supprimer si vous désirez que vos images puissent être indexées dans le moteur de recherche des images. Il s’agit d’une source de référencement supplémentaire.

Optimisation SEO

Comme nous l’avons vu, le fichier robots.txt va contenir ce que peut ou ne pas indexer un moteur de recherche.

Sachant que le fichier est traité par les bots, on peut en tirer profit en y mentionnant son sitemap. Si vous utilisez un composant tel que xmap, récupérez l’url fournie par xmap et ajoutez ces lignes à votre fichier robots.txt (il suffit de l’éditer depuis soit votre logiciel de FTP soit via votre panneau de contrôle).

User-agent: *
Sitemap: http://votre-site/index.php?option=com_xmap&view=xml&tmpl=component&id=1

User-agent: * signifie que les lignes suivantes vont concerner tous les moteurs de recherche

Optimisation de votre bande passante

Peut-être regardez-vous les statistiques de fréquentation de votre site ; si vous voyez un grand nombre de connexions provenant de Chine vous pourriez souhaitez de bloquer … Baidu. Il s’agit de l’équivalent chinois de Google : en lui disant aimablement de ne plus indexer votre site ; il passera son chemin. Ce faisant, vous réduirez la consommation de votre bande passante et votre serveur pourra mettre ses capacités à destination de vos utilisateurs.

Pour cela, vous allez interdire certains moteurs de recherche :

User-agent: Baiduspider
Disallow: /

User-agent: Baiduspider-image
Disallow: /

User-agent: Baiduspider-mobile
Disallow: /

User-agent: Baiduspider-video
Disallow: /

User-agent: Baiduspider-news
Disallow: /

User-agent: Baiduspider-favo
Disallow: /

User-agent: Baiduspider-sfkr
Disallow: /

User-agent: Baiduspider-cpro
Disallow: /

La première ligne (User-agent:) cible un moteur de recherche précis. La seconde (Disallow: /) lui indique qu’il ne peut rien indexer.

Dans l’hypothèse où votre site est en construction, vous pourriez écrire :

User-agent: *
Disallow: /

Afin d’interdire à tous les moteurs de recherche d’indexer le site. N’oubliez pas de supprimer ces deux lignes une fois votre site prêt.

Sécurité

Vous pourriez être tenté d’écrire des lignes telles que celles-ci :

User-agent: *
Disallow: /secret_folder

Vous demanderiez donc aux moteurs de recherche de ne pas indexer les urls qui pointeraient vers votre dossier secret. Et ils le feront.

Toutefois, tous les bots ne sont pas « gentils » ; certains bots pourraient se dire « Tiens, tiens, il pourrait y avoir quelque chose de sympa à découvrir si on se rend sur http://votre-site.com/secret_folder. » En effet, les bots ne sont pas uniquement ceux des moteurs de recherche mais pourraient être des scripts ayant des desseins moins honnêtes.

Dans la même idée, n’oubliez pas que le fichier robots.txt est, en théorie, parfaitement accessible depuis l’url http://votre-site.com/robots.txt. S’agissant d’un fichier texte, si aucune protection n’est mise en place, le fichier sera affiché dans le navigateur et là, un humain pourrait se dire « Tiens, tiens, on tente de cacher un dossier… Allons voir si... » et taper alors http://votre-site.com/secret-folder dans la barre d’adresse du navigateur.

Pour le faire régulièrement (pour le fun), je tombe très souvent sur des pages réservées aux membres, sur des pages non protégées reprenant des rapports, des statistiques, sur un extranet, ... En ayant mis un disallow dans le fichier robots.txt, le webmaster a attiré l’attention sur l’existence d’un dossier ou d’un fichier précis.

 

Pour s’en protéger, au lieu de mettre un disallow: /secret_folder/, il serait préférable de créer un fichier .htaccess dans le dossier /secret_folder. Ce fichier contiendrait les lignes ci-dessous :

 

<IfModule mod_headers.c>
Header set X-Robots-Tag "noindex, nofollow"
</IfModule>

Ce code va insérer automatiquement un tag dans toutes les pages web se trouvant dans le dossier. Le code généré sera celui ci-dessous.

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

Le résultat, pour le moteur de recherche, est le même : interdiction d’indexer cette page. L’intérêt étant de ne pas mentionner l’existence du dossier dans le fichier robots.txt

 

Remarque : je parle de dossier mais c'est parfaitement applicable à un script (p.ex. Disallow: /phpinfo.php); ne riez pas, j'en ai vu un sur un site commercial qui n'attend qu'à se faire hacker.

 

Si vous souhaitez en lire plus sur ce sujet : http://robots-txt.com/

Read 3990 times
Tagged under French
Christophe Avonture

Christophe Avonture

Christophe Avonture

Développeur de

  • aeSecure, logiciel de protection et d'optimisation de sites web Apache
  • AllEvents, gestionnaire d'évènements pour Joomla!

Modérateur pour l'Association Francophone des Utilisateurs de Joomla (AFUJ), pseudo cavo789.

Membre fondateur de la JUG Wallonie.

Language Switcher

Current Articles