Foire aux questions

Questions et erreurs courantes avant et pendant une migration. Vous ne trouvez pas votre réponse ? Écrivez-nous.

Connexion et identifiants

Le « Test de connexion » échoue avec « Not Found »

L’API REST de votre site n’est pas joignable à l’adresse habituelle (/wp-json/...). Le plus souvent, les règles de réécriture (permaliens) ne sont pas actives — fréquent juste après l’installation d’une extension, un changement de thème ou sur une installation neuve. Solution : allez dans Réglages → Permaliens sur ce site et cliquez sur Enregistrer les modifications (même sans rien changer), puis retestez la connexion.

« L’utilisateur cible n’a pas les permissions suffisantes »

Le compte cible doit avoir les capacités upload_files et edit_posts — en pratique un rôle Auteur, Éditeur ou Administrateur. Un compte Abonné ou Contributeur ne fonctionnera pas. Sur un site équipé du Connector gratuit, utilisez un Administrateur : l’extension n’accepte d’écriture que d’un admin.

Le mot de passe d’application est refusé ou semble ignoré

« Vous n’êtes actuellement pas connecté » veut dire que WordPress n’a authentifié personne, pas que le mot de passe est faux. Le test de connexion dit alors lequel des trois cas s’applique, chaque fois que c’est possible. Vérifiez dans cet ordre :

  • Le mot de passe existe encore. Sur ce site, Utilisateurs → Profil → Mots de passe d’application : s’il n’y figure plus (révoqué, ou utilisateur recréé), créez-en un nouveau. Copiez-le en entier — ses espaces sont cosmétiques, gardez-les ou retirez-les — et utilisez l’identifiant WordPress, pas l’adresse e-mail. Un profil enregistré garde le mot de passe qu’on lui a donné : après en avoir créé un nouveau, ressaisissez-le.
  • Les mots de passe d’application sont activés. Certaines extensions de sécurité les coupent (cherchez « application passwords » dans leurs réglages), et WordPress les refuse sur un site qui n’est pas servi en HTTPS — saisissez l’adresse du site avec https://.
  • L’hébergement transmet les identifiants. Sur certaines configurations Apache (CGI / FastCGI), l’en-tête Authorization est retiré avant que WordPress ne le voie : n’importe quel mot de passe ressemble alors à une absence de mot de passe. Vérifiez que le .htaccess du site contient toujours la ligne que WordPress ajoute pour cela, juste après RewriteEngine On :
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Si le site est derrière une autre demande d’identifiants (authentification HTTP Basic ou « confidentialité du répertoire » chez certains hébergeurs) ou un pare-feu qui bloque l’API REST, WPMove est refusé avant même que WordPress ne voie la requête : exemptez le chemin /wp-json/ de cette protection. Certaines extensions de sécurité (Solid Security, par exemple) répondent « pas connecté » à n’importe quel mot de passe faux, ce qui rend un mot de passe révoqué et un en-tête perdu impossibles à distinguer — c’est pourquoi le premier point passe en premier.

Erreurs SSL / certificat — ou mon site est en local

wpmove.app doit joindre les deux sites en HTTPS avec un certificat valide et reconnu. Un site local (.local, .test, certificat auto-signé…) n’est pas joignable depuis internet, quels que soient les identifiants — WPMove ne désactive jamais la vérification des certificats. Deux solutions : un domaine de préproduction avec un vrai certificat (Let’s Encrypt convient très bien), ou le Connector Premium installé sur le site local, qui importe ou exporte depuis l’intérieur.

« La requête a été bloquée par un pare-feu de sécurité »

Certains hébergeurs placent devant WordPress un pare-feu qui bloque les requêtes automatisées répétées avant que WordPress ne les voie. Vos identifiants ne sont pas en cause — le site n’a jamais reçu la requête. Demandez à votre hébergeur d’autoriser les requêtes de wpmove.app, ou patientez quelques minutes avant de réessayer. Des migrations plus petites (moins de contenus par passage) restent en général sous le seuil.

Avant et pendant une migration

Que vérifie « Analyser avant de migrer » ?

L’analyse lit les deux sites sans rien écrire et vous dit combien d’éléments de chaque type partiraient, ce que permet votre offre (contenus par migration, quota de médias), si le mode synchronisation s’applique et depuis quand, et ce qui demande votre attention : blocs réutilisables, commentaires, types de contenu ou taxonomies masqués à l’API REST, et — si vous les avez cochés — chaque réglage du site qui changerait sur la cible, avant et après. Avec le Connector gratuit installé, elle va plus loin — constructeurs de pages utilisés, adresses déjà prises sur la cible. Ce qu’elle n’a pas pu vérifier est signalé comme tel. Elle est disponible sur toutes les offres et n’invente jamais de durée.

