SEO et site en maintenance, on raconte quoi à Googlebot?
13 Jan 2014
écrit parIl est parfois nécessaire de mettre son site en pause quand des maintenances doivent être effectuées (upgrade d'un CMS, maintenance base de données, mise en ligne d'un site de préprod, etc.).
Une page "Site en maintenance" sera donc affichée sur le site Web, invitant les internautes à patienter quelques minutes heures et à revenir plus tard, et ce quelque soit l'URL appelée.
Mais un problème se pose... pendant ce temps là, Googlebot, Bingbot, Yahoo!Slurp et tous nos amis crawlers qui visitent le site, on leur montre quoi?
Erreur 503, c'est dans l'en-tête
Les crawlers, ils faut leur parler dans les en-têtes HTTP. Il est recommandé de renvoyer aux robots d'indexation un status HTTP 503 (5xx = erreurs) qui signifie: "Service indisponible" (Service Unavailable / Service temporairement indisponible ou en maintenance).
Il arrive que certains administrateurs système, peu soucieux du sort réservé à Googlebot et plutôt concentrés sur la maintenance elle-même, effectuent des redirections temporaires (302) vers une page qui elle répondra en 503. Googlebot n'aime pas ça, quand il a trop de 302, ça peut vite l'agacer: site instable, on ne sait pas où on va...
Faire des redirections 301 vers une page répondant en 503 est également une mauvaise solution puisque 301, c'est permanent. Pour toujours quoi! ça cloche.
Donc on fait quoi? Plutôt que de donner un coup de massue à votre administrateur système préféré (comme le fait si bien Laura à Nicky Larson pour d'autres raisons), nous allons afficher une page d'erreur 503 pour l'ensemble des URL sans redirection intermédiaire. Cela permettra à Googlebot de ralentir son crawl temporairement, plutôt que de se recevoir des status HTTP divers et variés qui pourraient vous pénaliser pour la suite.
Update:
Pour s'exprimer plus directement vis à vis de Googlebot, il est conseillé de renvoyer une 503 sur l'appel du fichier robots.txt: cela bloquera le crawl de Googlebot, pour éviter de solliciter le fameux serveur en cours de maintenance justement. Il reviendra régulièrement visiter le fichier robots.txt, et relancera son crawl dès que ce dernier sera à nouveau disponible en 200 (source: https://plus.google.com/+PierreFar/posts/Gas8vjZ5fmB).
Apache, paye ta page d'erreur 503
Pour une meilleure expérience utilisateur, il est préférable de lui afficher une page d'erreur personnalisée moche afin de lui suggérer de revenir prochainement. Via des règles de réécriture et quelques conditions, voici les lignes à rajouter dans la configuration de votre serveur Apache (vhost, ou .htaccess), pour qu'il affiche une page d'erreur 503 (503.html dans cet exemple), sans passer par des redirections:
#on déclare sa page d'erreur 503 ErrorDocument 503 /503.html #on réveille le module mod_rewrite RewriteEngine On #pas de 503 pour votre adress IP RewriteCond %{REMOTE_ADDR} !123.45.67.89 #On ne renvoit pas de 503 pour les fichiers images, Googlebot-Image peut continuer son travail RewriteCond %{REQUEST_URI} !.(css|gif|jpg|png)$ #on evite les boucles de redirection RewriteCond %{DOCUMENT_ROOT}/503.html -f RewriteCond %{SCRIPT_FILENAME} !503.html RewriteCond %{REQUEST_URI} !^/?503 #on réecrit toutes les URL RewriteRule ^.*$ /503.html [R=503,L]
Les commentaires (#) vous permettront d'adapter le code selon vos besoins.
Et le tour est joué!
écrit dans Crawl et indexation par |