Dupliquer un site WordPress existant vers un nouveau site est un besoin courant. Nous allons regarder les deux méthodes à notre disposition :
- l’export / import des articles en utilisant des fonctions de WordPress,
- l’export / import de la Base de Données en utilisant phpMyAdmin.
Nous verrons aussi comment déplacer un site à une nouvelle adresse internet tout en conservant la base de données.
Il est plus confortable d’utiliser une extension, mais cet article vous permettra de comprendre ce que fait une extension de duplication, et peut vous aider à corriger quelques petits problèmes.
- si vous dupliquez un site d’une adresse internet à une autre, attention au contenu dupliqué qui peut être sanctionné par les moteurs de recherche, qui risquent de l’analyser comme une tentative de tromperie.
- si vous déplacez un site d’une adresse internet à une autre, suivez la procédure décrite dans Google Search pour l’informer de l’opération et maintenir votre niveau de référencement.
Export puis import d’articles
Dans notre exemple, nous transférons les articles du site internet vers une installation en local. Il est tout aussi possible de s’en inspirer pour dupliquer deux sites internet, deux sites locaux ou un site local vers un site internet.
La migration par import / export s’effectue en quatre étapes :
- préparation du site cible,
- export des articles, pages et commentaires,
- Import du contenu du site source,
- modifier les liens vers les médias dans la Base de données.
Préparation du site cible
Il est conseillé de partir d’un site neuf, dont on aura retiré article et page de bienvenue en les mettant dans la corbeille, puis en vidant la corbeille. Voici comment procéder pour supprimer un article, l’opération pour les pages étant similaire .
Se connecter à l’administration, cliquer sur l’option « Tous les articles », survoler avec la souris l’article que l’on veut supprimer » et cliquer sur l’option « Mettre à la corbeille » :

Cliquer sur l’option « Corbeille » dans le menu horizontal situé en haut de page :

Cliquer sur l’option « Vider la corbeille » :

Si on part d’un site existant, il devient nécessaire de supprimer articles, pages et médias. Il est possible d’utiliser les « actions groupées ». Voici l’exemple de la suppression des médias.
Se connecter à l’administration, sélectionner l’option « Médias » , cliquer sur la case à cocher située au dessus de la liste des médias :

Cliquer sur la flèche située à droite de l’option « Actions groupées », sélectionner l’option « Supprimer définitivement » puis cliquer sur le bouton « Appliquer » :

Exporter les articles, pages et commentaires
La fonction d’export du contenu d’un site est une fonction standard de WordPress. Elle s’accède depuis l’administration :

WordPress permet de préciser ce qui sera intégré dans le fichier d’export pour être recopié dans le site cible.

Demander l’enregistrement du fichier :

Vérifier, à partir de l’explorateur de Windows, que le fichier d’export est bien créé.

On peut visualiser le fichier d’export, qui est au format XML, dans un éditeur de texte :

Import du contenu du site source
L’import des fichiers médias prend du temps; avant de lancer l’importation, il est souhaitable d’augmenter la durée d’exécution maximale autorisée pour les scripts php. De même, la taille des fichiers à télécharger peut être insuffisante.
Il existe trois solutions, que vous pourrez choisir en fonction de ce que l’hébergeur autorise. Sachez qu’il existe parfois une limite, liée à votre installation, au delà de laquelle vous ne pourrez pas aller.
- Modifier le fichier php.ini :
- Modifier le fichier .htaccess :
- Modifier le fichier functions.php du thème actif
Retourner dans l’administration du site cible (le site local dans notre exemple) et demander l’import :

WordPress demande ensuite le type d’import que l’on souhaite réaliser; choisir « WordPress » :

Si l’importateur n’est pas installé, WordPress propose de l’installer; il s’agit d’une extension (plugin) :


Après l’installation de l’importateur, WordPress demande de sélectionner le fichier à importer :

Après avoir cliqué sur Parcourir , sélectionner le fichier d’export qui contient la description de ce qu’il faut importer :


WordPress demande d’assigner les articles à des auteurs (les auteurs du site source peuvent être différents des auteurs du site cible). Surtout, sélectionner l’option Télécharger et importer les fichiers joints sinon, la librairie des médias ne sera pas mise à jour :

Voilà, l’import est réalisé, et WordPress nous gratifie d’un message d’encouragement :

Si le message ci-dessus n’apparaît pas, c’est que l’importation n’est pas terminée. Il faut la relancer, jusqu’à ce que le message de fin s’affiche. On peut suivre l’avancement, car à chaque importation, WordPress affiche la liste des images qui ont été ajoutées au site cible :

