Déplacer un site WordPress: une méthode pas à pas

Vous vous demandez comment déplacer votre site Wordpress sur un nouveau serveur ? Voici une (ma) méthode en quelques étapes.

Déplacer son site Wordpress sur un autre serveur
0 Flares Filament.io 0 Flares ×

A chaque fois que je dois transférer un site WordPress, je me repose les mêmes questions.
Parce que cela ne m'arrive pas tous les jours.
Parce que j'arrive à un âge où il vaut mieux noter pour ne rien oublier…
Donc, comme je viens juste de déplacer le site d'un client d'un serveur à un autre, j'en profite pour graver dans le html les quelques étapes que j'ai suivies.

Attention : cette méthode est « la mienne » (je ne suis pas possessif, j'entends par là qu'elle est spécifique). Elle a l'avantage d'être simple et sûre mais elle n'est pas forcément la plus rapide ou la plus optimisée.
Par contre, même si (comme d'habitude) je décline toute responsabilité quant à l'utilisation de ces conseils, je vous assure que si vous suivez cette procédure au pied de la lettre, votre migration de site se fera sans encombre.

Inventaire, pré-requis et autre préalable

Les compétences requises pour faire vous même le transfert de votre site sont celles d'un « webmaster débutant » ou d'un « utilisateur web éclairé ». Pour y arriver, vous devez (vous et/ou votre prestataire):

  • avoir un minimum de pratique de WordPress (ben oui…).
  • savoir gérer vos enregistrements DNS chez votre gestionnaire de nom de domaine et savoir créer un sous-domaine.
  • savoir utiliser Filezilla.
  • connaitre (un peu) phpMyAdmin.

Un préalable évident, ayez sous la main tous les codes d'accès aux serveurs et autres systèmes nécessaires à ce transfert :

  • Comptes FTP de l'ancien et du nouveau serveur
  • Accès serveur MySql
  • Accès à votre gestionnaire de domaine (Registrar)
  • Accès WordPress
  • Accès aux différents comptes mails rattachés à votre domaine

La procédure qui suit concerne le déplacement d'un site vers un autre serveur sans changer son nom de domaine ni le chemin d'accès au dossier du site sur le serveur.
La précision est importante car, comme vous le savez peut-être, dans WordPress, les liens vers les médias (images, vidéos…) stockés dans la base de données sont des « liens absolus »… Donc toute autre action que le « clonage » complet de votre site (contenu, architecture, chemins…) risque de ne pas fonctionner correctement. En tout cas pas sans faire certaines manipulations qui ne sont pas abordées ici.

Si tout ce que je viens d'écrire dans ce chapitre vous semble incompréhensible c'est certainement que cette méthode n'est pas faite pour vous. Dans ce cas, faites vous aider par votre prestataire ou consultez moi !

Etape 1 – La sauvegarde des fichiers et de la base de données

Faut-il le répéter, avant toute action d'envergure sur un site, il est nécessaire de faire une bonne sauvegarde.
Et en plus, dans notre cas, la sauvegarde est ce qui va nous permettre de « remonter le site » sur le nouveau serveur. Donc, procédez à la sauvegarde des deux piliers de votre site web : les fichiers et la base de données. Il existe différents moyens pour procéder à ces sauvegardes. En ce qui me concerne je pratique de la façon suivante :

  • Pour les fichiers, je récupère l'ensemble des dossiers de mon site en local en utilisant FileZilla.
  • Pour la base de données, j'utilise l'export de phpMyAdmin ou la sauvegarde SQL de l'excellent plugin Updraft Plus sur lequel je ferai certainement un article un de ces jours. Cette extension de sauvegarde automatique m'a souvent sauvé la mise lorsque je dois récupérer un site sur un serveur « inconnu » ou « verrouillé » par le prestataire précédent. Je l'installe systématiquement sur tous mes sites et je vous incite à faire de même (ou à utiliser un plugin équivalent).

Si votre site génère beaucoup de commentaires ou de contributions, il est conseillé de le mettre en mode maintenance. Si vous ne savez pas comment faire, il existe plein de plugins plus ou moins personnalisables sur wordpress.org : http://wordpress.org/plugins/search.php?q=maintenance.

Etape 2 – Créer un sous-domaine provisoire.

C'est le moyen le plus simple de transférer et de tester votre site en toute sécurité et de vérifier que tout fonctionne correctement avant de modifier les DNS. L'idée est simple, nous allons répliquer votre site et le faire fonctionner sur le nouveau serveur mais sous un nom de domaine différent. Deux possibilités :

  1. Votre nouvel hébergeur (c'est mon cas) vous propose un nom de domaine provisoire lorsqu'il vous crée l'environnement où vous allez transférer votre site. Vous pouvez passer dans ce cas à l'étape suivante.
  2. Si rien est prévu, il vous faut :
    1. créer un sous-domaine sur votre propre NDD (par exemple dev.nomdusite.com) et  le faire pointer vers le nouveau serveur
    2. Sur le nouveau serveur, déclarer ce sous-domaine comme nom de domaine du site.

Cette étape provisoire vous permet maintenant de préparer et valider l'installation de votre site sur le nouveau serveur.

Etape 3 – Préparer le nouveau nid.

Une image romantique et bucolique pour illustrer cette étape que certains pros trouveront (comme la précédente) inutile voire redondante mais qui est pour moi la clé de la tranquillité et donc du succès.

En effet, je vous incite fortement à commencer par installer simplement une version « vierge » de WordPress sur votre nouveau site.
Pourquoi ? Simplement pour vous garantir que ce nouvel environnement est prêt à recevoir votre site. En suivant la procédure-type d'installation de votre CMS préféré, vous êtes sûr(e) de ne rien oublier et de valider que WordPress fonctionne correctement sur votre nouveau serveur.

Attention: arrangez vous pour installer une version identique à celle de votre site actif. Ce devrait logiquement être la dernière si vous maintenez correctement votre site web !

Personnellement, je profite de cette migration pour changer le nom de la base de données et les login et mot de passe du « User » MySql. Vous aurez dans ce cas un fichier wp-config.php différent de celui du site actuel et il faudra penser à ne pas l'écraser lors du transfert des fichiers à l'étape suivante.

Après l'installation, dans le back-office de WordPress (option « Réglages – Lecture ») , pensez également à cocher la case « Demander aux moteurs de recherche de ne pas indexer ce site » (opération à répéter après la mise à jour de la base de données à l'étape 5). Une manipulation sans garantie (certains robots finissent parfois par indexer des sites en no-index) mais surtout quasiment inutile si vous réalisez cette opération de transfert dans un temps très court.
Plus efficace, pour les plus aguerris, vous pouvez choisir de « mettre un verrou » en créant un fichier htpasswd (voici un très bon tutoriel pour ceux qui veulent essayer et ne l'ont jamais fait : www.infowebmaster.fr/tutoriel/securiser-dossier-htpasswd).

Votre site vierge sous WordPress fonctionne ? Parfait ! Passons à l'étape suivante.

Etape 4 – Copier/remplacer les fichiers importants.

Utilisez FileZilla, positionnez vous sur votre nouveau serveur et, au choix :

  • Remplacez l'ensemble du site vierge installé par votre sauvegarde de l'étape 1 (si vous avez du temps et une excellente ligne ADSL), à l'exception du fichier wp-config.php. OU
  • Faites l'impasse sur les fichiers du cœur de WordPress : si vous ne « bidouillez » pas ailleurs que dans le répertoire wp-content et si votre installation vierge est bien la même version que celle de votre site actif, contentez vous de remplacer le dossier wp-content.

Etape 5 – Mettre à jour la base de données WordPress

Via PhpMyAdmin, écrasez le contenu ou l'ensemble de la base données en exécutant le script de sauvegarde SQL que vous avez récupéré à l'étape 1.

Attention : pour que votre site de test fonctionne, il faut modifier deux champs dans la base, plus précisément dans la table wp_optionssiteurl et home qui contiennent l'url de votre site et de sa page d'accueil. Il faut donc remplacer cette adresse par celle de votre site de test.
En ce qui me concerne, je modifie directement le script SQL avant de le lancer mais vous pouvez également modifier ces zones dans PhpMyAdmin après la mise à jour.

Etape 5 – Tester le site sur le nouveau serveur.

Nous y sommes.
Dans votre navigateur préféré, saisissez l'url de votre site de test et, normalement, vous devriez voir apparaître une réplique complète de votre site actif.
Rien ne manque, y compris les images et autres médias puisque les liens « en dur » dans la base de données pointent… sur l'url du site « réel » qui est toujours actif. Inutile de traîner, procédons au transfert définitif !

Etape 6 – Modifier les noms de domaine et les DNS.

Une étape sensible mais pas compliquée, à faire en « période creuse » et de préférence pas à la veille du week-end (des fois que vous ayez besoin des services de votre hébergeur, votre registrar… ou de me contacter !). Vous allez, dans cet ordre :

  • Sur votre ancien serveur, mettre votre site WordPress en maintenance (si ce n'était pas déjà fait à l'étape 1).
  • Si nécessaire, toujours sur l'ancien serveur, utilisez l'utilitaire propriétaire d'export des données (menu « Outils – Exporter ») pour récupérer les derniers commentaires, articles,… qui auraient été créés depuis votre sauvegarde.
  • Si vous avez fait l'export indiqué ci-dessus, procédez à l'import (menu « Outils – Importer ») depuis votre site wordpress sur le nouveau serveur et refaites un test (Etape 5) pour vérifier que tout est ok.
  • Dans le Back Office WordPress du site de test, modifiez dans l'option « Réglages – Général » :
    • L'adresse web de WordPress (URL) : mettez-y celle du site réel
    • L'adresse web du site (URL) : idem
  • Dans la gestion de votre hébergement sur le nouveau serveur, remplacez le nom de domaine de test par le NDD réel.
  • Chez votre Registrar (le gestionnaire de vos noms de domaines), faites pointer votre NDD vers le nouveau serveur.

Passé le sempiternel « temps de propagation » (24H00 en moyenne, parfois plus), vous pourrez vérifier que votre site « pointe » bien sur le bon serveur grâce à des services comme dnswatch.info

Etape 7 – Et les mails ?

Ben oui, et les mails ? Si votre serveur mail n'est pas externalisé, pensez en effet à transférer également vos adresses mails sur le nouvel hébergement.
Il suffit de les recréer sur votre nouveau serveur (là encore, j'en profite habituellement pour changer les mots de passe) et de faire un test émission / réception avec les paramètres pop/imap et smtp que ne manquera pas de vous indiquer votre nouvel hébergeur.
Si vous utilisez le protocole POP3, vous sauvegardez certainement vos mails localement, donc pas de souci pour la continuité. Par contre, si vous utilisez l'IMAP, attention à la perte des messages si vous ne les transférez pas avant de « couper » l'ancien serveur !

Etape 8 – Nettoyer son chantier.

Comme tout bon artisan, même sur le web, quand on finit un chantier, on le nettoie ! Une fois que tout fonctionne, pensez donc :

  • Sur le nouveau serveur:
    • à supprimer le nom de domaine test si il existe encore (ou faites le pointer vers un répertoire de développement)
    • à décocher dans le back-office de WordPress (option « Réglages – Lecture ») , la case « Demander aux moteurs de recherche de ne pas indexer ce site » et à enlever le htpasswd si vous en avez mis un.
  • Sur l'ancien serveur, faites le ménage, surtout si c'est un hébergement que vous abandonnez : supprimez les fichiers et la base de données.
    Cas particulier, lorsque votre accès ftp (dans FileZilla) à comme nom d'hôte votre nom de domaine (cela arrive). C'est idiot mais une fois le changement de DNS actif, vous ne pourrez plus y accéder…
    Deux solutions : supprimer tout le site avant la fin de la propagation en laissant juste une page de maintenance ou demander (gentiment) à votre ancien hébergeur de faire le ménage à votre place après la propagation (sans garantie malheureusement).

Conclusion

En démarrant cet article, je me disais que j'avais trouvé une procédure simple, sûre et relativement rapide pour transférer un site WordPress. 1800 mots plus tard, je mesure combien il peut-être long d'expliquer ce qui parait si simple…
N'hésitez pas à commenter pour que j'éclaircisse si nécessaire certains points.

Pour info, c'est une prestation que je facture quelques heures à mes clients (selon la complexité des installations) et qui s'étale sur 24 à 72 heures maximum (en fonction du délai de propagation).
Tout ça pour dire que ceux qui ne se sentent pas l’âme de déménageurs peuvent toujours me contacter.

0 Flares Twitter 0 Facebook 0 Google+ 0 LinkedIn 0 Email -- Pin It Share 0 Filament.io 0 Flares ×

8 réflexions au sujet de “Déplacer un site WordPress: une méthode pas à pas

  1. Pingback: Déplacer un site Wordpress: une (ma) m&e...

  2. Pingback: Déplacer un site Wordpress: une (ma) m&e...

  3. soulfree

    bonjour,

    dans la base de donnée il n’y a pas que siteurl et home à modifier si on change de nom de domaine pendant le transfert mais d’autres lignes dans wp_post, etc.. le mieux utiliser un script comme search & replace

    pourquoi créer un sous domaine provisoire? Si le site reste sous l’ancienne adresse pendant la phase de test utiliser l’url par défaut donné par hébergeur.
    On peut mettre aussi la maintenance en route, ainsi on peut tester le site.

    Il faut aussi dire qu’après tout ça il faut maintenir à jour son site, toujours avoir la dernière version de WordPress, des plugins récents, voir compatible dernière version WP ou de l’année qu’on est par exemple, en ce moment 2014.
    Le thème si souvent mis de côté est pourtant, il faut avoir la dernière version, pour assurer la compatibilité à 100 avec la dernière version de WP.
    Comme vous
    themeforest.net/item/newsplus/ qui est encore sous la version 1.0 de votre thème, pas bon , vérifier le changelog ‘journal des modifications’
    [… Note de Thierry: j’ai supprimé ici un log de plusieurs dizaines de lignes correspondant aux mises à jour de mon thème que j’ai « ratées »…]

    • Thierry Couteau Auteur

      Cher Soulfree,

      Je vous remercie pour votre contribution à mon article et pour vos conseils avisés…
      Concernant votre premier paragraphe, j’y réponds dés le début de mon article au chapitre « Inventaire, pré-requis et autre préalable » en indiquant que ce que j’écris ne concerne que le transfert d’un site sans changement de domaine. J’y précise même que d’autres actions sont à prévoir dans ce cas, actions que je n’aborde pas volontairement… puisque ce n’est pas le sujet.

      Pourquoi créer un domaine provisoire ? Là encore, j’ai l’impression que vous pratiquez une lecture en diagonale qui se cantonne aux têtes de chapitres… relisez donc ce chapitre 2 et vous y trouverez toutes les réponses et, si nécessaires, les justifications. A ce propos, je rappelle que cette méthode m’est personnelle et que je n’oblige personne à la suivre… surtout pas les professionnels de WordPress dont vous semblez faire partie.

      Il est vrai que j’aurais pu également préciser qu’il faut maintenir son site après, tout comme j’aurais du insister sur le fait qu’il faut le créer avant…

      Enfin, concernant la mise à jour de mon thème… zut, je ne pensais pas me faire choper un jour pour cela. Veuillez m’excuser d’avoir décider de maintenir « personnellement » mon thème… ou pas.

      Merci en tout cas de cette participation et au plaisir de vous revoir ici.
      Cordialement,
      Thierry

  4. blog suisse

    merci pour ce tutoriel qui explique bien la méthode à suivre afin de migrer son site web sur un hébergeurs internet sans se mélanger tout les pinceaux..
    De plus il faut être très vigilant pour ne pas plomber son référencement naturel ou se trouver avec une infinités de pages 404..

  5. dominique

    Bonjour,
    Après migration, je n’accède plus à aucune page hormis la page d’accueil. Tous les liens du menu me revoient vers:

    Not Found
    The requested URL /wordpress/de-quoi-lenergie-est-elle-le-nom/ was not found on this server.
    Apache/2.4.9 (Win64) PHP/5.5.12 Server at localhost Port 8080

    Quelqu’un peut-il m’aider ?

    Merci

    Dom

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

0 Flares Twitter 0 Facebook 0 Google+ 0 LinkedIn 0 Email -- Pin It Share 0 Filament.io 0 Flares ×