Comment bien gérer l'indexation de ses sites web ?

Les Pages Perso Chez Free

Par Al, le , dans Créer ses pages perso. / Dernière modification : le par Al (merci à Gaming Zone).
Tags : Tutoriaux, PHP, Spam, Assistance, Suspension, Apache, Sécurité

Un grand nombre de Pages Perso hébergent des sites familiaux dont les responsables ne souhaitent pas voir le contenu facilement accessible sur la toile. Le plus souvent, les administrateurs de ces sites utilisent des authentifications simples (par Apache, PHP ou Javascript) pour interdire l’indexation de leur contenu.

Si, techniquement, rien n’empêche, en effet, de mettre en place un site Web totalement fermé, cette pratique peut conduire à la suspension du compte, quel que soit le contenu du site. Comment faire, dans ce cas, pour limiter l’accès au site tout en se conformant aux règles d’usage des Pages Perso de Free ?

En guise d’introduction…

Dans ce billet, nous partons du postulat que les utilisateurs « ferment » les sites Web qu’ils administrent afin de limiter l’accès des robots d’indexation et, partant, des éventuels visiteurs qui pourraient être amenés à découvrir le contenu de leur site Web par cet intermédiaire. Une petite leçon de (dé)référencement sera donc utile pour jeter les bases de la discussion.

Comment fonctionne les robots d’indexation ?

Les robots (« bots » ou « crawlers ») d’indexation sont des programme automatisé qui listent le contenu des pages Web qu’ils visitent (« crawl ») et l’enregistre dans un index permettant de répondre rapidement aux requêtes des visiteurs des sites Web qu’ils alimentent. Les plus célèbres d’entres-eux sont Google, Yahoo/Bing, DukDukGo, Ask ou Baidu.

Ces robots suivent les liens contenus dans les pages Web, de lien en lien. Ils se basent sur les codes de statuts HTTP, des balises <meta name="robots" content="…">, des tags rel="nofollow" ou les en-têtes HTTP X-Robots-Tag et les fichiers robots.txt. La présence de ces éléments, souvent inconnus des webmasters amateurs, est vérifiée par les robots « sérieux » et les « aspirateurs » de site tel que wget. Si des ressources servies depuis un site Web correspondent à (ou présentent) l’une de ces directives ou une limitation de l’indexation, le robot s’y conformera ou ignorera la page. Votre site peut donc être totalement « invisible » pour les moteurs de recherche et leurs utilisateurs (une très très grande majorité des utilisateurs d’Internet).