Des types de contenu personnalisés (CPT) n’apparaissent pas à l’étape Contenu

La liste est lue en direct sur votre source dès que son test de connexion réussit. Un type absent a presque sûrement été enregistré sans prise en charge de l’API REST (show_in_rest) par l’extension ou le thème qui le déclare — WPMove ne voit que les types exposés par l’API REST du site qu’il lit (la source pour wpmove.app ou un import depuis un autre site, la cible pour un export vers un autre site). Solution : installez le WPMove Migration Connector gratuit sur ce site et cochez le type dans sa section Visibilité dans l’API REST — type par type, avec la réserve affichée sur place : un type exposé devient lisible par l’API REST publique de ce site. Retestez ensuite la connexion. Si aucune extension ne peut être installée, l’extension « must-use » de l’entrée suivante fonctionne de la même façon avec register_post_type_args.

Une taxonomie personnalisée ne migre jamais

Même cause que ci-dessus : la taxonomie a été déclarée sans show_in_rest — ce qui peut arriver même quand son type de contenu migre bien, les deux étant déclarés séparément. Si le Connector est installé sur le site concerné, cochez la taxonomie dans sa section Visibilité dans l’API REST. Sinon, demandez à la personne qui gère ce site de déposer ce fichier dans wp-content/mu-plugins/ (créez le dossier si besoin — aucune activation nécessaire) :

<?php
/**
 * Plugin Name: Force show_in_rest on a custom taxonomy
 * Description: Exposes a specific taxonomy through the REST API so tools
 *              like WPMove can read its terms. Replace 'your_taxonomy_slug'
 *              with the actual taxonomy name.
 */
add_filter( 'register_taxonomy_args', function ( $args, $taxonomy ) {
	if ( 'your_taxonomy_slug' === $taxonomy ) {
		$args['show_in_rest'] = true;
	}
	return $args;
}, 10, 2 );

Les médias ne migrent pas alors que « Importer les médias » est coché

Sur l’offre Gratuite, les médias ne sont jamais migrés — c’est une limite de l’offre, pas un bug. La migration des médias vient avec les offres Starter, Pro et Unlimited, chacune avec un quota annuel que vous pouvez compléter par des packs de crédits (voir les tarifs).

« Veuillez patienter N jours avant votre prochaine migration »

C’est le délai de l’offre Gratuite entre deux migrations. Les offres payantes n’ont aucun délai et permettent des migrations illimitées.

Une migration semble bloquée — aucune progression depuis un moment

Les migrations passent par une file d’attente : des pauses de quelques minutes entre deux pages sont normales. Si l’une cesse de progresser pendant plus de 30 minutes, vous recevez automatiquement un courriel (au plus un par heure). Sur l’écran de migration, Relancer reprend là où elle s’est arrêtée, Réinitialiser l’efface pour repartir de zéro.

Mes réglages sont-ils migrés — page d’accueil, logo, titre, menus, widgets ?

Sur demande. À l’étape Options, « Page d’accueil et identité » règle la page d’accueil, la page des articles, l’icône et le logo de la cible sur les pages et fichiers apportés par la migration ; « Réglages généraux » y ajoute le titre, le slogan, la langue, le fuseau horaire et les formats de date. Les deux sont décochés par défaut, parce qu’ils modifient la cible elle-même : utiles quand vous copiez un site vers un site neuf, inadaptés quand vous fusionnez du contenu dans un site qui a déjà les siens. L’analyse montre chaque changement avant le lancement, et une page ou un fichier qui ne fait pas partie de la migration est ignoré et nommé — jamais désigné par erreur. Jamais copiés : l’adresse du site, l’e-mail d’administration, le thème et les extensions actifs, ni les réglages des extensions (ils contiennent souvent des clés de licence). Les menus suivent aussi sur demande (« Menus », même étape) : menus de navigation et menus classiques, liens redirigés vers les pages migrées. L’en-tête de la cible ne les affiche que s’il n’a pas de menu à lui ; sinon, choisissez-en un dans Apparence → Éditeur → Navigation. Les widgets suivent aussi sur demande (« Widgets », même étape), dans les zones de widgets que le thème de la cible partage avec la source et qui y sont encore vides ; un widget que son extension garde fermé à l’API REST est copié par le WPMove Connector quand la cible l’a (extension gratuite, 2.1.24+), et un widget dont l’extension manque sur la cible est nommé dans l’analyse et dans le journal.

