Migrer un Site WordPress Sans Coupure ni Perte de SEO

Comment migrer votre site WordPress d'un hébergeur à un autre en gardant les URLs, le SSL et le SEO intacts.

Présentation

Migrer un site WordPress effraie souvent : peur de la coupure, de la perte de référencement, des données corrompues. Avec la bonne méthode, une migration WordPress peut être invisible pour vos visiteurs et Google.

Ce guide couvre deux approches : la méthode plugin (rapide, recommandée pour < 1 Go) et la méthode manuelle (plus contrôlée, pour gros sites). Vous y trouverez aussi les étapes préparatoires (TTL DNS, audit des plugins), la checklist post-migration (SSL, redirections, sitemap Google), et la liste des pièges à éviter qui font perdre du SEO ou cassent un site (mauvaise migration de la base avec chaînes sérialisées, oubli du wp-config, certificats SSL mal renouvelés).

Avant la migration : préparer le terrain

Une migration WordPress réussie commence 48h avant la bascule. Trois actions préparatoires limitent drastiquement les risques :

  1. Réduire le TTL DNS de votre domaine à 300 secondes (5 min) au moins 48h avant la migration. Le TTL standard est de 3600-86400s, ce qui peut faire durer la propagation jusqu'à 24h après le changement. Avec un TTL de 300s, la propagation est typiquement < 30 min. Modifiable chez votre registrar (OVH, Gandi, Cloudflare).
  2. Auditer les plugins et thèmes avant migration. Supprimez les plugins inactifs, ceux marqués "non compatible avec votre version PHP", et les thèmes non utilisés. Un site WordPress de 5 ans accumule typiquement 30-50% de plugins obsolètes ou doublons. La migration est l'occasion de nettoyer.
  3. Lister les éléments critiques : version PHP utilisée (vérifier wp-admin/site-health.php), base de données (taille, version MySQL/MariaDB), extensions PHP requises (imagick, curl, mbstring, gd), cron tâches, certificats SSL, redirections .htaccess custom. Ces infos servent à reproduire l'environnement à l'identique.
  4. Mode maintenance optionnel : si vous pouvez vous permettre 15 min d'indisponibilité, le plugin WP Maintenance Mode affiche une page d'attente pendant la bascule. Pour les sites e-commerce ou très fréquentés, préférez la migration progressive sans maintenance.

Méthode 1 : avec plugin (recommandée)

  1. Backup complet avant migration : UpdraftPlus, BackWPup ou All-in-One WP Migration
  2. Installer WordPress vide sur le nouvel hébergement
  3. Restaurer le backup via le plugin
  4. Tester le site sur l'IP/sous-domaine temporaire du nouvel hébergeur
  5. Basculer les DNS du domaine vers le nouvel hébergeur (avec TTL court)
  6. Renouveler le SSL sur le nouvel hébergeur après propagation DNS

Méthode 2 : migration manuelle (gros sites, e-commerce)

Pour les sites > 1 Go ou WooCommerce avec milliers de commandes, la méthode manuelle est plus fiable. Étapes :

  1. Exporter la base de données via phpMyAdmin ou en SSH : mysqldump -u utilisateur -p ma_base > db_backup.sql. Pour les gros sites, ajoutez --single-transaction --quick pour éviter de verrouiller la base.
  2. Copier les fichiers WordPress via FTP/SFTP ou rsync : rsync -avz -e ssh ./wp-content/ utilisateur@nouveau-serveur:/var/www/html/wp-content/. Le rsync incrémental est idéal pour réduire le temps de transfert.
  3. Créer la nouvelle base sur le nouvel hébergeur (cPanel/Plesk → MySQL Databases), puis importer : mysql -u utilisateur -p ma_base_nouvelle < db_backup.sql.
  4. Adapter wp-config.php avec les nouveaux identifiants de base (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST). Conservez les mêmes clés de sécurité (AUTH_KEY, etc.) pour ne pas déconnecter les utilisateurs.
  5. Mettre à jour les URLs si elles changent : si vous migrez aussi votre domaine, utilisez WP-CLI (wp search-replace 'ancien-domaine.com' 'nouveau-domaine.com' --skip-columns=guid) qui gère correctement les chaînes sérialisées (PHP serialize). Un simple SQL UPDATE casserait les widgets et options sérialisées.
  6. Tester sur sous-domaine temporaire : migration.nouveau-serveur.com via modification du fichier hosts local (sans toucher au DNS public). Validez : page d'accueil, articles, formulaires, paiements (si e-commerce), emails transactionnels.
  7. Bascule DNS : mettez à jour les enregistrements A/AAAA chez votre registrar. Avec TTL 300s préparé en amont, la propagation se fait en quelques minutes.