Les articles importés apparaissent bien dans la liste des articles quand on regarde depuis l’administration :

Problème : si on regarde dans le texte html des articles, on constate que les articles continuent à pointer vers le site source :

En revanche, les médias ont été recopiés dans le répertoire wp_content/uploads :

La base de données a été mise à jour pour permettre la gestion des médias :


Il nous reste à faire pointer les articles vers les médias du site cible à la place du site source. Pour cela, il va nous falloir intervenir dans la Base de Données du WordPress cible.
Modifier les liens vers les médias dans la Base de Données
Rappel : avant de modifier la Base de données, il faut toujours réaliser une sauvegarde, un accident est si vite arrivé !
Dans phpMyAdmin, sélectionner la Base de Données et cliquer sur SQL . Recopier les requêtes SQL ci-dessous, dans la zone de saisie et modifier :
- le domaine du site source (dans l’exemple : www.dfarnier.fr),
- le domaine du site cible (dans l’exemple : localhost/wp_paris),
- le préfixe des tables (ici : wcp2015_).

On peut regarder le code html d’un article pour constater que les liens ont été modifiés :

Vérifier les permaliens
Des problèmes d’affichage peuvent provenir de la gestion des permaliens. Les points à vérifier sont décrits dans le paragraphe Corriger les problèmes de permaliens.
Haut de pageDuplication par recopie de la Base de Données et des fichiers
L’article ci-dessous décrit la procédure à suivre :
Haut de pageDupliquer un site WordPress en local par copie de la Base de Données
Déplacer un site à une nouvelle adresse internet
À noter : dans notre exemple de déplacement de site, nous conservons la même base de données.
Dans l’exemple qui suit, le site est déplacé de l’adresse « http://wpdf.dfarnier.fr » vers l’adresse « http://dfarnier.fr ».
- Recopier les fichiers WordPress vers l’adresse cible,
- Mettre à jour le .htaccess à la racine du domaine,
- Modifier le contenu des tables WordPress,
- Modifier le .htaccess de l’ancien site,
- Associer l’ancienne url au sous-répertoire du nouveau site.
Recopier les fichiers WordPress vers l’adresse cible
Le site est sur un serveur distant. L’adresse internet « http://dfarnier.fr » correspond au sous-répertoire « mon-serveur/www ». L’adresse « http://wpdf.dfarnier.fr correspond au sous-répertoire « mon-serveur/www/wpdf ».
Copier l’ensemble des fichiers du site sur un répertoire temporaire de votre ordinateur. De cette façon, nous obtenons une duplication exacte de tous les fichiers, y compris les fichiers de thèmes, de plugins et de médias contenus dans le répertoire wp-content.
Nous utilisons un outil comme FileZilla pour transférer les fichiers sur votre ordinateur (« Site local ») :

Une fois les fichiers transférés, modifier le nom du fichier .htaccess sur votre ordinateur afin de ne pas risquer d’effacer ensuite le fichier .htaccess qui existe à la racine du domaine sur le serveur :

Positionner le site distant sur la racine du domaine et envoyer les fichiers depuis le répertoire local vers le répertoire correspondant à la racine du domaine ( « www » dans notre exemple ) :

Je vous conseille de télécharger le fichier .htaccess situé à la racine du domaine et de le renommer. En cas de problème vous pourrez revenir en arrière en réinstallant le(s) fichier(s) .htaccess initiaux.

Une fois renommé, le renvoyer sur le site vers le répertoire racine (« www ») :

Désormais, vous disposez de toutes les copies de sauvegarde des fichiers .htaccess nécessaires :
- en local pour constituer un nouveau fichier .htaccess à la racine du domaine,
- sur le serveur pour rapidement rétablir la situation en cas de problème en renommant les fichiers .htaccess.

