Lorsqu’on migre un site WordPress vers un autre hébergement et que le nom de domaine change (par exemple de https://ancien-domaine.fr vers https://nouveau-domaine.fr), il ne suffit pas de copier les fichiers et la base de données.
Les anciennes URL restent enregistrées dans la base :
- dans les options du site,
- dans les contenus (articles, pages),
- dans les widgets,
- et surtout dans les données sérialisées utilisées par des thèmes et builders comme Divi ou Elementor.
Dans ce tutoriel, je te montre comment mettre à jour toutes les URL proprement grâce au plugin gratuit Better Search Replace (développé par WP Engine), qui gère correctement les données sérialisées.
Mais avant cela, une étape est absolument indispensable : remettre les bonnes URL de base du site dans la base de données, sinon WordPress reste bloqué sur l’ancien domaine et vous ne pouvez pas accéder à l’administration.
1. Comprendre le problème des données sérialisées
WordPress et de nombreux plugins stockent des données complexes dans un format interne appelé sérialisation PHP.
Par exemple, une option peut ressembler à ceci dans la base :
a:2:{s:4:"url";s:28:"https://ancien-domaine.fr";s:5:"title";s:8:"Accueil";}
Ici :
s:28:signifie que la chaîne qui suit contient 28 caractères ;- si vous remplacez
https://ancien-domaine.frparhttps://nouveau-domaine.frsans ajuster le nombre 28, la structure devient invalide.
Résultat : modules Divi/Elementor cassés, mises en page vides, options de thème corrompues.
Un simple “Rechercher/Remplacer” SQL dans phpMyAdmin ne sait pas recalculer ces longueurs. Il faut donc un outil qui comprend les données sérialisées et les réécrit correctement.
2. Identifier la base de données du site
Avant toute manipulation, vous devez être sûr de travailler sur la bonne base de données.
- Connectez-vous à votre nouvel hébergement (FTP ou gestionnaire de fichiers du cPanel).
- À la racine du site WordPress transféré, ouvrez le fichier :
wp-config.php - Repérez les lignes suivantes :
define( 'DB_NAME', 'nom_de_votre_base' );
define( 'DB_USER', 'utilisateur_base' );
define( 'DB_PASSWORD', 'mot_de_passe_base' );
define( 'DB_HOST', 'localhost' );
DB_NAME : nom exact de la base de données utilisée par le site WordPress.
DB_USER et DB_PASSWORD : identifiants de connexion MySQL.
Ces informations sont donc à conserver précieusement avant d’exécuter toute opération de recherche/remplacement.
3. Sauvegarder la base de données avant modification
Cette étape est obligatoire.
- Connectez-vous à phpMyAdmin depuis le cPanel ou depuis votre espace client OVH.
- Sélectionnez la base trouvée dans
DB_NAME. - Cliquez sur l’onglet Exporter.
- Choisissez le mode Rapide et le format SQL, puis validez.
Conservez ce fichier .sql : en cas de mauvaise manipulation, vous pourrez restaurer la base.
4. ÉTAPE PRIORITAIRE : MODIFIER LES URL DE BASE DANS LA TABLE OPTIONS
Avant de faire un remplacement global, vous devez d’abord remettre les bonnes URL principales du site.
Sans cette étape, WordPress continue de rediriger vers l’ancien domaine, et vous ne pourrez pas accéder au back-office (donc impossible d’installer un plugin).
Où modifier ?
Dans phpMyAdmin, ouvrez la table :
wp_options(ou similaire si votre préfixe n’est paswp_)
Puis modifiez ces deux lignes :
siteurlhome
Valeurs à mettre
Remplacez l’ancien domaine par le nouveau :
siteurl→https://nouveau-domaine.frhome→https://nouveau-domaine.fr
Une fois ces deux valeurs corrigées, vous devriez pouvoir vous connecter à l’administration du site sur le nouveau domaine.
5. INSTALLER LE PLUGIN “BETTER SEARCH REPLACE” (WP ENGINE)
Maintenant que l’accès au back-office est possible :
- Allez dans Extensions → Ajouter
- Recherchez Better Search Replace
- Installez puis activez le plugin
Ensuite, rendez-vous dans : Outils → Better Search Replace
Pourquoi utiliser LE PLUGIN BETTER Search Replace
Better Search Replace de WP Engine ne fait pas qu’un simple “Rechercher / Remplacer” : il comprend la structure interne de la base WordPress.
Lorsque des données sont sérialisées (comme dans Divi, Elementor ou ACF), le plugin met à jour la valeur et recalcule automatiquement la longueur de chaque chaîne avant de la réécrire.
C’est ce recalcul qui évite les erreurs et garantit que vos mises en page et options ne soient pas corrompues après la migration.
6. EFFECTUER LE REMPLACEMENT GLOBAL DES URL (SANS CASSER DIVI / ELEMENTOR)
Dans Better Search Replace :
- Search for :
https://ancien-domaine.fr - Replace with :
https://nouveau-domaine.fr - Sélectionnez toutes les tables
Cochez d’abord Dry Run (test) pour vérifier combien de remplacements seront effectués.
Si tout est cohérent :
- décochez Dry Run
- relancez l’opération en mode réel
Le plugin remplacera les URL dans toute la base, y compris dans les données sérialisées, sans casser la structure.
7. VÉRIFIER LE SITE APRÈS MODIFICATION
Une fois terminé, contrôlez :
- l’accueil
- les menus et liens internes
- les pages Divi / Elementor
- les images et médias
Si tout s’affiche normalement, la migration est correcte et toutes les URL ont bien été mises à jour.
Résumé
Avant tout, vous devez modifier home et siteurl dans la table wp_options, sinon WordPress reste bloqué sur l’ancien domaine.
Un remplacement SQL “à la main” peut casser les données sérialisées.
Better Search Replace permet de remplacer toutes les URL proprement, même dans les champs sérialisés.






