Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

Migrer un multisite WordPress

Un réseau multisite WordPress héberge plusieurs sous-sites depuis une seule installation. Migrer ce type de réseau ajoute une contrainte que n’a pas un site simple : chaque sous-site a sa propre structure de contenu, et un remplacement d’URL global casse plus qu’il ne répare.

Décrire mon problème Discuter sur WhatsApp

Ce qu’un réseau multisite ajoute par rapport à un site simple

Un réseau multisite repose sur une constante MULTISITE activée dans wp-config.php, et sur une table qui répertorie l’ensemble des sous-sites du réseau avec leur domaine ou sous-domaine associé. Chaque sous-site dispose de ses propres tables de contenu, préfixées par un identifiant numérique qui lui est propre, mais l’ensemble du réseau partage une table d’utilisateurs commune au niveau du réseau : un compte utilisateur créé sur le réseau peut avoir accès à plusieurs sous-sites sans être dupliqué.

Les extensions ajoutent une distinction supplémentaire à vérifier avant migration : une extension peut être activée « pour le réseau », auquel cas elle s’applique automatiquement à tous les sous-sites y compris ceux créés après coup, ou activée individuellement sur un seul sous-site. Cette distinction ne se voit pas dans les fichiers de l’extension elle-même, seulement dans les réglages d’activation du réseau, ce qui rend l’inventaire préalable indispensable pour ne pas découvrir un sous-site orphelin d’une fonctionnalité après la bascule.

Cette organisation est stable et documentée depuis longtemps, mais elle change directement la façon de conduire une migration : il n’y a pas une seule base de contenu à traiter, mais autant de structures de contenu que de sous-sites, reliées entre elles par la table de correspondance des domaines du réseau.

Ce qu’une migration multisite implique en plus

  • Une table de correspondance des domaines et sous-domaines du réseau à mettre à jour, en plus des tables de contenu
  • Un remplacement d’URL qui doit s’exécuter sous-site par sous-site, l’option --url de wp search-replace ciblant un sous-site précis, pas le réseau entier en une fois
  • Des sous-sites qui peuvent avoir des thèmes ou des extensions actives différentes d’un sous-site à l’autre, à vérifier individuellement
  • Un domaine principal du réseau dont la bascule affecte l’accès à l’ensemble des sous-sites, pas seulement à un site isolé

Comment je conduis une migration de multisite

  1. Inventaire des sous-sites

    Je liste chaque sous-site du réseau, son domaine ou sous-domaine actuel, et les extensions ou thèmes qui lui sont propres, en notant lesquels sont activés au niveau du réseau plutôt qu’individuellement.

  2. Copie complète sur environnement de test

    Les fichiers et la base du réseau entier sont dupliqués sur un environnement de test avant toute modification d’URL.

  3. Remplacement d’URL sous-site par sous-site

    Je lance wp search-replace avec l’option --url ciblant chaque sous-site individuellement, plutôt qu’un remplacement global sur l’ensemble du réseau.

  4. Vérification de chaque sous-site

    Je contrôle que chaque sous-site répond correctement avec sa nouvelle URL, que ses réglages et ses menus s’affichent normalement, avant de passer au suivant.

  5. Bascule du domaine principal

    Le domaine principal du réseau n’est basculé qu’une fois tous les sous-sites vérifiés individuellement, jamais avant.

Pour aller plus loin

Décrivez votre besoin en 1 minute

Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.

D’où partez-vous ?
Quelle est la taille du catalogue, s’il y a une boutique ?
Le site utilise-t-il des extensions payantes avec licence à retransférer ? (facultatif)

Certaines licences sont limitées à un domaine ou nécessitent une réactivation auprès de l’éditeur.

Qu’est-ce qui doit impérativement être conservé ? (facultatif)
Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Questions fréquentes

Pourquoi ne peut-on pas lancer wp search-replace une seule fois pour tout le réseau ?
Chaque sous-site a ses propres tables de contenu, préfixées par un identifiant qui lui est propre. L’option --url de wp search-replace cible un sous-site précis : un remplacement global risque de mal traiter certains sous-sites.
Les comptes utilisateurs sont-ils dupliqués entre les sous-sites ?
Non, la table des utilisateurs est commune à l’ensemble du réseau. Un compte créé au niveau du réseau peut avoir accès à plusieurs sous-sites sans être recréé pour chacun.
Que se passe-t-il si je bascule le domaine principal avant d’avoir vérifié tous les sous-sites ?
C’est le point de non-retour de ce type de migration : l’ensemble du réseau devient instable d’un coup, pas seulement un sous-site isolé. Je vérifie systématiquement chaque sous-site avant cette étape.
Un sous-site peut-il avoir un thème différent des autres ?
Oui, chaque sous-site peut activer son propre thème et ses propres extensions. Je vérifie individuellement chaque sous-site pendant la migration, car leur configuration n’est pas forcément identique.
Le mécanisme de sérialisation PHP s’applique-t-il aussi au multisite ?
Oui, exactement de la même façon que sur un site simple, mais répété sur chaque sous-site. Le détail complet est expliqué sur la page consacrée à la migration d’hébergeur sans interruption.