Mettre à jour le .htaccess à la racine du domaine
Lorsque vous achetez certains thèmes ou extensions, il arrive qu’une clé permettant de justifier l’achat soit indispensable pour les utiliser. Si cette clé est liée à l’adresse internet de votre site, pensez bien à récupérer la clé avant de réaliser la bascule du site à sa nouvelle adresse.
En cas d’oubli, il est possible de contacter le support, mais cela prendra du temps.
Après avoir vérifié que le site est toujours accessible depuis l’ancienne adresse internet (www.wpdf.dfanier.fr dans notre exemple), nous devons constituer un nouveau fichier .htaccess.
Créer un fichier .htaccess en ajoutant les commandes du fichier .htaccess_wpdf au fichier .htaccess_racine . Il s’agit d’un simple copié / collé dans un fichier texte au moyen d’un éditeur de texte. Retirer les éventuelles instructions en double ou devenues inutiles.
Exemples de cas à traiter :
- retirer les redirections qui n’ont plus d’utilité; les commandes ci-dessous étaient intégrées dans le fichier .htaccess situées à la racine du domaine pour rediriger vers le site WordPress sauf pour la sous-adresse « autreappli ». Ces commandes doivent être retirées du nouveau fichier .htaccess à installer à la racine du domaine :
- il est possible de gérer le cache au niveau du navigateur en fonction des types de fichiers (jpg, html, css…). Ceci peut perturber l’affichage du site suite au déplacement, aussi je vous suggère de neutraliser momentanément ces commandes.
Commenter les commandes en ajoutant le caractère « # » en début de ligne, puis attendre par exemple une semaine, si la durée définie du cache était d’une semaine, avant de retirer le caractère « # » :
Envoyer le fichier .htaccess créé vers le répertoire racine (« www ») :

Il faut ensuite vérifier que tout ce qui fonctionnait, à commencer par le site WordPress accédé par l’ancienne adresse, continue de fonctionner correctement. En cas de problème, il faut renommer le nouveau fichier. htaccess (ex : .htaccess_sauve) pour le neutraliser et renommer le fichier .htaccess_racine en .htaccess pour le réactiver. On peut ensuite remodifier le fichier .htaccess racine progressivement pour identifier ce qui cause l’erreur.
Modifier le contenu des tables WordPress
Remplacer, dans la Base des Données, les liens pointant vers l’ancien site par des liens pointant vers le nouveau site.
Avant de modifier la Base de Données, nous la sauvons via un export (voir Sauvegarder la Base de Données) :

Exécuter la requête suivante en remplaçant ‘www.oldhost.com’ par l’adresse source et ‘www.newhost.com’ par l’adresse cible :
Dans phpMyAdmin, modifiez les requêtes en les paramétrant en fonctions des adresses source (exemple : wpdf_dfarnier.fr)et cible (exemple : dfarnier.fr) :

