Comment déménager un blog WordPress sans plugin
Votre blog commence à avoir du succès, suffisamment pour se payer un vrai nom de domaine ? Mais si vous le déménagez sans précautions, vous risquez quelques ennuis. Déjà , son affichage sera altéré. Et puis vous perdrez tout votre référencement, et donc vos visiteurs !
Attention, ce tuto est réservé aux utilisateurs qui possèdent une (assez) bonne connaissance de MySQL d'une part, et de leur hébergement web d'autre part. Sinon, utilisez plutôt des plugins/extensions.
Dans nos exemples, l'ancienne URL est http://ancien.hebergement.com et la nouvelle sera https://nouveau.com. et on suppose que vous avez déjà déménagé les fichiers du site et sa base de données sur le nouvel hébergement.
Avant toute manipulation, n'oubliez pas de sauvegarder la base de données.
Mettre à jour l'URL dans la base de données.
Le petit défaut de WordPress, c'est que tous les liens sont absolus. Par conséquent, quand vous chercherez à accéder à votre blog à partir de la nouvelle URL, vous aurez un site tout moche, sans mise en page ni images, sur fond blanc et en Times new Roman (beurk).
Connectez-vous au PHPMyAdmin de la base de données du blog sur votre nouvel hébergement, sauvegardez la base, puis dans la zone de requêtes SQL (après avoir adapté avec vos noms de table et vos URL, bien sûr)
UPDATE wp_posts SET post_content=(REPLACE (post_content, 'http://ancien.hebergement.com/','https://nouveau.com/'));
UPDATE wp_options SET option_value = 'https://nouveau.com/' WHERE option_name IN ('siteurl', 'home');
Vérifiez notamment que vous avez bien le même nombre de slashes en fin d'URL.
Le code va
- remplacer l'URL à tous les emplacements où elle apparaît dans vos articles (qui sont stockés ici dans la table wp_posts)
- mettre à jour l'URL du site dans les enregistrements ayant pour clé siteurl et home de la table wp_options
Après exécution de ces deux requêtes, vous devez retrouver votre site avec son aspect habituel.
Si ce n'est pas le cas, vérifiez dans les CSS de votre template si par hasard il n'y aurait pas quelques URL absolues à corriger…
Effectuer la redirection 301 avec un fichier .htaccess
La redirection 301, ou redirection permanente, indique aux moteurs de recherche qu'un contenu a été déplacé d'une URL vers une autre de façon définitive.
Je n'ai pas envie de faire cela en php avec des fonctions header(), à moins d'avoir très peu d'articles. Parce que créer une page de redirection 301 pour chacun des articles, ça va vite devenir très fastidieux !
Créez un fichier texte vide nommé htaccess, et collez (en adaptant les URL à votre cas) ce qui suit :
RewriteCond %{HTTP_HOST} ^ancien.hebergement
.com [NC] RewriteRule ^/?(.*) https://nouveau.com/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^www.ancien.hebergement
.com [NC] RewriteRule ^/?(.*) https://nouveau.com
/$1 [L,R=301]
Le code permet de rediriger le trafic en provenance de l'URL avec et de l'URL sans www.
Vous placerez le fichier à la racine de l'ancien hébergement et le renommerez en .htaccess (puisque sous Windows en local, c'est impossible).
Enfin… N'oubliez pas de tester ! Et ensuite… pensez à mettre à jour les URL sur vos comptes Google Analytics et Google Search Console.
Sources
Comment faire une redireciton web et préserver votre référencement