Méthode 3 : migration gratuite par By-Hoster

Si vous migrez vers By-Hoster, notre équipe technique réalise la migration gratuitement. Vous fournissez vos accès FTP/cPanel de l'ancien hébergeur, et nous nous occupons de tout, sans coupure, en 24-48h. Inclus : transfert fichiers + base, reconfiguration wp-config, génération SSL Let's Encrypt, tests post-migration, basculement DNS coordonné. Vous gardez accès à votre ancien hébergement pendant 14 jours pour validation.

Checklist post-migration : 12 points à vérifier

Une migration n'est pas finie quand le DNS pointe sur le nouveau serveur. Voici les 12 vérifications cruciales dans les 24h après la bascule :

  • Site accessible en HTTP et HTTPS : test sur 3-4 navigateurs et un mobile. Vérifiez les pages principales (accueil, contact, panier si e-commerce).
  • SSL Let's Encrypt généré et actif : curl -I https://votredomaine.com doit retourner 200 OK avec un certificat valide. Délai post-DNS : 5-30 min.
  • Permalinks fonctionnels : vérifiez 5-10 articles aléatoires. Si erreur 404, allez dans wp-admin → Réglages → Permaliens et cliquez "Enregistrer" (régénère .htaccess).
  • Images chargées : un Ctrl+F5 sur la home. Si images manquantes, vérifiez les permissions wp-content/uploads (755 dossiers, 644 fichiers).
  • Formulaires de contact : envoyez un message test. Vérifiez réception email. Si échec, configurez SMTP (WP Mail SMTP) avec un service externe (Mailgun, SendGrid).
  • Connexion wp-admin : login + 2FA si activé. Si erreur "Cookies bloqués", videz le cache navigateur et essayez en navigation privée.
  • WooCommerce (si applicable) : effectuez un achat test (mode "test" Stripe/PayPal). Vérifiez emails de confirmation, mise à jour des stocks, génération facture PDF.
  • Cron WordPress : vérifiez que les tâches planifiées tournent (wp cron event list via WP-CLI). Désactivez WP-Cron natif et configurez un cron système : * * * * * curl https://votredomaine.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1.
  • Performance : test PageSpeed Insights. Si score < 80, vérifiez activation cache (LiteSpeed Cache, WP Rocket, W3 Total Cache), compression Brotli/Gzip, lazy-loading images.
  • Sitemap soumis à Google Search Console : si l'IP a changé, Google peut mettre 24-72h à recrawler. Forcez via Search Console → Sitemaps → soumettre l'URL.
  • Anciens redirections 301 : si vous migrez aussi le domaine, configurez les 301 sur l'ancien hébergeur via .htaccess : RewriteRule ^(.*)$ https://nouveau-domaine.com/$1 [R=301,L]. Maintenir 12 mois minimum pour conserver le link juice SEO.
  • Monitoring 24h : un service gratuit comme UptimeRobot ou Hyperping détecte les coupures et alerte par email/SMS. Surveillez aussi les logs d'erreur PHP (tail -f /var/log/php/error.log) pour les 48 premières heures.