Migrer vers ou depuis un réseau multisite

Pour WPMove, chaque site d’un réseau est un WordPress à part : saisissez l’adresse complète de celui qui vous intéresse — https://exemple.fr/boutique/ pour un sous-site, pas la racine du réseau. Un sous-site et la racine de son réseau sont deux sites distincts : migrer de l’un à l’autre est donc permis. Trois points sont propres aux réseaux. Compte : sur un réseau, seul un super-administrateur peut publier du HTML non filtré — écrit par un administrateur de site, un contenu perd ses iframes, scripts et attributs on… ; WPMove signale chaque contenu concerné, et le mot de passe d’application d’un super-administrateur l’évite. Taille des fichiers : le réseau plafonne chaque téléversement (Admin du réseau → Réglages → Taille maximale des fichiers envoyés, 1 500 Ko par défaut) — relevez-la avant de migrer de gros médias ; le journal nomme ce réglage quand un fichier est refusé. Racine comme source : les liens et fichiers des autres sites du réseau restent tels quels, jamais redirigés vers la cible ; avec le Connector gratuit sur la racine, chaque sous-site est reconnu, sans lui seuls leurs fichiers médias le sont.

Migrer une boutique WooCommerce

Les produits arrivent avec tout ce que WooCommerce sait d’eux : type (simple, variable, groupé, externe, téléchargeable), prix et promotions, référence (UGS), stock, mise en avant et visibilité dans le catalogue, attributs — les attributs globaux sont créés sur la cible avec leurs valeurs —, variations avec leurs prix, stock et images, galerie, fichiers téléchargeables, ventes incitatives et croisées, images des catégories, et avis avec leur note. C’est WooCommerce qui les écrit : filtres et tris par prix fonctionnent tout de suite. Il faut : WooCommerce actif sur les deux sites, et le mot de passe d’application d’un administrateur. Les avis suivent « Importer les commentaires » ; avec le Connector gratuit sur la cible, ils sont ajoutés sans courriel à l’auteur du produit. Relancer une migration met à jour produits et variations au lieu de les dupliquer. L’export / import de fichier transporte tout cela, sauf les fichiers eux-mêmes : images et fichiers téléchargeables sont repris quand la médiathèque de la cible les contient déjà, et le journal d’import nomme ceux qui manquent. Non migrés : commandes, clients, codes promo et réglages de la boutique — les données personnelles et de paiement restent où elles sont. Le rapport d’analyse liste les produits, dont variables et groupés, et les avis avant le lancement.

Peut-on lancer une migration en ligne de commande ?

Oui, avec WP-CLI sur le site où le Connector est installé : wp wpmove export et import sont gratuits ; pull, push et les profils enregistrés sont inclus dans le Premium — mode synchronisation compris, pour une tâche cron ou une chaîne de déploiement. Lancez-les en administrateur (--user=) et ne mettez jamais le mot de passe d’application dans la commande. Toutes les commandes et des exemples.

Peut-on enregistrer plusieurs couples de sites — un par client ou par projet ?

Oui. À l’étape Sites, la barre Profil enregistre les deux sites, leurs identifiants et toutes les options sous un nom ; Mes migrations, dans la barre latérale, les liste avec leur dernière migration et l’action qui convient — synchroniser, relancer les échecs, ou analyser un couple jamais lancé. Passer d’un profil à l’autre conserve la mémoire de chaque couple sur ce qui a déjà été migré : une synchronisation reste incrémentale. Les mots de passe d’application sont stockés chiffrés et ne sont plus jamais affichés — laissez le champ vide pour garder celui qui est enregistré. Une seule migration tourne à la fois par compte. L’offre Free garde un profil ; les offres payantes, autant que vous voulez. Un compte revenu à l’offre Free conserve ses profils, mais ne peut plus en ajouter.

Où retrouver mes migrations passées et leurs journaux ?

Dans Historique, dans la barre latérale de l’application : chaque migration avec sa date, ses compteurs, son statut et son journal complet. Pendant une migration, le journal peut être filtré pour n’afficher que les erreurs, et téléchargé. Depuis Mes migrations, « Voir son historique » n’affiche que les migrations d’un profil.

Après une migration

Les mises en page Elementor, champs ACF ou métadonnées SEO manquent

