Migration WordPress : comment migrer son blog ?
L’ancienne URL de mon blog était http://NEWS.ya-graphic.com. « NEWS » était le sous-domaine que j’avais mis en place pour rédiger des articles d’actualités, d’où son nom.
L’ancienne URL de mon site statique – il n’existe plus aujourd’hui – était http://WWW.ya-graphic.com. Ce site était à l’abandon, rarement mis à jour. Une migration WordPress a été nécessaire pour fusionner mon blog et mon site. J’ai donc migré le blog http://NEWS.ya-graphic.com vers http://WWW.ya-graphic.com. J’ai mis les sous domaines en évidence pour que vous compreniez qu’il s’agit d’une migration entre sous domaines. Cette solution de migration est aussi valable :
- entre deux blogs de domaines différents,
- entre un blog en sous domaine et un blog en répertoire,
- entre un blog en domaine et un blog en répertoire,
- etc.
Cette migration de blog WordPress est une méthode parmi d’autres, voici celle que je vous propose.
1. Migration WordPress
Pour commencer, ne vous précipitez pas. Partir sans penser à tout et ne rien anticiper, c’est risqué. Il faut d’abord prévoir toutes les manœuvres qui seront mises en place afin d’éviter les dégâts. Si c’est votre première fois, vous n’éviterez pas les problèmes. Si votre blog attire un trafic important vous pouvez consulter un spécialiste, c’est plus sûr.
2. Sauvegarde fichiers et dossiers du blog
D’abord et avant toute chose, faites une sauvegarde de tout le contenu de votre blog WordPress. Vous avez un logiciel FTP – FTP Expert ou FileZilla par exemples -, téléchargez tous les fichiers, les dossiers et sous dossiers WordPress et placez-les dans un dossier spécial que vous aurez préalablement créé sur le bureau de votre ordinateur. Le dossier le plus important de votre blog, le coeur de votre blog WordPress, c’est le dossier wp-content, n’oubliez pas, téléchargez-le. Après la copie intégrale de vos fichiers et dossiers, assurez-vous qu’il ne manque aucun fichier. Le logiciel FTP a peut-être négligé des fichiers. Faites la manipulation deux fois si nécessaire.
3. Sauvegarde base de données Mysql
N’oubliez surtout pas de faire une sauvegarde de votre base de données. Ce serait dommage de migrer un blog sans la totalité de son contenu. Pour faire cette sauvegarde, vous avez deux possibilités : soit vous vous rendez sur l’interface phpMyAdmin et vous faites un export de votre base de données, soit vous installez une extension WordPress pour faire une sauvegarde depuis votre blog.
4. Page de maintenance temporaire
Pendant votre travail de migration, installez une page temporaire sur la page d’accueil de votre ancien blog et sur le site destinataire avec un message de type : « Le site est en cours de maintenance » ou bien « des travaux sont en cours, veuillez nous excuser pour ce désagrément ». La page temporaire vous permettra d’éviter que des pages d’erreur s’affichent pendant que les utilisateurs visitent votre blog – ou votre site web si c’est un site statique.
5. Transfert des fichiers et dossiers
Comment feriez-vous pour migrer mon blog ? La première idée serait de transférer la totalité du contenu de mon ancien blog (« Mon Blog ») vers la racine du site « www ». Ce n’était pas ma démarche et il est préférable de ne pas la choisir.
L’erreur que j’ai commise a été de changer immédiatement – sans avoir désactivé les extensions – l’ancienne URL http://news.ya-graphic.com par la nouvelle http://www.ya-graphic.com dans les Options générales du panneau d’administration de WordPress. L’idée paraissait pourtant facile et je me suis laissé tenter. C’est une solution de migration que j’éviterai si une autre occasion de migration se présente car mon blog était resté inaccessible via le login. Cette option de redirection a créé un gros problème de résolution DNS. C’est donc une option que je déconseille.
La racine de mon ancien site statique a été vidée de tout son ancien contenu, seuls le répertoire de mon ancien blog « news », une page index – en guise de message de maintenance, c’est facultatif – et d’autres répertoires étaient restés en place. J’avais au préalable copié les fichiers et dossiers – pages html, images jpg – de l’ancien site statique www.ya-graphic.com.
Dans la racine « www », j’ai re-installé le pack WordPress version française – procédure habituelle d’installation -. J’y ai placé mon ancien fichier wp-config.php – celui que j’ai sauvegardé, avec biensûr les mêmes identifiants de ma base de données. Ensuite j’ai re-placé mon ancien thème. N’oubliez pas placer aussi le dossier wp-content que vous aviez sauvegardé sur votre ordinateur. Wp-content contient toutes vos images, extensions, votre thème, etc. En bref vous reconstruisez tout votre blog en mettant à jour toutes les modifications antérieures.
Le transfert de votre blog devrait être réalisé.
6. Modifications d’URLs
Votre blog a été migré. Il faut maintenant modifier toutes ses URLs dans la base de données. Allez dans phpMyadmin pour faire une mise à jour des URLs de vos articles publiés – ou au brouillon. Voici la première commande à entrer dans MySQL, attention soyez vigilants :
UPDATE wp_options SET option_value = replace(option_value, ‘http://www.mon-ancien-blog.com’, ‘http://www.mon-nouveau-blog.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
Ce code remplace les références à – ancienne URL – par la nouvelle adresse de mon blog dans la table wp_options.
Ensuite il faut changer l’URL relative des billets dans la table wp_posts :
UPDATE wp_posts SET guid = replace(guid, ‘http://www.mon-ancien-blog.com’, ‘http://www.mon-nouveau-blog.com ‘);
Et pour terminer, il faut effectuer un rechercher/remplacer dans vos contenus pour vous assurer qu’aucun lien en URL absolue ne traîne avec l’ancienne adresse.
UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.ancien-site.com’, ‘http://www.nouveau-site.com’);
7. Redirection permanente (301)
Vérifiez que votre site est accessible depuis votre nouvelle URL. Dans les résultats naturels de votre moteur de recherche favori vos anciennes URLs sont toujours affichées, c’est normal. Si quelqu’un clique sur un de vos liens, l’URL de votre blog risque de mener le visiteur vers une page d’erreur. Pour éviter cela il faut créer une redirection des anciennes URLs de vos articles vers les nouvelles URLs. Ainsi vous éviterez de perdre votre trafic – nombre de visites – et surtout votre classement dans les résultats de recherche.
Vous devez mettre en place une redirection permanente appelée aussi « redirection 301 ». OVH propose gratuitement un service de redirections permanentes, « redirections 302 », ne les utilisez pas car les robots des moteurs de recherche ne les apprécient guère. OVH ne vous dit pas que ce sont des redirections 302, mais on peut le savoir en faisant une analyse des en-têtes HTTP du blog. Vous pouvez télécharger une petite extension pour le navigateur Firefox afin d’identifier vos redirections : HttpFox. Cette extension surveille et analyse toutes les entrées et sorties du trafic HTTP entre votre navigateur et les serveurs web.
Pour réaliser une redirection 301, dans le répertoire du sous domaine vous devez placer un fichier .htaccess. Un fichier .htaccess est un simple fichier texte que vous renommez par « .htaccess » – sans extension de fichier, n’oubliez pas le « . » devant « htaccess ». Ces fichiers peuvent aussi servir à configurer vos pages d’erreur 404 ou à empêcher l’affichage du contenu d’un dossier. Voici ce que vous y noterez :
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mon-ancien-blog.com
RewriteRule ^(.*) http://www.mon-nouveau-blog/$1 [QSA,L,R=301]
Redirection 301 des anciens liens du site www.ya-graphic.com
Pour faire la redirection des pages, voici le code à ajouter à votre fichier .htaccess :
RewriteRule ^ ancienne-page\.html$ [R=301,L]
IMPORTANT: La redirection 301 du fichier .htaccess ne fonctionne que pour sites hébergés dans des serveurs Linux ayant le module Apache Mod-Rewrite activé.
[divide style=”2″]
Si vous avez besoin d’aide dans votre travail de migration de blog WordPress, n’hésitez pas à laisser un message sur la page contact du blog, une réponse vous sera envoyée dans les meilleurs délais.
Antoine
25 mars 2009 15 h 03 minDis-donc tu as mis plusieurs jours à relancer ton blog? J’ai cru qu’il était down définitivement. Rassuré de le voir de retour en tout cas 😉
admin
25 mars 2009 19 h 24 minSalut Antoine, mon nom de domaine avait expiré, il était en statut redemptionperiod, difficile d’en sortir quand on y est. J’ai quelques problèmes à résoudre avec la société 1and1 (le registrar de mon nom de domaine ya-graphic.com) qui ne m’a rien signalé.
Antoine
26 mars 2009 14 h 40 minC’est bizarre, je suis également chez 1and1 mais moi il me renouvelle automatiquement mes ndd (sans que je lui demande d’ailleurs…).
Sab
28 octobre 2010 2 h 44 minBonsoir
Je n’arrive pas à aller au bout de ma mise à jour de dotclear vers wordpress.
De mon côté Dotclear était à la racine. J’ai installé WordPress dans un répertoire blog
Mes anciens url :
http://www.monsite.com/index.php/2009/10/07/551-titre
Mes nouveaux url :
Comment faire la redirection en supprimant le nom du répertoire dans l’adresse ?
Merci par avance !
Harold
31 août 2011 19 h 27 minBonjour,
Je n’y connais pas grand chose en dev mais j’ai suivi l’ensemble de vos étapes et je bloque à l’étape 6.
J’ai un msg d’erreur de syntaxe.
“Il semble qu’il y ait une erreur dans votre requête SQL. Le message ci-bas peut vous aider à en trouver la cause.
ERROR: Ponctuation invalide @ 65
STR: ://
SQL: UPDATE wp_options SET option_value = replace(option_value, ‘http://localhost:8888/wordpress’, ‘http://letsbuzzit.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’
requête SQL:
UPDATE wp_options SET option_value = replace(option_value, ‘http://localhost:8888/wordpress’, ‘http://letsbuzzit.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’
MySQL a répondu:Documentation
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘://localhost:8888/wordpress’, ‘http://letsbuzzit.com’) WHERE option_name =’ at line 1 ”
Avez vous une idée d’où l’erreur peut provenir??
ya-graphic
31 août 2011 19 h 57 minCette URL “http://localhost:8888/wordpress” est l’adresse de votre blog en local ?
Harold
31 août 2011 20 h 07 minOui c’est bien ça
Harold
1 septembre 2011 15 h 20 minPour ceux qui rencontreront le même problème que moi:
J’ai résolu le prob avec l’aide d’un ami… Problème avec les guillemets [‘]. Il faut des backquotes [`].
vanessa
6 décembre 2011 15 h 14 minBonjour,
Les modifications de redirection fonctionnent cependant mes liens renvoient tous vers ce message
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, postmaster@www.grandbornand-location.fr and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Pouvez vous m’aider, svp.
Merci beaucoup.
ya-graphic
6 décembre 2011 15 h 17 minVous avez mis à jour les URL dans la base de données ?
vanessa
6 décembre 2011 15 h 21 minoui, tout à fait.
vanessa
6 décembre 2011 15 h 47 minapparemment c’est un pb au niveau de .htaccess
:-s
ya-graphic
6 décembre 2011 15 h 56 minQu’est-ce qui vous fait dire que c’est un pb de .htaccess ?
vanessa
6 décembre 2011 16 h 06 minQuand je modifie le .htaccess le message change.
Si je met seulement dans le .htaccess :
SetEnv PHP_VER 5
DirectoryIndex index.php
Cela me mets : The requested URL /appartement/ was not found on this server.
En revanche si je laisse
SetEnv PHP_VER 5
DirectoryIndex index.php
# BEGIN WordPress
RewriteEngine On
RewriteBase /gblocations/
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /gblocations/index.php [L]
# END WordPress
La j’ai le message erreur 500.
C’est certainement un pb de rewrite mais j’en suis pas sur.
vanessa
6 décembre 2011 16 h 09 minCa remarche je ne comprends pas pourquoi mais merci de votre aide.
ya-graphic
6 décembre 2011 16 h 15 minLe fichier .htaccess est bien dans le répertoire /gblocations/ ?
Stephanie
17 janvier 2012 1 h 53 minMerci pour cet article, qui m’a aidée à mettre en ligne mon portfolio sans (trop de) problèmes 🙂
rems
7 juin 2012 17 h 39 minMerci pour les infos, ca m’a bien aidé, surtout les commandes sql pour ré écrire les url!!
Guillaume
3 novembre 2012 4 h 14 minBonjour,
J’ai bien suivi votre procédure sauf que je duplique mon blog pour faire une copie de l’original (à la racine de mon hébergement (répertoire www/)) sur un sous-domaine.
Cependant, la procédure bloque à son terme, quand je souhaite accéder à la page wp-admin de mon sous-domaine (blog dupliqué). J’entre mon identifiant et mot de passe et rien se se passe quand je valide, je retombe sur la page de connexion.
Avez-vous une idée?
Steeve89
16 janvier 2013 10 h 27 minIl manque au tutoriel la partie concernant le dossier upload de wp-content.
Faut pas oublié qu’un blog contient des images.
Ce dossier est également à importer.
Cordialement Steeve
Yassine A.
16 janvier 2013 10 h 49 minQuand je dis: « Le dossier le plus important de votre blog, le coeur de votre blog WordPress, c’est le dossier wp-content, n’oubliez pas, téléchargez-le. » Le dossier upload est dans le dossier wp-content, donc si vous téléchargez le dossier wp-content vous téléchargez tous les dossiers qui y sont inclus (dossier upload compris). 😉
Steeve89
16 janvier 2013 13 h 37 minOui en effet tu n’a pas tord 😉
Tant qu’on y est on peut également prendre tout le dossier du blog et modifier le fichier wp-config.php 😉 puis passer sur les modufs sur la base de données.
Bref les solutions sont nombreuses 😉
Jean64
2 février 2013 15 h 39 minBonjour, je viens de finir un site pour un client que j’héberge dans un sous-dossier de mon site pro (chez OVH).
Mon client a acheté une adresse (www.dejavu-biarritz.com également chez OVH) pour son site. Etant encore un peu débutant j’ai opté pour une simple redirection web pour faire pointer son nom de domaine vers le site que j’héberge.
la page d’accueil s’affiche très bien mais lorsque l’on veut naviguer à travers le menu on tombe à chaque fois sur une erreur 500.
J’ai appelé OVH qui m’a juste dit de me débrouiller (sympa).
Je ne sais donc pas ou je dois corriger le script….
Avez-vous une idée ?