La problématique est donc de signaler à tous, y compris moteurs de recherche que l’on a changé d’adresse.
Je vais partir du postulat (largement vérifié chez les hébergeurs gratuits) que le serveur web est apache et que PHP est installé/activé.
L’opération se fait en 3 mouvements :
- transférer le site sur le nouvel hébergeur (via FTP probablement)
- vider l’ancien site
- placer sur l’ancien site les fichiers nécessaires pour signaler le changement d’adresse
Théorie du n’habite plus à l’adresse indiquée (301 Moved Permanently)
Dans sa documentation pour les webmasters, Google indique :
Si vos anciennes URL utilisent des redirections HTTP 301 (permanentes), notre robot d’exploration détectera les nouvelles URL. Pour plus d’informations sur les redirections HTTP 301, consultez la page http://www.ietf.org/rfc/rfc2616.txt (en anglais).
En français dans le texte : les normes des protocoles de communication du web (HTTP) ont prévu le cas du déménagement et Google en tient compte.
En pratique, le 301 Moved Permanently
Nous allons mettre en place 3 fichiers :
- index.php : la page par défaut du site
- .htaccess : une directive pour le serveur web apache
- erreur404.php : la page d’erreur du site pour renvoyer sur le nouveau site
Ces 3 fichiers sont à placer à la racine du site.
index.php
La page par défaut du site.
Quelques lignes de PHP pour indiquer aux navigateurs et aux moteurs de recherche que la page a changé d’adresse :
- Pour les visiteurs, la redirection est absolument transparente
- Pour les moteurs de recherche, l’index est mis à jour et dans le cas de Google, le PR est transféré
.htaccess
Il s’agit d’un fichier de configuration de votre serveur web apache qui peut changer le comportement de celui-ci.
Cette simple ligne indique au serveur web apache que s’il ne trouve pas une page, il doit afficher à la place la page erreur404.php (le nom est arbitraire).
erreur404.php
La page d’erreur (déclarée dans le .htaccess) du site pour renvoyer sur le nouveau site.
Même fonctionnement que index.php à un détail près : on utilise header("Location: http://www.pyrat.net/.$_SERVER['REQUEST_URI']"); qui permet de renvoyer non plus sur la page d’accueil du nouveau site, mais sur la page demandée sur le nouveau site. Cela est à utiliser sur un site qu’on a simplement déplacé.
Si le site a été refondu dans l’opération (changement de technologie, passage d’un site statique à un site SPIP…), alors une redirection sur la page d’accueil fera l’affaire (idéalement, il faudrait établir une correspondance entre les anciennes URL et les nouvelles, mais c’est particulièrement fastidieux).
Alternative avec .htaccess seul
Cette simple ligne peut être utilisée pour indiquer que toutes les pages de l’ancien site renvoient sur la page d’accueil du nouveau site.
Permet par contre de signaler que l’ancien site a changé de nom de domaine, mais que les URL des fichiers sont transmises à l’identique.