Il est important de souligner que ces outils sont inefficaces vis-à-vis des robots et aspirateurs de site ne respectant pas ces directives (si l'utilisateur de tels outils a désactivé manuellement le respect des directives contenues dans le fichier robots.txt). Les sections réellement « sensibles » doivent donc toujours être sécurisées par une authentification du visiteur ou une interdiction d'accès pure et simple.

Le fichier robots.txt

Le fichier robots.txt a été inventé pour permettre une meilleure gestion de l'indexation des sites Web par les moteurs de recherche et les aspirateurs de site. Il est extrêmement simple a mettre en place sur un nouveau site ou un site existant et n’implique aucune modification de code dans les pages de votre site. Ce fichier doit être très exactement nommé robots.txt, être au format texte brut (type mime text/plain), et être localisé à la racine de votre compte afin d’être accessible depuis http://monsite.free.fr/robots.txt.

Chaque fois qu’un robot visitera votre site, il vérifiera si il existe un fichier robots.txt et contrôlera que l’URL visitée n’est pas « interdite » par celui-ci. Si l’indexation est autorisée, le robot continuera sa visite ; si l’indexation est interdite, il passera son chemin sans inclure la page visitée à son index.

Un fichier robots.txt ne permet pas de « cacher du contenu » car, étant accessible à tous, il permet de connaitre les URL ou des sections du site qui y sont incluses et de faciliter les tentatives d'accès à vos sections « sensibles ». Il est important de bien concevoir ce fichier et de s'appuyer en complément sur les balises balises <meta name="robots" content="…">, des tags rel="nofollow" ou les en-têtes HTTP X-Robots-Tag. Par ailleurs, les robots malintentionnés passeront le plus souvent outre les directives présentes dans ce fichier.

1. La syntaxe

La syntaxe du fichier est très simple. Pour autoriser l’indexation de la totalité du site (déconseillé), il suffit de ne pas placer de fichier, ou un fichier vide.

Pour interdire l’indexation de l’ensemble du site, il faut placer dans le fichier :

User-agent: *
Disallow: /

2. Contrôler l’indexation

Il existe deux directives permettant de contrôler finement l’indexation d’un site depuis un fichier robots.txt : Disallow: et Allow:. La première permet d’interdire des répertoires, fichiers ou URL spécifique. La seconde permet, au contraire, d’autoriser l’indexation de certaines section ou pages de votre site. Ainsi, si vous souhaitez interdire l’indexation de votre site, mais autoriser l’indexation d’une section « publique », placer dans votre fichiers robots.txt :

User-agent: *
Disallow: /
Allow: /section-publique/

Il est également possible de cibler précisément un moteur de recherche. Par exemple, pour interdire le moteur de recherche de Baïdu, mais autoriser l’indexation d'une certaine partie du site par les autres moteurs de recherche :

User-agent: *
Disallow: /
Allow: /section-publique/
Allow: /url-publique-2.html
User-agent: Baiduspider
Disallow: /

Un fichier robots.txt supporte également les caractères d’échappement « * » et « $ », il est donc possible de réaliser des filtres complexes.

  • * Correspond à zéro ou plus de tout caractères ;
  • $ Correspond à un/des caractère(s) de fin d’URL.

Quelques exemples :

Pour bloquer l'indexation de toutes les URL contenant « ? », préciser dans le fichier robots.txt :

Disallow: /*?*

Pour bloquer l'indexation de toutes les URL contenant « /index.php?go/… » :

Disallow: /index.php?go/*

Pour bloquer l'indexation de toutes les images (.gif, .jpg, .png et .ico) d’un site :

Disallow: .gif$
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .png$
Disallow: .ico$

D’autres exemples de fichier en production : Google, Baidu, DataGov.

3. Les directives

Les filtres peuvent s’appliquer à tous les robots ou seulement à certains robots spécifiés via la directive User-agent: <valeur>. Les valeurs possibles sont « * » (tous les robots) ou le nom spécifique des robots, dont la liste est présentée ici.

Il est possible d’inclure le chemin d’un plan de site (sitemap) via la directive Sitemap: <url complète du sitemap>. Cette valeur ne peux pas être définir par robot, elle est commune. Par exemple pour ce site, la directive est :

Sitemap: http://les.pages.perso.chez.free.fr/sitemap.xml

Il est possible de spécifier un délai entre deux indexation du site par la directive Crawl-delay: <valeur>. Les valeurs possibles sont : 1 (lent), 5 (très lent) ou 10 (extrêmement lent). Si cette directive n'est pas spécifiée, c'est le robot d'indexation qui déterminera la valeur adéquate de la fréquence d'indexation du site. Cette directive peut-être définie pour tous les robots ou différemment pour chacun d'eux. Par exemple, pour limiter la vitesse d'indexation de Bing mais laisser les autres robots d'indexation libre de définir la vitesse d'indexation du site :

User-agent: *
# Vos directives générales d'indexation
User-agent: bingbot
Crawl-delay: 10
User-agent: msnbot
Crawl-delay: 10

Les directive Disallow: et Allow: doivent être inscrites dans l’ordre Disallow: <valeur> puis Allow: <valeur>. Les valeurs possibles sont des répertoires, des fichiers, des URL complètes ou des portions d’URL ou de pages web (statiques ou dynamiques) selon les expressions régulières.

Liens utiles

Vous trouverez plus d’information sur le site officiel de Robots.txt.

La balise <meta name="robots" content="…">

Il est possible de contrôler finement l’indexation des pages web de votre site (pas les fichiers CSS, JS, images, archives…) en plaçant, entre les balises <head></head> de vos pages, la balise <meta name="robots" content="…">.

Les valeurs possibles sont index, noindex, follow, nofollow. Ces valeurs ne sont pas sensibles à la casse. Elle peuvent être associées en les séparant par des virgules.

Liens utiles

Vous trouverez plus d’information sur le site officiel de Robots.txt et sur le site des Outils pour les Webmasters de Google.

L’en-tête HTTP X-Robots-Tag

L’en-tête X-Robots-Tag permet de contrôler finement l’indexation d’un site. Elle est envoyée dans les en-têtes HTTP associées à la ressource visualisée. Sur les serveurs de Free, il n’est pas possible de la spécifier par Apache, mais il est possible de la générer via la fonction PHP header();. Elle n’est donc exploitable, sur les serveurs des Pages Perso de Free, que depuis des scripts PHP.

Les valeurs possibles sont :

all
Valeur par défaut (si aucune valeur d'indexation spécifiée par balise <meta name="robots" content="…"> ou par robots.txt). Il n'est pas nécessaire de l'utiliser.
noindex
Ne pas indexer cette page et ne pas proposer de version « cachée » de cette page dans les résultats.
nofollow
Ne pas suivre les liens présents dans cette page.
none
Équivalent à noindex, nofollow.
noarchive
Ne pas proposer de version « cachée » de cette page dans les résultats. L'indexation est autorisée.
nosnippet
Ne pas proposer de description courte dans les résultats pour cette ressource.
noodp
Ne pas utiliser les metadata du projet Open Directory pour cette page (y compris les descriptions courtes des résultats).
notranslate
Ne pas proposer de traduction de cette page.
noimageindex
Ne pas indexer les images de cette page.
unavailable_after: [date/heure au format RFC-850]
Ne pas proposer cette page dans les résultats après la date et l'heure indiquée. L'heure et la date doivent être au format RFC 850.

Si votre site est déjà indexé par les moteurs de recherche, que faire ?

Si votre site est dèjà indexé par des moteurs de recherche, vous pouvez demander la suppression des URL correspondantes à celui-ci en suivant les recommandations spécifiques au moteur de recherche correspondant (le plus souvent en créant un compte, puis en validant votre site). Vous pourrez ensuite contrôler l’indexation ou la non-indexation de votre site personnel.

Le cas de Bing (et de Yahoo)

Les robots d'indexation de Microsoft (BingBot et MSNbot) ne peuvent presque pas accéder aux serveurs des Pages Perso de Free car leur « comportement » à entrainé, à de nombreuses reprises, des lenteurs ou des indisponibilités des serveurs des Pages Perso. Leur plage horaire d'indexation se situe durant les heures de pointe des visites du public français (entre 17h et minuit) et la charge qu'ils représentent pour le service est très importante (l'administrateur du service parle de 95% des slots PHP occupés entre 17h et 22h). N'hésitez pas à vous rendre sur le forum Usenet des Pages Perso pour de plus amples informations, où ce sujet du forum de support communautaire de Microsoft.

Il est donc normal de constater un mauvais référencement des sites hébergés sur l'infrastructure des Pages Perso de Free dans les moteurs de recherche de Bing (et Yahoo, car le système d'indexation est commun) et l'impossibilité d'utiliser les outils pour les Webmasters de Bing.