Pièges fréquents et comment les éviter

  • Chaînes sérialisées cassées : si vous migrez avec un SQL Find & Replace naïf, les options PHP sérialisées (widgets, customizer, page builders) se cassent. Utilisez TOUJOURS WP-CLI ou un plugin Better Search Replace qui gère la sérialisation.
  • SSL non renouvelé après migration : Let's Encrypt doit être régénéré sur le nouvel hébergeur car lié à l'IP/domaine. Les vieux certificats ne migrent pas.
  • Mauvais wp-config.php : oublier de mettre à jour DB_HOST (parfois "localhost", parfois un IP), ou laisser de vieilles configs WP_DEBUG=true exposant des erreurs en production.
  • Cron natif WordPress non remplacé : sur l'ancien hébergement, WP-Cron tournait sur trafic. Si vous oubliez de désactiver WP-Cron natif et de configurer un vrai cron système, les tâches planifiées (sauvegardes, envoi de newsletters, mise à jour PMI) ne tournent plus correctement.
  • Cache obsolète : ancien cache CDN (Cloudflare, BunnyCDN) qui pointe encore vers l'ancien serveur. Purgez le cache après migration : Cloudflare → "Purge Everything", BunnyCDN → "Clear Cache".
  • Sitemap XML cassé : Yoast/Rank Math régénèrent automatiquement, mais vérifiez accessible à https://votredomaine.com/sitemap_index.xml. Resoumettez à Search Console.
  • Mauvaise propagation DNS : si l'ancien TTL est resté à 24h, certains visiteurs voient encore l'ancien site pendant 24h. C'est pourquoi le passage à TTL 300s avant migration est crucial.

Questions fréquentes

Non, si vous gardez exactement les mêmes URLs et que la propagation DNS se fait proprement (TTL court avant migration). Google ne voit qu'un IP différente, le contenu et la structure restent identiques.

Pour un site standard de < 1 Go avec la méthode plugin : 1 à 3 heures. Pour un site moyen 1-5 Go méthode manuelle : 4 à 8 heures. Pour un gros e-commerce avec milliers de produits : 1 à 2 jours (préparation, tests, bascule programmée). La migration gratuite By-Hoster prend typiquement 24-48h en mode coordonné avec vous.

Si vous gardez le même domaine : non, Google détecte automatiquement le changement d'IP en 24-72h. Si vous changez de domaine : oui, utilisez l'outil "Changement d'adresse" de Google Search Console après avoir configuré les redirections 301. Sinon vous perdez les positions acquises.

Avec la méthode plugin et un TTL DNS court, l'indisponibilité est typiquement de 0 à 5 minutes (le temps que les DNS propagent). Avec la méthode manuelle bien préparée, on peut viser 0 coupure en configurant le nouveau serveur en parallèle, en testant via le fichier hosts local, puis en basculant le DNS quand tout est validé.

Nous avons besoin de : accès SFTP ou FTP à l'ancien hébergement (lecture seule suffit), accès phpMyAdmin ou export SQL de la base de données, et accès au gestionnaire DNS (registrar : OVH, Gandi, Cloudflare, etc.) pour basculer les enregistrements le moment venu. Aucune information sensible n'est conservée après la migration.

Non, mais il faut désactiver les plugins de cache avant l'export (W3 Total Cache, WP Rocket, LiteSpeed Cache) pour éviter des fichiers cache obsolètes qui peuvent causer des erreurs sur le nouveau serveur. Réactivez-les après migration et videz le cache. Pour les plugins de sécurité (Wordfence, Sucuri), pareil : désactiver avant export, réactiver après.

Oui, mais c'est plus complexe car WordPress.com (la version hébergée) limite l'accès aux fichiers. La méthode : 1) Exporter le contenu via Outils → Exporter dans wp-admin (génère un XML). 2) Installer WordPress.org sur votre hébergement. 3) Importer le XML via Outils → Importer → WordPress. Cette méthode importe articles, pages, médias, commentaires, mais pas les thèmes payants WordPress.com (à racheter ou remplacer). Comptez 4-8h avec ajustements visuels.