Web tricks - Robots
Introduction
Les robots d'indexation (web wanderers,
web crawlers ou web spiders) sont des programmes qui
vont, comme leurs nom l'indique, indexér le Web.
Ces programmes vont référencés le contenu de votre
site : texte, images, adresses, etc...
C'est comme ça que Google indexe le
Web.
Il est possible que vous ne souhaitiez pas que l'on fouille dans votre
site pour divers raisons (économiser de la bande passante,
données «privées», ...).
Nous allons donc voir comment bloquer les robots (ou tout du
moins restreindre leur champ d'action).
robots.txt
Avant d'indexer votre site, les robots conventionnels
lisent un fichier nommé robots.txt
.
Ce fichier permet de spécifier quel robot à le droit ou
non d'indexer quelle partie de votre site. Il doit impérativement
être placé à la racine de votre site. C'est un simple
fichier texte, que vous pouvez créer avec n'importe quel éditeur
de texte (Notepad, Notepad++, vi, ...).
Le fichier robots.txt contient deux directives essentielles :
- Une pour identifier les robots :
User-agent
- Une pour retirer de l'indexation un dossier particulier :
Disallow
Une troisième directive est interpretée par certains robots
(entre autre Google), et permet d'autoriser un robot
à indexer une partie du site : Allow
.
Exemples
Refus à tous les robots d'indexer la racine de votre site :
User-agent: * Disallow: /
Refus à tous les robots d'indexer le dossier private
de votre site :
User-agent: * Disallow: /private/
Bloquer le robot de Google Image d'indexer votre site :
User-agent: Googlebot-Image Disallow: /
Bloquer tous les robots, sauf celui de Google :
User-agent: * Disallow: / User-agent: Googlebot Allow: /
Meta tag robots
Une autre manière de procéder consiste à placer
dans la tête de la page (<head>
) une balise
<meta>
spécifique aux robots.
<meta name="robots" content="noindex,nofollow" />
Cette balise admet 2 valeurs :
Value | Description |
---|---|
(no)index | Indexation ou non de la page.
Valeurs possibles : index et noindex |
(no)follow | Récupération et suivi des liens.
Valeurs possibles : follow et nofollow |
Exemples
<meta name="robots" content="noindex,nofollow" />
<meta name="robots" content="index,nofollow" />
<meta name="robots" content="noindex,follow" />
<meta name="robots" content="index,follow" />
Bad Bots
Cependant, tous les robots ne sont pas bienveillants.
Les mauvais robots ou bad bots vont ignorer
vos directives et récupérer des informations sur
votre site dans un but douteux (¬_¬“;)...
Du coup, il est utile de savoir bannir ces bad bots.
Cela se fait via la configuration du serveur Apache grâce
au .htaccess
.
En utilisant la possibilité de réécrire l'exclusion
de certains clients, on peut bloquer les bad bots connus.
Voici une proposition de .htaccess
tiré de
A Close to perfect .htaccess ban list
bloquant la plupart des bad bots connus :
# Blocking bad bots and site rippers <IfModule rewrite_module> RewriteEngine on RewriteBase / RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR] RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR] RewriteCond %{HTTP_USER_AGENT} ^Custo [OR] RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR] RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR] RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR] RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR] RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR] RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR] RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR] RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR] RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR] RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR] RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR] RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR] RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR] RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR] RewriteCond %{HTTP_USER_AGENT} ^HMView [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR] RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR] RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR] RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR] RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR] RewriteCond %{HTTP_USER_AGENT} ^larbin [OR] RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR] RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR] RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR] RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR] RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR] RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR] RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR] RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR] RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR] RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR] RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR] RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR] RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR] RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR] RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR] RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR] RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR] RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR] RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR] RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR] RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR] RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR] RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR] RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR] RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR] RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR] RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Wget [OR] RewriteCond %{HTTP_USER_AGENT} ^Widow [OR] RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR] RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule ^.* - [F,L] </IfModule>