Contrôler la visibilité des pages d'un site sur les moteurs de recherche
Chaque jour, un site reçoit la visite de robots : des systèmes automatisés qui parcourent les pages pour alimenter les moteurs de recherche. Les serveurs de Google, Bing, Yandex et bien d'autres vérifient régulièrement si le contenu a été mis à jour, et l'enregistrent. On peut vouloir que certaines pages ne soient pas indexées, ou au contraire qu'une page modifiée soit réexaminée vite. Cet article présente les techniques et la différence, essentielle, entre empêcher l'exploration et empêcher l'indexation.
Explorer n'est pas indexer
- L'exploration (« crawl ») : le robot télécharge la page.
- L'indexation : le moteur enregistre la page pour pouvoir la proposer dans ses résultats.
Une page peut être explorée sans être indexée, et une adresse peut être indexée sans avoir été explorée, si d'autres sites font un lien vers elle.
Empêcher l'indexation : la balise meta robots
La méthode fiable pour qu'une page n'apparaisse pas dans les résultats est la balise noindex, dans l'en-tête de la page :
<meta name="robots" content="noindex">
Variantes : noindex, nofollow demande aussi de ne pas suivre les liens de la page ; noindex, follow les laisse suivre. Le robot doit pouvoir explorer la page pour lire cette balise : ne bloquez donc pas la même page dans le fichier robots.txt.
Empêcher l'indexation d'un fichier : l'en-tête X-Robots-Tag
Un PDF ou une image n'a pas de balise <meta>. On envoie alors la même consigne dans l'en-tête HTTP de la réponse. Exemple avec Apache, pour tous les PDF :
<FilesMatch "\.pdf$">
Header set X-Robots-Tag "noindex"
</FilesMatch>
Ce réglage nécessite le module mod_headers.
Empêcher l'exploration : le fichier robots.txt
Le fichier robots.txt, à la racine du site, demande aux robots de ne pas explorer certains chemins :
User-agent: * Disallow: /admin/ Disallow: /recherche Sitemap: https://www.example.com/sitemap.xml
Deux limites importantes. D'abord, ce n'est qu'une demande : les robots respectueux la suivent, les autres l'ignorent, et ce n'est donc pas une protection. Ensuite, une page interdite dans robots.txt peut quand même être indexée, sans description, si un lien y mène. Google ne tient plus compte d'une instruction noindex écrite dans robots.txt.
Protéger vraiment une page
Pour qu'un contenu reste privé, il faut une authentification (mot de passe, par exemple l'authentification HTTP d'Apache) ou un accès limité par adresse IP. C'est aussi la bonne méthode pour un site de test ou de préproduction.
Faire disparaître ou mettre à jour une page
- Page supprimée définitivement : répondre par un code 410 (« Gone ») ou 404. Si elle a un remplaçant, faire une redirection 301 vers lui.
- Page déplacée : redirection 301 de l'ancienne adresse vers la nouvelle.
- Page modifiée : dans Google Search Console, l'outil « Inspection d'URL » permet de demander une nouvelle indexation. Un plan de site (
sitemap.xml) à jour aide aussi. - Retrait urgent : l'outil « Suppressions » de Search Console masque temporairement une adresse des résultats (environ six mois). Il faut ensuite que la page ait réellement disparu, ou porte un
noindex, pour que le retrait dure. - Plusieurs adresses pour le même contenu : indiquer la bonne avec la balise
<link rel="canonical" href="https://www.example.com/page">.
Les erreurs courantes
- Bloquer une page dans
robots.txtet y mettre unnoindex: le robot ne la lit pas, donc ne voit jamais lenoindex. - Laisser dans le plan de site des pages en
noindexou redirigées : le plan de site ne doit contenir que des pages à indexer. - Oublier de retirer un
noindexou unDisallow: /mis pendant le développement lors de la mise en ligne.