Vous changez de nom de domaine ? Voici les 3 méthodes pour déplacer WordPress : WP-CLI (la plus rapide, 30 secondes), un plugin de migration (sans ligne de commande), ou phpMyAdmin (requêtes SQL directes). Dans tous les cas : sauvegarde d'abord, migration ensuite, checklist de vérification après.
Pas le temps ? Faites-le analyser par l'IA
Vous me lisez souvent ? Dites-le à Google
J'ajoute WPFormation à mes sources
Un changement de domaine sans sauvegarde préalable est une prise de risque inutile.
Pourquoi changer de nom de domaine WordPress ?
Les raisons sont nombreuses, et ce guide pas à pas couvre chaque cas : rebranding complet, passage d'un sous-répertoire à la racine (monsite.com/wordpress/ → monsite.com), rachat d'un meilleur domaine, ou encore migration d'un environnement de développement vers la production. Le principe reste identique dans tous les cas.
Le point délicat, c'est que WordPress stocke les URL en absolu dans la base de données - pas en relatif. Chaque article, chaque image, chaque lien interne peut pointer vers l'ancien domaine. Il faut donc remplacer ces références partout, pas seulement dans les réglages généraux.
Avant de commencer : vérifiez que votre nouvelle installation WordPress est opérationnelle sur le nouveau domaine, et faites une sauvegarde complète (fichiers + base de données). Sans ça, vous risquez de perdre des données si quelque chose tourne mal.
Méthode 1 : WP-CLI search-replace (la plus rapide)
WP-CLI est l'outil en ligne de commande officiel de WordPress. Si votre hébergeur le propose (O2switch, Infomaniak, Kinsta, WP Engine… oui), c'est de loin la méthode la plus propre et la plus rapide. Une seule commande remplace toutes les occurrences de l'ancien domaine dans toute la base de données, y compris les données sérialisées PHP que phpMyAdmin gère mal.
Connexion SSH et exécution
Connectez-vous en SSH à votre serveur, placez-vous à la racine WordPress, puis lancez d’abord un essai à blanc (mode dry-run), qui affiche le rapport sans rien modifier :
wp search-replace 'https://www.ancien-domaine.com' 'https://www.nouveau-domaine.com' --all-tables-with-prefix --skip-columns=guid --precise --recurse-objects --dry-run
Le flag --all-tables-with-prefix scanne toutes les tables qui portent le préfixe de votre site (pas seulement les tables core), sans toucher aux tables d’une autre installation qui partagerait la même base de données, sauf si son préfixe commence par le vôtre (par exemple wp_old_ quand le vôtre est wp_). Le flag --skip-columns=guid laisse intacte la colonne guid des articles (voir la méthode 3). WP-CLI gère les données sérialisées par défaut ; le flag --precise force le traitement en PHP de toutes les lignes, plus lent mais plus exhaustif.
Vérifiez dans le rapport le nombre de remplacements prévus pour chaque table, puis relancez la commande sans --dry-run pour appliquer les modifications :
wp search-replace 'https://www.ancien-domaine.com' 'https://www.nouveau-domaine.com' --all-tables-with-prefix --skip-columns=guid --precise --recurse-objects
Après la commande, videz le cache et régénérez les permaliens :
wp cache flush
wp rewrite flush
Ce que WP-CLI gère que phpMyAdmin ne gère pas
Les données sérialisées sont le vrai problème des migrations manuelles. WordPress stocke certaines valeurs sous forme d'objets PHP sérialisés, par exemple :
a:1:{s:4:"home";s:30:"https://www.ancien-domaine.com";}
Si vous faites un simple search-replace SQL sur cette chaîne, la longueur déclarée (s:30) ne correspond plus à la nouvelle valeur, ce qui casse l'objet. WP-CLI recalcule automatiquement ces longueurs. C'est pour ça que c'est la méthode recommandée si vous avez accès au SSH.
Vous n'avez pas accès au SSH ? Passez à la méthode 2 avec un plugin.
Méthode 2 : Plugin de migration (Duplicator ou All-in-One WP Migration)
Pour ceux qui préfèrent une interface graphique ou qui n'ont pas accès au SSH, les plugins de migration font le travail. Si votre objectif est d’importer du contenu depuis un autre CMS, consultez notre guide dédié pour importer vos contenus sur WordPress. Deux options solides :
All-in-One WP Migration
Le plus accessible pour les débutants. Il crée un fichier .wpress contenant l'intégralité du site (fichiers + base de données), puis l'importe sur le nouveau domaine en gérant automatiquement le remplacement des URL.
La procédure :
- Sur l'ancien domaine : menu All-in-One WP Migration (premier niveau de la barre latérale) → Export → File. Téléchargez le fichier
.wpressgénéré. - Sur le nouveau domaine : installez WordPress (vide), puis All-in-One WP Migration → Import → File. Sélectionnez votre fichier
.wpress. - Confirmez l'écrasement de la base de données existante.
- Une fois l'import terminé, le plugin vous demande de vous reconnecter (les identifiants restent ceux de l'ancien site).
Limite de la version gratuite : la taille d’envoi autorisée par votre hébergement, affichée sur l’écran d’import. Au-delà, il faut relever cette limite chez votre hébergeur, prendre la version payante (extension Unlimited) ou utiliser Duplicator.
Duplicator
Plus technique mais plus flexible, Duplicator crée un package (archive ZIP + installer PHP) que vous déposez sur le nouveau serveur. Pratique pour migrer d'un hébergeur à un autre en même temps que le changement de domaine.
La procédure :
- Duplicator → Sauvegardes (Backups) → Ajouter (Add New). Suivez l'assistant, laissez les options par défaut pour un premier essai.
- Téléchargez les 2 fichiers générés :
archive.zipetinstaller.php. - Uploadez-les à la racine du nouveau domaine via FTP.
- Accédez à
https://nouveau-domaine.com/installer.phpet suivez l'assistant. Il vous demande les identifiants de la nouvelle base de données et gère le search-replace des URL. - Supprimez les fichiers
installer.phpetarchive.zipaprès l'installation (impératif pour la sécurité).
Les deux plugins gèrent les données sérialisées correctement. C'est leur force par rapport à un import/export SQL manuel.
Méthode 3 : phpMyAdmin (requêtes SQL directes)

