Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

Changer d’hébergeur WordPress en limitant la coupure pour les visiteurs

Changer d’hébergeur ne se limite pas à copier des fichiers : la base WordPress contient des données sérialisées qui encapsulent des URL, et un remplacement mal fait les corrompt silencieusement. Voici la méthode que je suis, du premier export jusqu’à la bascule DNS finale.

Décrire mon problème Discuter sur WhatsApp

Ce que le remplacement d’URL touche en profondeur

WordPress enregistre une partie de ses réglages (options de thème, configuration de widgets, préférences de plugins) sous forme de données PHP sérialisées dans des colonnes texte de la base MySQL. Une chaîne sérialisée encode la longueur exacte de chaque sous-chaîne qu’elle contient : par exemple, s:22:"https://ancien-site.fr" signifie « une chaîne de 22 caractères, dont voici le contenu ». Si le site en test ou de destination utilise une URL différente (adresse temporaire, sous-domaine, IP), et qu’on la remplace par un simple UPDATE SQL avec REPLACE(), le nombre déclaré avant les guillemets ne correspond plus à la nouvelle longueur de chaîne.

Ce n’est pas un cas marginal : sur une boutique WooCommerce, l’adresse de l’ancien site peut apparaître dans des dizaines d’enregistrements sérialisés différents (réglages de passerelle de paiement, widgets de panier, préférences d’extensions de livraison), chacun potentiellement corrompu par un remplacement brut. C’est ce volume dispersé qui rend le problème difficile à détecter à l’œil nu avant qu’un client ne signale un dysfonctionnement précis.

WordPress échoue alors à désérialiser correctement la donnée : réglages de thème réinitialisés à leurs valeurs par défaut, widgets qui disparaissent de la colonne latérale, options de plugin vides, souvent sans message d’erreur visible avant plusieurs jours. La bonne méthode passe par un outil qui recalcule ces longueurs à chaque remplacement, typiquement la commande wp search-replace ancienne-url nouvelle-url --all-tables de WP-CLI.

Comment je change d’hébergeur sans coupure visible

  1. Copie des fichiers et de la base

    Je copie l’intégralité des fichiers du site et un export complet de la base de données vers le nouvel hébergement, sans toucher au site en production.

  2. Adaptation de wp-config.php

    Je renseigne les nouveaux identifiants de connexion à la base de données (nom, utilisateur, mot de passe, hôte) dans wp-config.php sur le nouvel environnement.

  3. Correction des URL avec wp search-replace

    Si le site de test est accessible sous une adresse différente (sous-domaine temporaire, IP), je corrige les URL enregistrées avec wp search-replace, qui recalcule les longueurs des chaînes sérialisées au lieu de les casser.

  4. Validation via le fichier hosts local

    Je teste le site sur le nouvel hébergement en modifiant temporairement le fichier hosts de ma machine, ce qui permet de pointer vers le nouveau serveur sans modifier le DNS public ni affecter les visiteurs.

  5. Réduction du TTL DNS en amont

    Quelques jours avant la bascule, je réduis le TTL (durée de vie) des enregistrements DNS pour accélérer la propagation du changement le moment venu.

  6. Bascule DNS ou serveur à faible trafic

    Je programme le changement de pointage à un horaire de faible fréquentation, et je reprends les commandes ou messages reçus entre la copie initiale et la bascule finale si le site vend en ligne.

Pour aller plus loin

Décrivez votre besoin en 1 minute

Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.

D’où partez-vous ?
Quelle est la taille du catalogue, s’il y a une boutique ?
Le site utilise-t-il des extensions payantes avec licence à retransférer ? (facultatif)

Certaines licences sont limitées à un domaine ou nécessitent une réactivation auprès de l’éditeur.

Qu’est-ce qui doit impérativement être conservé ? (facultatif)
Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Questions fréquentes

Le site sera-t-il indisponible pendant la migration ?
La préparation se fait entièrement sur le nouvel hébergement sans toucher au site en production. La seule coupure réelle correspond à la bascule DNS finale, généralement de quelques minutes à quelques heures selon la propagation.
Comment tester le nouveau site avant de couper le DNS ?
En modifiant temporairement le fichier hosts de ma machine pour pointer le nom de domaine vers la nouvelle IP, ce qui permet de naviguer sur le site comme un visiteur normal sans que personne d’autre ne soit affecté.
Que se passe-t-il pour les commandes passées pendant la migration ?
Je note l’horaire précis de la copie initiale et je reprends manuellement les commandes ou messages reçus entre cette copie et la bascule finale, pour ne rien perdre.
Pourquoi réduire le TTL DNS avant la bascule ?
Un TTL élevé signifie que les serveurs DNS intermédiaires gardent l’ancienne adresse en cache plus longtemps. Le réduire quelques jours avant accélère la prise en compte du changement au moment de la bascule.
Puis-je annuler la migration après la bascule DNS ?
Techniquement oui en repointant le DNS vers l’ancien hébergeur, mais toute donnée créée sur le nouveau site depuis la bascule (commande, compte, contenu) serait perdue. C’est pour cette raison que je considère la bascule DNS comme le point de non-retour.