Dupliquer un site WordPress, c’est copier ses fichiers et sa base de données vers une autre adresse, puis remplacer l’ancienne adresse partout dans la base sans casser les données. Une extension comme Duplicator, All-in-One WP Migration ou WPvivid le fait en quelques clics ; WP-CLI le fait en quatre commandes. Ce guide compare les outils, détaille la méthode manuelle et liste ce qu’il faut couper sur la copie pour qu’elle n’envoie pas d’e-mails à vos clients ni d’encaissements réels.
Vous voulez surtout tester des mises à jour avant de les appliquer ? Notre article sur la préproduction WordPress décrit tout le cycle de test et de déploiement. Vous changez d’hébergeur sans changer d’adresse ? Lisez plutôt comment migrer un site WordPress vers un nouvel hébergeur. Ici, on parle de la copie elle-même : outils, méthode, pièges.
Copie, préproduction ou migration : trois besoins
Le mot « dupliquer » recouvre trois situations qui ne demandent pas les mêmes précautions. La différence tient à une question simple : à la fin, combien de sites tournent, et lequel reçoit les vrais visiteurs ?
- Une copie durable (site modèle pour un client, version d’un site pour un autre pays, refonte complète) devient un site à part entière : nouvelle adresse, nouvelles licences, sa propre maintenance.
- Une préproduction est une copie temporaire et fermée au public. Elle se rafraîchit depuis la production et ne doit jamais la remplacer en bloc, sous peine d’écraser les commandes et les comptes créés entre-temps.
- Une migration n’est pas une copie qui reste : l’ancien site s’éteint après la bascule DNS. C’est le sujet de notre guide de migration vers un nouvel hébergeur.
Les étapes d’une duplication réussie
Quel que soit l’outil, la copie suit le même enchaînement. Les extensions automatisent les quatre premières étapes ; les deux dernières restent toujours à votre charge.
Les outils de duplication comparés
| Outil | Principe | Version gratuite | Version payante | Idéal pour |
|---|---|---|---|---|
| Duplicator | Archive et script d’installation | Oui (Lite), sites de taille modeste | Pro dès 79 $ (2 sites) | Cloner vers un serveur vide, site modèle |
| All-in-One WP Migration | Fichier .wpress importé dans un WordPress neuf | Oui, import limité par la taille d’envoi de l’hébergeur | Unlimited Extension 69 $ par an (50 sites) | Débutants, sites petits et moyens |
| WPvivid | Sauvegarde, migration et préproduction | Oui, avec préproduction en sous-dossier | Pro dès 49 $ par an ou 99 $ à vie (2 domaines) | Petit budget, préproduction comprise |
| Migrate Guru | Transfert de serveur à serveur via ses serveurs | Oui, gros sites (jusqu’à 200 Go) | Aucune | Gros sites vers un autre hébergeur, pas en local |
| WP Staging | Clone dans un sous-dossier du même site | Oui, clones illimités | Dès 89 € HT par an | Préproduction en un clic sur le même serveur |
| UpdraftPlus | Sauvegarde restaurée ailleurs (Migrator) | Sauvegardes seulement | Premium dès 84 $ par an (2 sites) | Sites déjà sauvegardés avec UpdraftPlus |
Duplicator : le classique de l’archive
Duplicator crée un « paquet » : une archive du site et un fichier installer.php. Vous déposez les deux sur le serveur cible, ouvrez l’installateur, indiquez la nouvelle base de données, et il remplace l’adresse. La version Lite suffit pour un site de taille raisonnable ; Pro (de 79 $ pour 2 sites à 599 $ pour 100 sites, prix publics) ajoute les sauvegardes planifiées vers le cloud, les gros sites et le multisite. Piège : l’installateur et l’archive restent sur le serveur cible si vous ne les supprimez pas à la fin de l’installation.
All-in-One WP Migration : le plus simple
Plus de cinq millions d’installations. On exporte un fichier .wpress, on installe un WordPress vierge sur la cible avec la même extension, et on importe : les adresses et les données sérialisées sont remplacées automatiquement. L’export gratuit n’a pas de limite de taille, mais l’import passe par le formulaire d’envoi et bute sur la limite fixée par l’hébergeur. L’Unlimited Extension (69 $ par an, jusqu’à 50 sites) lève cette limite et ajoute des commandes WP-CLI. Cette extension a connu plusieurs failles ; gardez-la à jour et supprimez-la quand vous n’en avez plus besoin (voir l’historique de ses failles).
WPvivid et WP Staging : la préproduction intégrée
WPvivid combine sauvegarde, migration par envoi de fichier et, dès la version gratuite, une préproduction dans un sous-dossier. Pro (de 49 $ par an ou 99 $ à vie pour deux domaines) ajoute plusieurs préproductions, la publication vers le site en ligne et le multisite. WP Staging clone le site dans un sous-dossier du même hébergement, avec des tables à préfixe différent dans la même base ; le clone est gratuit et illimité, mais renvoyer les changements vers la production ou déplacer le site vers un autre domaine demandent une formule payante (Personal à 89 € HT par an, sans publication vers la production ; Business à 139 € HT).
Migrate Guru et UpdraftPlus : pour les gros sites ou les sites déjà sauvegardés
Migrate Guru, gratuit, copie un site jusqu’à 200 Go de serveur à serveur en passant par ses propres serveurs, avec un remplacement des adresses qui respecte les données sérialisées. Il ne fonctionne pas vers un poste local, ne fait pas de sauvegarde et demande un WordPress avec l’extension installée sur la cible. UpdraftPlus restaure une sauvegarde sur un autre site grâce à son module Migrator, inclus dans Premium (dès 84 $ par an pour deux sites) ; c’est la voie naturelle si vous sauvegardez déjà avec lui.
Beaucoup d’hébergeurs proposent aussi un clone en un clic : WP Toolkit dans cPanel et Plesk, la préproduction de Kinsta, d’o2switch ou d’Hostinger. C’est souvent la solution la plus rapide quand la copie reste chez le même hébergeur ; nos fiches comme l’hébergement WordPress chez Kinsta précisent ce que chacun propose.
La méthode manuelle avec WP-CLI
Sans extension, avec un accès SSH aux deux serveurs et WP-CLI, la copie est rapide, reproductible et ne laisse aucune archive dans un dossier public. Les adresses ci-dessous sont des exemples.
# 1. Sur la source : exporter la base et archiver les fichiers
wp db export /home/compte/copie.sql
tar -czf /home/compte/fichiers.tar.gz -C /home/compte/www .
# 2. Sur la cible : décompresser, adapter wp-config.php (base, utilisateur, mot de passe)
tar -xzf fichiers.tar.gz -C /home/compte/preprod
wp db import copie.sql
# 3. Remplacer l'adresse : d'abord à blanc, puis pour de bon
wp search-replace 'https://www.exemple.fr' 'https://preprod.exemple.fr' --skip-columns=guid --dry-run
wp search-replace 'https://www.exemple.fr' 'https://preprod.exemple.fr' --skip-columns=guid
# 4. Déclarer l'environnement, fermer l'indexation, vider les caches
wp config set WP_ENVIRONMENT_TYPE staging
wp option update blog_public 0
wp cache flush
wp rewrite flush
Gardez les fichiers .sql et .tar.gz hors du dossier public et supprimez-les après usage : une archive oubliée à la racine du site se télécharge en une requête (voir les fichiers sensibles exposés). L’option --skip-columns=guid suit la recommandation de WordPress : la colonne guid identifie les articles pour les lecteurs de flux et ne doit pas changer.
Pourquoi un rechercher-remplacer SQL casse les données sérialisées
WordPress et les extensions stockent beaucoup de réglages sous forme de tableaux PHP « sérialisés », où chaque texte est précédé de sa longueur : s:22:"https://www.exemple.fr". Si vous remplacez l’adresse avec un simple REPLACE() SQL ou dans un éditeur de texte, la longueur annoncée ne correspond plus au texte, PHP ne sait plus lire la valeur et le réglage disparaît sans message d’erreur : widgets vides, thème réinitialisé, options d’un constructeur de pages perdues. Les extensions citées plus haut et wp search-replace désérialisent, remplacent et recalculent les longueurs. N’utilisez jamais autre chose.
Ce qu’il faut couper sur la copie
Une copie fidèle fait tout ce que fait la production : elle envoie des e-mails, exécute ses tâches planifiées, encaisse et se fait indexer. Avant même de vous connecter à la copie, appliquez cette liste ; notre article sur la préproduction détaille chaque barrière.
| Risque | Ce qui se passe | Parade |
|---|---|---|
| Indexation | Google indexe la copie, contenu dupliqué | Mot de passe HTTP sur toute la copie, en plus du noindex |
| E-mails | Relances, factures ou lettres d’information envoyées aux vrais clients | Extension qui coupe ou capture les e-mails, SMTP de test |
| Tâches planifiées | Abonnements renouvelés, exports envoyés, synchronisations doublées | DISABLE_WP_CRON à true, tâches du serveur non copiées |
| Paiements | Prélèvements réels, webhooks qui mettent à jour la production | Stripe, PayPal et autres en mode test, clés de test |
| Licences premium | Une activation consommée, ou une copie qui demande sa propre licence | Désactiver la licence sur la copie, utiliser les clés de développement de l’éditeur |
| Données personnelles | Comptes clients copiés sur un serveur moins protégé | Anonymiser ou supprimer les données avant de partager l’accès |
WooCommerce Subscriptions repère lui-même une adresse différente et passe la copie en renouvellements manuels ; la plupart des autres extensions n’ont pas cette sécurité. Les licences premium varient beaucoup d’un éditeur à l’autre : certaines couvrent les sites de développement, d’autres comptent chaque adresse. Lisez les conditions avant de cloner, surtout pour un site modèle destiné à être copié souvent.
WP Masquerade sur une copie du site
Les réglages de WP Masquerade sont dans la base : ils suivent la copie. Quelques points demandent une vérification.
- Adresse de connexion : l’adresse de connexion secrète est un chemin, identique sur la copie. Si la copie doit être confiée à un prestataire, changez-la sur la copie pour ne pas révéler celle de la production.
- Comptes et double authentification : les mots de passe et les secrets de double authentification sont copiés avec la base. Une copie accessible depuis Internet est donc une seconde porte vers les mêmes comptes : protégez-la par un mot de passe HTTP.
- Règles serveur : l’extension gratuite réécrit seule le fichier qui masque son dossier, à la première visite d’un administrateur. Les alias de Pro (adresses des fichiers) reposent sur un bloc du
.htaccessracine qui contient le chemin complet du site : sur une copie placée dans un sous-dossier ou sur un serveur Nginx, il ne correspond plus. Recopiez le bloc généré pour la copie, puis lancez « Vérifier et activer ». - En cas de blocage : la constante
define('CMS_MASQUERADE_DISABLE', true);danswp-config.phpsuspend les transformations le temps de corriger. - Licence Pro : elle est liée à l’adresse du site. Une copie à une autre adresse n’est pas couverte par l’activation de la production ; la faire tourner durablement demande sa propre place de licence. Les conditions pour les sites de développement et de préproduction figurent sur la page des tarifs.
WP Masquerade n’est pas un outil de sauvegarde ni de duplication : il ne copie rien. Pour reprendre seulement ses réglages sur un autre site, utilisez l’import et l’export des réglages.
Questions fréquentes
Quelle est l’extension la plus simple pour dupliquer un site WordPress ?
All-in-One WP Migration pour un petit site : export d’un fichier, import sur un WordPress neuf. Pour un site plus lourd que la limite d’envoi de l’hébergeur, WPvivid ou Duplicator, ou Migrate Guru vers un autre serveur.
Peut-on dupliquer un site sur le même hébergement ?
Oui, dans un sous-domaine ou un sous-dossier, avec une base séparée ou un préfixe de tables différent. WP Staging, WPvivid et les outils de clone des hébergeurs le font en un clic.
La copie nuit-elle au référencement du site d’origine ?
Seulement si elle est indexée : deux sites identiques se concurrencent. Protégez la copie par un mot de passe HTTP, qui empêche aussi l’exploration, en plus de la case « Demander aux moteurs de recherche de ne pas indexer ce site ».
Faut-il racheter les licences des extensions premium pour une copie ?
Cela dépend de chaque éditeur : certains couvrent les sites de développement ou de préproduction, d’autres comptent chaque adresse. Une copie qui devient un site à part entière demande en général sa propre licence.
Pourquoi mes widgets ont disparu après un rechercher-remplacer ?
Le remplacement a cassé des données sérialisées. Restaurez la base, puis refaites le remplacement avec wp search-replace ou une extension qui gère la sérialisation.
À retenir
- Dupliquer = copier fichiers et base, puis remplacer l’adresse avec un outil qui respecte les données sérialisées.
- All-in-One WP Migration, Duplicator, WPvivid et Migrate Guru couvrent la plupart des cas ; WP-CLI reste le plus propre pour qui a SSH.
- Sur la copie : accès protégé, e-mails et cron coupés, paiements en test, licences revues.
- Supprimez archives, exports SQL et installateurs une fois la copie faite.
- WP Masquerade : réglages copiés, règles serveur à reprendre si le chemin change, licence Pro liée à l’adresse.
Une copie aussi discrète que l’original
La version gratuite de WP Masquerade déplace la connexion, bloque XML-RPC et retire les traces de WordPress, sur la production comme sur ses copies. Pro ajoute la double authentification, la limitation des connexions et les alertes sur les extensions vulnérables.
Sources
- WP-CLI : wp search-replace (lien externe, nouvel onglet)
- WordPress Developer : déplacer WordPress (lien externe, nouvel onglet)
- WordPress.org : All-in-One WP Migration (lien externe, nouvel onglet)
- WordPress.org : Migrate Guru (lien externe, nouvel onglet)