L’API REST de WordPress ne transporte que les champs personnalisés qu’une extension lui a explicitement ouverts — la plupart ne le font pas : mises en page Elementor, champs ACF et certaines métadonnées SEO restent donc sur place, sans avertissement. Installez le WPMove Migration Connector gratuit sur les deux sites, puis relancez la migration : tous les champs personnalisés voyagent, y compris les images vers lesquelles pointe un champ ACF. L’extension est gratuite, sans compte, et ne répond qu’aux requêtes authentifiées avec le mot de passe d’application que vous utilisez déjà ici.

Un média est ré-importé avec un suffixe -1 dans son nom

Cela arrive quand « Ignorer les médias déjà importés » est décoché (mode remplacement) et qu’un fichier du même nom existe déjà sur la cible. Le mode remplacement de WPMove supprime d’abord le fichier existant justement pour l’éviter ; les fichiers suffixés que vous voyez encore ont très probablement été mis en ligne hors de WPMove avant la migration.

Le mode synchronisation a tout migré — ou rien

Le mode synchronisation ne transporte que ce qui a changé depuis votre dernière migration réussie entre les deux mêmes sites : une migration qui ne trouve rien à faire est donc le plus souvent normale. Il repasse volontairement en migration complète dans quatre cas, et le journal dit toujours lequel : aucune migration réussie vers cette cible ; la précédente s’est arrêtée au plafond de votre offre ; vous avez ajouté un type de contenu que la précédente ne couvrait pas ; ou vos migrations antérieures précèdent le mode synchronisation et n’ont jamais enregistré leur périmètre. Une migration complète l’enregistre, et toutes les synchronisations suivantes sont incrémentales. Un contenu supprimé sur la source n’est jamais retiré de la cible : le mode synchronisation ajoute et met à jour, ce n’est pas un miroir.

Des commentaires manquent — ou sont arrivés en attente de modération

Les commentaires ne voyagent que si « Importer les commentaires » est coché ; ce n’est pas le cas par défaut. Ceux en attente de modération sont transportés aussi, et le restent. Indésirables et corbeille sont volontairement laissés de côté. Les fils sont reconstitués ; une réponse dont le parent n’a pas été migré est rattachée à la racine plutôt qu’au mauvais commentaire, et le journal le signale. Les commentateurs arrivent en invités (nom et courriel), et relancer une migration ne duplique jamais les commentaires déjà présents.

L’auteur de l’article a reçu un courriel par commentaire migré

Ce courriel vient du site cible : WordPress prévient l’auteur d’un article à chaque commentaire approuvé, et un commentaire créé par l’API REST du cœur est traité comme un nouveau. Installez le WPMove Migration Connector gratuit sur la cible et les commentaires migrés sont écrits directement — sans courriel, sans modération, sans réponse refusée comme doublon. Sinon, décochez « M’envoyer un e-mail lorsqu’un commentaire est publié » dans Réglages → Commentaires de la cible le temps de la migration.

Qu’est-ce que le Connector gratuit change, installé sur la cible ?

Plusieurs choses, toutes silencieuses sinon. Les champs personnalisés : mises en page Elementor, champs ACF, meta SEO et modèles de page voyagent (l’extension est nécessaire sur les deux sites). Les commentaires et les avis : écrits directement, sans modération ni courriel. Les widgets : les widgets d’extensions fermés à l’API REST sont copiés eux aussi. L’analyse : le rapport peut vérifier les adresses déjà prises sur la cible. L’installer : dès qu’un site passe son test de connexion, l’étape Sites affiche sous lui un bouton « Installer le connecteur » — il installe et active l’extension depuis wordpress.org avec les identifiants saisis, et un lien « Le retirer » l’enlève après la migration. L’extension Premium fait de même pour l’autre site, depuis son écran d’import et d’export ou avec wp wpmove connector install. Une condition : le mot de passe d’application utilisé sur ce site doit appartenir à un Administrateur (ou à un compte autorisé à installer des extensions) ; un hébergeur qui interdit d’installer des extensions depuis l’extérieur est signalé, et vous pouvez alors l’installer depuis la page Extensions du site. L’extension est gratuite, sans compte, et c’est la même que pour l’export et l’import de fichier.

Toujours bloqué ?

Envoyez-nous le journal de migration — la réponse s’y trouve souvent.

WPMove
Aperçu

Ce site utilise des cookies pour améliorer votre expérience. Les cookies nécessaires sont indispensables au bon fonctionnement de WPMove. Nous utilisons aussi des cookies analytiques tiers pour mieux comprendre l'utilisation du service — uniquement avec votre consentement.