La méthode classique, toujours valide pour les migrations simples. Attention : elle ne gère pas les données sérialisées. Si vous avez des plugins qui stockent des URL dans des champs sérialisés (Elementor, WooCommerce, ACF…), préférez WP-CLI ou un plugin de migration.
Étape 1 : Modifier les réglages généraux depuis le tableau de bord
Si vous avez encore accès à l'ancien tableau de bord, commencez par Réglages → Général et mettez à jour les deux champs " Adresse WordPress " et " Adresse du site " avec le nouveau domaine. Enregistrez.
Alternative via wp-config.php (prioritaire sur les réglages en base) :
define( 'WP_HOME', 'https://nouveau-domaine.com' );
define( 'WP_SITEURL', 'https://nouveau-domaine.com' );

Ces deux constantes ont priorité sur les valeurs en base de données. Pratique si vous avez perdu l'accès à l'admin (par exemple après un changement de domaine raté).
Étape 2 : Requêtes SQL dans phpMyAdmin
Connectez-vous à phpMyAdmin via votre panneau d'hébergement (cPanel, Plesk…), sélectionnez la base de données WordPress, puis allez dans l'onglet SQL. Exécutez ces requêtes l'une après l'autre :
Mettre à jour home et siteurl :
UPDATE wp_options SET option_value = replace(option_value, 'https://www.ancien-domaine.com', 'https://www.nouveau-domaine.com') WHERE option_name = 'home' OR option_name = 'siteurl';
Ne modifiez pas les GUID des articles : la colonne guid de wp_posts est l’identifiant permanent de chaque article, utilisé notamment par les lecteurs de flux RSS. La documentation officielle de WordPress interdit d’y toucher, même lors d’un changement de domaine.
Mettre à jour les liens dans le contenu des articles :
UPDATE wp_posts SET post_content = replace(post_content, 'https://www.ancien-domaine.com', 'https://www.nouveau-domaine.com');
Mettre à jour les métadonnées : pour la table wp_postmeta, n’utilisez pas de requête SQL. De nombreuses extensions y stockent des données sérialisées, qu’un remplacement SQL rend illisibles dès que l’ancien et le nouveau domaine n’ont pas la même longueur. Passez par WP-CLI (méthode 1) ou par l’extension Better Search Replace, qui recalculent les longueurs.
Note sur le préfixe de table : l'exemple utilise wp_ (préfixe par défaut). Si votre installation utilise un préfixe différent (visible dans wp-config.php, paramètre $table_prefix), adaptez chaque requête en conséquence.
Étape 3 : Utiliser le plugin Search & Replace en complément

