» Comment désindexer une page de votre site ?

Comment désindexer une page de votre site ?

Plusieurs de mes clients essentiellement dans le cas de site de e-commerce ont ce soucis majeur de devoir désindexer un certain nombre de page pour diverses raisons (produits éphémères, pages purement techniques telles que tunnel de paiement, inscription etc...)

J'ai donc compilé dans cet article plusieurs approches pour désindexer une page.

La manière la plus simple est d'utiliser dans le bloc <head> de votre page les meta qui vont indiquer aux robot des moteurs de recherche de ne pas indexer la page et optionnellement de ne pas suivre les liens de cette page.

Pour cela on ajoute entre <head> et </head> les lignes suivantes :

<meta name="robots" content="noindex,nofollow" />

<meta name="googlebot" content="noindex">

Le premier pour les robots en général et le second pour google en particulier (qui reste tout de même le plus important actuellement)

le mot noindex indique de ne pas indexer (son contraire est donc index ), l'option nofollow indique de ne pas suivre les liens (son contraire est follow mais si on omet de le mettre ce sera follow par défaut). Si vous mettez les deux options n'oubliez pas la virgule qui les sépare !

Une alternative est de passer par le fichier robots.txt ce dernier recense des liens, des répertoires ou même des répertoires dont on a qu'un bout du nom ! Le fichier robots.txt commence par la ligne User-agent: * ou * indique que cela concerne l'ensemble des robots, mais si vous voulez que cela ne concerne que google, vous mettrez User-agent: Googlebot à la place. A titre d'indication pour yahoo c'est Slurp (no-comment !)

exemples :

User-agent: *

User-agent: * Disallow: /toto/   ====> désindexe le répertoire toto

Disallow: /page1.html   ====> désindexe la page nommé page1.html

Disallow: /rep*  ====> désindexe les répertoires commençant par rep par exemple les répertoires repas, repère, reputation

Disallow: /*.doc$  ====> désindexe toutes les url qui finissent par .doc (le symbole * en début et $ à la fin nous permet cette option)

Disallow: /*? désindexe toutes les url qui contiennent le caractère ? (hyper dangereux !!!)

Il existe d'autres options comme Crawl-delay, ou Allow: mais cela ne concerne pas l'ensemble des robots. Si vous souhaitez être référencé en priorité en Russie, Yandex supporte très bien la directive Allow: qui permet d'affiner les possibilités d'indexer, par exemple un sous répertoire d'un répertoire désindexé !

Attention : le fichier robots.txt et les meta peuvent donner lieu à des incohérences qui vous mèneront à l'effet inverse ! En effet une page peut être indexer via un lien d'une autre page, donc si robots.txt indique qu'il ne faut pas accéder à cette URL, la page sera quand même indexée et ne pourra être mis à jour par les robots puisqu'ils ne la liront jamais directement. Il est donc plus judicieux d'utiliser les métas sans le robots.txt dans ce cas précis !

Une troisième manière de faire est d'utiliser le fichier .htaccess sur votre serveur pour bloquer l'accès à un dossier. C'est radical et efficace à condition de bien savoir manipuler ce fichier, surtout quand il y a des redirections d'url dedans. Je ne rentre donc pas dans les détails, j'écrirai plus tard un article pour mettre en place un mot de passe avec htaccess.

Par contre une directive simple de .htaccess permet de bloquer par exemple les fichiers se terminant par .doc et .pdf dont voici l'exemple :

<FilesMatch "\.(doc|pdf)$"> Header set X-Robots-Tag "noindex, noarchive" </Files>

Appuyez vous sur les directives de robots.txt pour faire des essais ! Remarquez la ressemblance de syntaxe à quelques différences près...

Enfin, il y a une dernière méthode encore plus souple mais qui concerne essentiellement les développeurs php. En effet si votre site est du type dynamique (cms par exemple), il faudra repérer le bout de code qui permet de générer l'entête de la page à afficher. C'est très important car il faut que le code suivant en php :

header("X-Robots-Tag: noindex, nofollow", true);

ou header("X-Robots-Tag: noindex", true);

soit placé avant que le moindre contenu de la page soit renseigné pour l'affichage. En effet, header en php a plusieurs fonctions, il peut indiquer des directives comme précédemment ou rediriger une page si vous mettez une url à la place de la directive.

Cette directive est très efficace pour des url à ne pas indexer, vous pouvez d’ailleurs tester si votre directive est bien prise en compte avec le site suivant : http://web-sniffer.net/

 

 

Les commentaires sont fermés.