Migrer un petit site WordPress avec BackWPup

Credit : Logo officiel

Migrer un petit site WordPress avec BackWPup

Dylan D. — Agent Support Technique Serveur WordPress 2157 mots 11 min de lecture

Migrer un petit site WordPress avec BackWPup

Un classique au support : un client veut quitter son ancien hébergeur (souvent à cause de tarifs qui ont augmenté ou de performances décevantes) pour basculer sur IONOS. Petit site WordPress, blog perso ou vitrine d'artisan, environ 200 à 500 Mo total avec les médias. Pas d'accès SSH côté ancien hébergeur (mutualisé entrée de gamme), pas de WP-CLI disponible, pas de moyen de faire un rsync. Il faut une méthode qui marche avec uniquement FTP et phpMyAdmin.

La réponse depuis des années, pour ce profil de site, c'est BackWPup. Plugin gratuit, installé en 30 secondes, qui fait un export complet du site (fichiers + base) que tu peux ensuite restaurer côté destination. Voici la procédure exacte que j'utilise au support quand un nouveau client arrive avec ce besoin.

Quand cette méthode est adaptée (et quand elle ne l'est pas)

Avant de te lancer, vérifie que ton cas correspond.

Cette méthode convient si :

Cette méthode n'est pas adaptée si :

Pour les gros sites, j'écrirai un autre article sur la migration avec mysqldump + rsync via SSH. Là on reste sur le cas du petit site sans tooling avancé.

Préparer la destination IONOS

Avant même de toucher au site source, prépare l'environnement de destination. C'est ce que les clients oublient le plus souvent et ça fait perdre une heure plus tard.

Créer la base de données

Dans ton espace client IONOS, va dans Hébergement > Bases de données MySQL > Créer une base de données. Note précieusement :

Vérifier la version PHP

IONOS propose PHP 8.3 par défaut sur les nouveaux hébergements. Vérifie dans Hébergement > Versions PHP que tu es bien en 8.3 ou 8.2 minimum. Si le site source tourne sur PHP 7.4 ou 8.0, tu peux avoir des incompatibilités de plugins après migration.

Préparer le DNS

Si tu vas changer le domaine en même temps, OK. Si tu gardes le même domaine, prépare la zone DNS : tu modifieras les A et AAAA pour pointer vers IONOS au moment du basculement final.

Étape 1 : sauvegarder le site source avec BackWPup

Connecte-toi à wp-admin du site source. Va dans Extensions > Ajouter et installe BackWPup. Active.

Configuration de la tâche

BackWPup > Ajouter une nouvelle tâche :

  1. Nom de la tâche : Migration vers IONOS
  2. Type de tâche : coche
    • Sauvegarde de la base de données
    • Sauvegarder les fichiers
    • Sauvegarde des plugins installés WordPress XML export (optionnel)
  3. Format archive : Zip (ou Tar GZip si activé sur l'hébergement)
  4. Destination : Sauvegarde vers le dossier
  5. Sauvegarder la configuration

Lancer la sauvegarde

Clique sur Lancer maintenant. Pour un site de 300 Mo, compte 5 à 15 minutes selon les performances de l'hébergement. Pendant ce temps, BackWPup affiche une barre de progression. Surveille les éventuelles erreurs (timeout PHP, manque de mémoire).

Une fois terminé, va dans BackWPup > Sauvegardes. Tu vois ton fichier ZIP avec un nom du genre backwpup_xxxx_2026-04-22_08-15-23.zip. Télécharge-le sur ton PC.

Que contient ce ZIP ?

Le ZIP contient :

Étape 2 : exporter la base proprement

Même si BackWPup inclut un dump dans le ZIP, je préfère systématiquement faire un export séparé via phpMyAdmin. Pourquoi ? Parce que :

Procédure phpMyAdmin

  1. Connexion à phpMyAdmin de l'hébergement source
  2. Sélectionne la base WordPress dans le menu de gauche
  3. Onglet Exporter
  4. Méthode : Personnalisée — afficher toutes les options
  5. Sélectionne toutes les tables
  6. Format : SQL
  7. Options à cocher absolument :
    • Ajouter une instruction DROP TABLE / VIEW / PROCEDURE (case cochée)
    • Ajouter AUTO_INCREMENT (cochée)
    • Encadrer les noms de tables et colonnes par des guillemets obliques
  8. Encodage : utf-8
  9. Compression : zippé si la base fait plus de 10 Mo
  10. Exécuter

Tu obtiens un fichier nom_de_base.sql ou .sql.zip. Garde-le précieusement.

Étape 3 : transférer les fichiers via FTP

Décompresse le ZIP BackWPup sur ton PC. Tu obtiens une arborescence WordPress complète.

Connecte-toi en FTP/SFTP à l'hébergement IONOS de destination avec un client comme FileZilla ou WinSCP. Les credentials FTP sont dans Hébergement > Accès SFTP dans ton espace IONOS.

Le répertoire racine web sur IONOS est généralement /htdocs/ ou /clickandbuilds/WordPress/... selon le pack souscrit. Vérifie dans la doc IONOS.

Upload progressif

Pour un upload de 300 Mo via FTP, compte 30 minutes à 2 heures selon ta connexion. Conseil : commence par les dossiers les plus critiques (wp-admin, wp-includes) puis wp-content/themes et wp-content/plugins, et finis par wp-content/uploads qui est généralement le plus lourd.

En cas de coupure FTP, FileZilla et WinSCP supportent la reprise de transfert : relance, ils continuent là où ils s'étaient arrêtés.

Permissions à vérifier

Une fois l'upload terminé, vérifie côté IONOS que les permissions sont correctes :

Dans FileZilla, clic-droit sur un fichier > Permissions de fichier.

Étape 4 : importer la base sur IONOS

Dans phpMyAdmin de destination IONOS :

  1. Sélectionne la base que tu as créée plus tôt (dbs1234567)
  2. Onglet Importer
  3. Sélectionne le fichier .sql ou .sql.zip
  4. Format : SQL
  5. Exécuter

Quand le fichier est trop gros

IONOS limite l'import phpMyAdmin à 128 Mo sur les hébergements standard. Si ton fichier dépasse, deux options :

Option A : BigDump

C'est un script PHP qui découpe l'import en chunks. Télécharge sur ozerov.de/bigdump/, configure les credentials de la base dans bigdump.php, upload le script ET ton fichier SQL via FTP, puis lance https://exemple.fr/bigdump.php dans le navigateur.

Option B : importer table par table

Dans phpMyAdmin, exporte chaque grosse table séparément (typiquement wp_posts, wp_postmeta, wp_options, wp_comments), puis importe-les individuellement.

Étape 5 : modifier wp-config.php

Par FTP, ouvre wp-config.php à la racine et modifie les credentials de base :

define('DB_NAME', 'dbs1234567');
define('DB_USER', 'dbu1234567');
define('DB_PASSWORD', 'TonMdpQueTuAsNote');
define('DB_HOST', 'db5004789543.hosting-data.io');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');

Le piège classique IONOS : DB_HOST n'est jamais localhost. C'est toujours un hostname spécifique de la forme dbXXXXXXXXX.hosting-data.io. Si tu mets localhost, tu auras Error establishing a database connection immédiatement.

Vérifie aussi le table prefix :

$table_prefix = 'wp_';

Si le site source utilisait un préfixe custom (par exemple wpx7_), garde le même ici. Le préfixe doit correspondre aux tables que tu viens d'importer, sinon WordPress ne trouve rien.

Profiter pour ajouter les sels de sécurité

Génère de nouveaux sels sur api.wordpress.org/secret-key/1.1/salt/ et remplace les huit constantes AUTH_KEY, SECURE_AUTH_KEY, etc. dans wp-config.php. Ça invalide toutes les sessions actives, ce qui est sain après une migration.

Étape 6 : mettre à jour les URLs si tu changes de domaine

Si tu gardes le même nom de domaine, saute cette étape. Sinon, c'est l'étape la plus délicate de toute la migration.

URLs principales

Dans phpMyAdmin :

UPDATE wp_options SET option_value = 'https://nouveau-domaine.fr' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://nouveau-domaine.fr' WHERE option_name = 'home';

Ça permet déjà de te connecter au back-office.

URLs partout dans le contenu

Les anciennes URLs sont partout : dans les articles, les pages, les widgets, les options de plugins. Une simple commande SQL UPDATE ne suffit pas parce que certaines données sont sérialisées (par exemple les options de thèmes ou de plugins) et un remplacement bête casse la sérialisation.

La bonne méthode : utiliser le plugin Better Search Replace (gratuit, dispo dans le repo officiel).

  1. Connecte-toi au back-office
  2. Extensions > Ajouter > Better Search Replace
  3. Outils > Better Search Replace
  4. Rechercher : https://ancien-domaine.fr
  5. Remplacer par : https://nouveau-domaine.fr
  6. Sélectionne toutes les tables
  7. Décoche "Run as dry run?" (tu as déjà fait un backup)
  8. Lance

Refais ensuite avec les variantes :

Étape 7 : basculer le DNS

Dernière étape, le moment de vérité.

Dans la zone DNS de ton domaine (chez ton registrar, qui peut être différent de l'hébergeur) :

Le TTL DNS détermine combien de temps les anciens enregistrements restent en cache. Si tu peux, baisse le TTL à 300 secondes (5 minutes) 24h avant la migration, pour que le basculement soit rapide.

Vérifications finales

Une fois le DNS propagé (vérifie avec dig nouveau-domaine.fr ou whatsmydns.net) :

Erreurs courantes et leur fix

Erreur 1 : Error establishing a database connection

Dans 95% des cas : DB_HOST est resté localhost au lieu du hostname IONOS. Ouvre wp-config.php par FTP, corrige.

Erreur 2 : Erreur 500 après import

Souvent un plugin ou un thème incompatible avec la version PHP de destination. Désactive tous les plugins via FTP en renommant le dossier wp-content/plugins en plugins.bak. Si ça remarche, réactive les plugins un par un pour identifier le coupable.

Erreur 3 : images cassées

Le dossier wp-content/uploads n'a pas été uploadé entièrement. Vérifie par FTP que le dossier existe et contient bien la même structure de sous-dossiers 2018/01/, 2018/02/ etc. que la source.

Erreur 4 : connexion admin qui boucle

Cookies WordPress liés à l'ancien domaine. Vide les cookies de ton navigateur, ou utilise une navigation privée pour te reconnecter.

Erreur 5 : caractères spéciaux remplacés par des points d'interrogation

Problème de charset à l'import. Le dump était en latin1 ou utf8 non-mb4. Refais l'export en forçant utf8mb4 dans phpMyAdmin, et vérifie que wp-config.php contient bien define('DB_CHARSET', 'utf8mb4');.

Pour aller plus loin

La migration WordPress c'est tout un sujet. Voici les ressources connexes que je recommande :

Le réflexe à toujours avoir : tester avant de basculer le DNS

Le truc qui sauve la mise : avant de toucher au DNS, vérifie que ton site fonctionne sur IONOS avec une URL temporaire ou un fichier hosts local.

IONOS propose souvent une URL de prévisualisation du type s123456789.online.de ou similaire le temps que ton domaine pointe. Sinon modifie ton fichier hosts local (/etc/hosts sous Linux/Mac, C:\Windows\System32\drivers\etc\hosts sous Windows) pour faire pointer ton domaine vers l'IP IONOS, uniquement sur ta machine, le temps de tester.

Comme ça tu peux valider tout (connexion admin, affichage, formulaires, paiements) avant de basculer le DNS pour le monde entier. Si quelque chose cloche, tu corriges sans pression. Une fois que tout est validé, tu changes le DNS et la transition est invisible pour les visiteurs.

C'est cette approche qui fait la différence entre une migration stressante et une migration calme. Et après quelques dizaines de migrations, tu finis par avoir une checklist tellement rodée que tu peux migrer un petit WordPress en moins de deux heures, café compris.

# Articles similaires

Sur les memes sujets et plus loin