Modifier le fichier .htaccess de l’ancien site
L’ancienne adresse du site (ex: http://wpdf.dfarnier.fr) ne doit plus être utilisée car le site est désormais situé à la racine du domaine (https://dfarnier.fr). Néanmoins, des liens ont pu être enregistrés par des visiteurs et par des sites de référencement (Google, Bing…).
En modifiant le fichier .htaccess situé à la racine de l’ancienne adresse du site, on peut les rediriger automatiquement vers la nouvelle adresse :
À noter :
- la ligne en commentaire (# RewriteCond %{REQUEST_URI} !/xxxxxx.*) peut être modifiée pour autoriser l’exécution d’autres applications installées à l’ancienne adresse;
- le code « R=301 » indique que la redirection est permanente (et non pas temporaire). Cette information est importante pour les moteurs de recherche qui sont ainsi informés que le site a été définitivement déplacé et qu’il faut désormais rechercher à la nouvelle adresse.
Et ensuite
Désormais, le site fonctionne correctement à sa nouvelle adresse. Il reste néanmoins quelques actions à réaliser :
Avant de supprimer un fichier ou un répertoire, changer le nom en ajoutant des caractères (ex : « _xxx ») et vérifier que tout se passe bien.
S’il y a un problème, retirer les caractères, pour rétablir rapidement la situation.
Si tout va bien, effectuer réellement la suppression.
- mettre à jour Google Analytics pour qu’il analyse le site à sa nouvelle adresse et non plus à l’ancienne,
- vérifier le paramétrage des extensions pour remplacer toute référence à l’adresse de l’ancien site par l’adresse du nouveau site,
- supprimer les fichiers .htaccess temporaires situés à la racine du domaine qui n’ont été créés que pour le déplacement de site (dans notre exemple : « .htaccess_wpdf » et « .htaccess_racine ») ,
- supprimer le fichier wp_config.php situé à l’adresse de l’ancien serveur et tester l’ancienne adresse du site (permet de vérifier que l’ancien site n’est plus utilisé),
- à l’exception du fichier .htaccess, supprimer tous les fichiers et sous-répertoires dans le répertoire contenant l’ancien site (si la vérification précédente est validée, on peut supprimer les fichiers sans les renommer d’abord),
Associer l’ancienne url au sous-répertoire du nouveau site
Cette solution fait qu’un site devient accessible via deux adresses internet différentes. Difficile de faire pire comme contenu dupliqué qui est pénalisé par les moteurs de recherche. Cela complique aussi le suivi des statistiques qui doit s’effectuer pour deux sites.
En utilisant la console d’administration de l’hébergement, modifier le lien entre le sous-domaine internet (ex : http://wpdf.dfarnier.fr) et le sous-répertoire sur le serveur (mon-serveur/www/wpdf/).
Voici l’exemple d’un hébergement chez ovh :




Attendre la mise en place effective de la redirection. Ceci se vérifie en utilisant l’ancienne adresse pour accéder au site; si l’url n’est pas modifiée dans la barre d’adresse du navigateur, c’est que l’association de l’url avec le répertoire racine est désormais en place :
Il est désormais possible de supprimer le sous-répertoire qui contenait l’ancien site, si aucune autre adresse internet ne lui est associé.
Nous avons vu deux façons d’effectuer une redirection :
- via l’association d’un sous-répertoire à une adresse internet,
- ou via une commande dans un fichier .htaccess.
On peut dire que la première méthode consiste à associer une nouvelle maison à un numéro de rue, alors que la seconde consiste à mettre une affiche pour le facteur afin qu’il dépose le courrier à une autre adresse.
Déplacer wp-config.php
WordPress recherche le fichier « wp-config.php » dans le répertoire racine de l’hébergement ou dans le répertoire directement au dessus.
Par exemple, si le répertoire racine est « mon-serveur/www », le fichier wp-config.php sera recherché d’abord dans « mon-serveur/www » puis dans « mon-serveur ».
Si le site est installé à la racine http de l’hébergement (généralement un répertoire du type « www »), installer « wp-config.php » dans le répertoire qui contient « www » rend « wp-config.php » invisible depuis internet. Pour un fichier qui contient des informations sensibles (coordonnées de la Base de Données, clés de sécurité…), c’est une mesure de sécurité utile.
Haut de page
Salut,
Je possède un site web sous WP (monté par un ami qui gère) et je souhaite « dupliquer » le template (car j’aime la mise en page, le fonctionnement), cependant je ne veux pas du contenu. Car même si le nouveau traitera du même thème d’une manière générale (actu manga / jeux vidéo / test / lifestyle / etc.) je souhaite deux sites complètement distincts sans duplicata du contenu (car notre ami google n’aime paaaaas du tout)
Quelle est la démarche à suivre stp ? En sachant que je n’ai que quelques bases en info (j’ai compris les grandes ligne de ton article par contre passer à la pratique va se passer non sans mal 🙂 )
Éventuellement un tuto youtube a proposer ?
Merci d’avance
Bonjour,
Si je comprends bien, tu souhaites utiliser le même thème que celui du site existant sur un nouveau site. Le thème, c’est ce qui définit l’aspect visuel du site.
Dans ce cas, il suffit de faire une nouvelle installation de WP, de télécharger le thème et de l’activer.
Première question : disposes-tu d’un hébergement ? Si oui, voici la procédure d’installation de WP sur un hébergement : https://dfarnier.fr/installer-wordpress-internet/
Si tu ne souhaites pas payer pour un hébergement, tu peux créer le site sur wordpress.com.
Installer le thème est très simple : il faut se connecter à l’administration, télécharger le thème et l’activer.
Il n’y a besoin d’aucune connaissance en informatique. C’est beaucoup plus simple que ce que je présente dans l’article,car dans ce cas on souhaite récupérer le contenu.
N’hésite pas à me recontacter si tu ne comprends pas quelque chose.
Daniel Farnier
Bonjour Daniel et merci pour ta réponse plus que rapide !
Pour être plus précis, car effectivement si il ne s’agissait que de l’installation du thème cela serait parfait, mais non …
En gros mon ami a pris un thème qu’il a ensuite modifié:
1 / le header contient un formulaire maison qui renvoi vers une plateforme d’affiliation (avec mes ID etc.)
2/ Le template pour les articles a été optimisé avec des encarts spéciaux pour faire des rappels aux lecteurs :
– Encart type de manga : shonen / shojo / etc
– Encart prix
– Encart note de l’évaluateur
– Encart pour la photo
Bref le site était aux petits oignions par rapport au thème de base. c’est cela que je veux transférer vers un nouveau site qui aura un nom différent, qui visera une population différente (bref, comme expliqué je ne veux pas du contenu). Mais (et c’est la mon problème) je veux garder ce mode de fonctionnement car il m’est propre et dev sur mesure.
Et je ne veux surtout pas qu’au final google pénalise mes deux sites pour duplicata du contenu ! Ou du contenu non visible qui renverrai vers mon ancien site …
Je ne sais pas si je suis clair !
Merci d’avance
Des fichiers du thème ont donc été modifiés ou ajoutés par ton ami.
Il faut replacer ces fichiers dans le répertoire « themes » de la nouvelle installation.
La bonne méthode consiste à créer un thème enfant dans un sous-répertoire dédié. En gros, WordPress ira chercher les fichiers dans le répertoire du thème enfant et s’il ne les trouve pas, il ira les chercher dans le répertoire du thème parent. Modifier directement les fichiers du thème parent présente le risque de voir les fichiers modifiés remplacés à la première mise à jour.
C’est assez simple à réaliser, sauf qu’il faudrait que ton ami te fournisse les fichiers modifiés et créés et te permette de les recopier sur ta nouvelle installation.
Cdlt
Bonjour et merci pour toutes ces explications !
Je me retrouve avec un problème dont je ne trouve pas la solution…
J’ai commencé à réaliser un site wordpress en /DEV. Je suis parti d’une base de données d’un site que j’avais déjà réalisé avant. J’ai donc dupliqué cette base de données et modifié le nom.
J’ai donc réalisé mon site en /DEV sans problème. Une fois que j’ai voulu migrer mon site sur l’adresse définitive en .FR (j’ai suivi toute la procédure, j’ai modifié le fichier « config.php » et j’ai bien utilisé le script Interconnectit pour rediriger les url du /DEV vers le .FR) je me retrouve avec le contenu et la structure de l’ancien site dont j’avais dupliqué la base de données… Comment est-ce possible ?
http://www.brasseriedescuves.fr
Merci d’avance pour votre aide,
Très cordialement,
Julien.
J’aurais tendance à penser que vous avez importé sur le site internet l’ancienne base de données et non celle modifiée en dev.
Merci pour la rapidité de votre réponse,
Après avoir jeté un œil au contenu de la base, il semblerait que ce soit le cas… je ne sais pas comment c’est arrivé.
Bonjour,
Merci pour le tuto. J’ai utiliser la méthode d’export de base pour créer un site de test. Mais lorsque je tape l’adresse du nouveau site, je suis renvoyé vers l’ancien.
D’où peut venir le problème ?
Merci pour votre aide.
Bonjour,
Deux points à vérifier :
– « wp-config.php » pointe bien vers la nouvelle base,
– dans la table wp-options les url du site ont bien été mises à jour (options « siteurl » et « home »).
Daniel
Merci pour la réponse.
Je vais vérifier tout ça.
Bonjour,
Le wp-config et la base sont bien modifiés.
J’ai correctement accès au back office, mais pas au front office. Il reste comme une redirection dans les fichiers wp vers le site d’origine. J’ai vidé tous les cache, je crois…
Les permaliens montrent pourtant bien la nouvelle adresse.
J’ai testé l’installe d’un site WP vierge dans le même répertoire et il fonctionne instantanément, et normalement.
Merci pour votre aide.
Cordialement.
Bonjour,
J’ai une redirection 301 impossible à trouvée, je me demande si ce n’ai pas dû au certificat SSL et au plugin qui le gère.
Merci pour votre aide.
Cordialement.
Dans ce cas, il faudrait désactiver l’extension pour confirmer que le problème vient de là.
Si oui, il faudrait désinstaller l’extension puis la réinstaller.
Daniel
Bonjour,
Après vérification, ça viendrait du script fourni. Il n’est pas du tout complet. Il me reste plus de 300 « holdhost » dans ma BD… en utilisant la recherche de phpmyadmin.
Le script date de près de trois ans, je ne l’ai pas retesté depuis un certain temps.
Pourriez-vous m’indiquer dans quelles tables et quel champs vous trouvez des valeurs non modifiées ?
Merci
Daniel
Bonjour,
merci pour toute cette mine d’informations qui me sera bien utile !
J’aimerais faire une duplication de mon site (thème + contenu) sur un nouveau domaine, et donc me retrouver avec visuellement + en contenu le même site, mais les urls correpsondent à deux domaines différents. Je souhaite faire ça car je souhaite reprendre la même trame et n’avoir qu’à changer mon SEO pour le nouveau secteur géographique ciblé.
Afin d’être sûr de ne pas faire de bétises, j’aimerai avoir une confirmation que la procédure fonctionnera bien avec ce que je veux faire et est bien compatible à l’heure actuelle avec la dernière version de wordpress 4.9.8.
Merci d’avance pour votre retour 🙂