Le plugin Search & Replace complète bien phpMyAdmin pour les tables que vous auriez oubliées. Dans " Search for " mettez l'ancien domaine, dans " Replace with " le nouveau. Cochez au minimum les tables options, posts et postmeta.
Utilisez " Dry Run " d'abord pour vérifier le nombre de remplacements prévus avant d'appliquer. Au 02/10/2026, cette extension n’a plus été mise à jour depuis août 2024 et n’est testée que jusqu’à WordPress 6.5 : l’extension Better Search Replace, à jour et testée avec WordPress 7.1.2, s’utilise de la même façon, avec l’essai à blanc coché par défaut.
Déplacer WordPress d'un sous-répertoire vers la racine
Cas particulier : vous avez WordPress installé dans monsite.com/wordpress/ et vous voulez qu'il réponde à monsite.com. La procédure est différente - on ne change pas de domaine, on change seulement l'emplacement.
Via Réglages → Général
Dans " Adresse web de WordPress " laissez monsite.com/wordpress/ (l'emplacement des fichiers). Dans " Adresse web du site " mettez monsite.com (l'URL publique). Enregistrez.
Via FTP : copier index.php et .htaccess
Via FTP, copiez le fichier index.php et le fichier .htaccess depuis le dossier wordpress/ vers la racine du site. Modifiez ensuite index.php à la racine :
// Remplacer :
require __DIR__ . '/wp-blog-header.php';
// Par :
require __DIR__ . '/wordpress/wp-blog-header.php';
L'administration reste accessible sur monsite.com/wordpress/wp-admin/. Seule l'URL publique du site change.
Checklist post-migration
Une fois la migration terminée, ne sautez pas ces étapes. Chacune peut être la source d'un problème invisible si vous l'oubliez.
DNS et propagation
Si le nouveau domaine pointe vers un nouvel hébergeur, le changement DNS n’est pas vu partout au même moment : chaque résolveur garde un temps l’ancienne réponse en cache, et certains hébergeurs annoncent jusqu’à 48 heures. Utilisez dnschecker.org pour vérifier que la propagation est effective dans votre zone géographique avant de tester le site.
Pour savoir comment choisir un hébergement adapté à votre projet, consultez notre guide sur le choix d'hébergement WordPress.
SSL / HTTPS
Générez ou installez un certificat SSL sur le nouveau domaine. Sur la plupart des hébergements mutualisés modernes, Let's Encrypt est disponible gratuitement en un clic depuis le panneau d'administration.
Après activation, passez WordPress en HTTPS : mettez à jour les deux URL dans les réglages, forcez HTTPS dans le .htaccess, et vérifiez qu'aucune ressource ne se charge encore en HTTP (mixed content).
Permaliens
Allez dans Réglages → Permaliens et cliquez sur " Enregistrer les modifications " sans rien changer. Cela régénère le fichier .htaccess avec les nouvelles règles de réécriture. Si vous ne faites pas ça, toutes les URLs autres que la page d'accueil renverront probablement des erreurs 404.
Cache
Videz tous les niveaux de cache : plugin de cache WordPress (LiteSpeed Cache, W3 Total Cache, WP Rocket…), cache CDN si vous en utilisez un, et cache Cloudflare si applicable. Un cache non vidé peut continuer à servir des pages pointant vers l'ancien domaine pendant des heures.
Search Console
Ajoutez le nouveau domaine dans Google Search Console et soumettez votre sitemap (https://nouveau-domaine.com/sitemap_index.xml en général pour Yoast). Si vous abandonnez complètement l'ancien domaine, configurez des redirections 301 de l'ancien vers le nouveau - Google transfère le " jus SEO " via les 301.
Pour un changement d'adresse officiel, utilisez l'outil " Changement d'adresse " dans Search Console (Settings → Change of address).
Liens internes et médias
Faites une vérification rapide : ouvrez 3 à 5 articles au hasard, cliquez sur les liens internes, vérifiez que les images s'affichent. Si des images sont cassées, cherchez les URL de l’ancien domaine restées dans le contenu des articles (post_content) et relancez WP-CLI ou Better Search Replace, en essai à blanc d’abord. _wp_attached_file contient un chemin relatif au dossier des médias et n’a pas à être modifié.
Sécurité post-migration
Après une migration, pensez à sécuriser votre installation WordPress : changez les identifiants de base de données si vous avez utilisé les mêmes que sur l'ancien hébergeur, mettez à jour les clés secrètes dans wp-config.php (générateur officiel : api.wordpress.org/secret-key/1.1/salt/), et vérifiez les permissions des fichiers.
FAQ - Déplacer WordPress vers un nouveau domaine
Mes liens internes pointent encore vers l'ancien domaine après la migration, pourquoi ?
Plusieurs causes possibles. Soit le search-replace n'a pas couvert toutes les tables (vérifiez wp_postmeta et les tables de plugins comme woocommerce ou elementor). Soit vous avez des données sérialisées que phpMyAdmin a mal traitées - la longueur des chaînes ne correspond plus. La solution la plus fiable : relancez la migration avec WP-CLI (wp search-replace avec --precise) ou avec le plugin Better Search Replace qui gère les données sérialisées.
Est-ce que je perds mon référencement en changeant de domaine ?
Pas si vous mettez en place des redirections 301 depuis l'ancien domaine vers le nouveau. Google transfère l'autorité via ces redirections, mais le processus prend entre quelques semaines et plusieurs mois selon l'âge du site et le volume de pages. Utilisez l'outil " Changement d'adresse " dans Google Search Console pour accélérer la prise en compte. Gardez les redirections actives au minimum 1 an, idéalement de façon permanente.
Comment migrer WordPress d'un hébergeur à un autre en même temps que le changement de domaine ?
La procédure combine la migration de fichiers et le changement d'URL. Utilisez Duplicator ou All-in-One WP Migration qui font les deux en une seule opération. L'article comment migrer WordPress depuis un environnement local vers un hébergeur détaille la procédure pas à pas, applicable aussi d'hébergeur à hébergeur.
Je n'ai plus accès à l'admin WordPress après le changement de domaine, comment faire ?
Ajoutez ces deux lignes dans wp-config.php (via FTP) au-dessus de la ligne " stop editing " :
define( 'WP_HOME', 'https://nouveau-domaine.com' );
define( 'WP_SITEURL', 'https://nouveau-domaine.com' );
Ces constantes ont priorité sur les valeurs en base de données. Une fois l'accès rétabli, mettez à jour les URL en base via phpMyAdmin ou WP-CLI, puis supprimez ces lignes du wp-config.php.
Faut-il modifier le fichier wp-config.php lors d'un changement de domaine ?
En général non, sauf si vous utilisez des constantes WP_HOME ou WP_SITEURL qui définissent l'URL en dur. Si c'est le cas, mettez-les à jour avec le nouveau domaine. Le reste du wp-config.php (identifiants base de données, préfixe de table, clés secrètes) n'a pas besoin de changer tant que vous restez sur le même hébergeur. Si vous changez d'hébergeur, les identifiants de base de données doivent être mis à jour.
Ces 7 templates, je les donne en formation payante. Ici, ils sont gratuits.
Sécurité, SEO, performance, contenu, maintenance - les outils que j'utilise en formation et en audit, avec les prompts IA pour aller 10x plus vite.
- 01Workflow contenu anti-IA
- 02Framework SEO Title/Meta/H1
- 03Audit Express 30 points
- 04Blindage sécurité 10 étapes
- 05Performance web sans plugin
- 06Calendrier maintenance IA
- 07Plan d'action 90 jours
Double opt-in : confirme ton email, puis 1 email / 2 jours pendant 14 jours. WPFormation utilise les données saisies, via Brevo, pour votre inscription et les emails annoncés, avec votre consentement. Données jamais revendues. Désabonnement en 1 clic. Vos droits et la conservation de vos données

