
Comment migrer WordPress vers Drupal ? Un guide étape par étape
La migration de site web est un sujet important que nous avons déjà abordé d'une perspective plus large dans un autre article. Dans cet article de blog, nous nous concentrerons sur un exemple spécifique. Nous examinerons la migration de WordPress, le système de gestion de contenu le plus populaire, vers Drupal. Nous étudierons les avantages d'une telle migration, son fonctionnement et comment nous devons nous y préparer.
Pourquoi migrer un site WordPress vers Drupal?
Migrer un site WordPress vers Drupal peut être avantageux dans de nombreuses situations grâce aux avantages du CMS avec une goutte bleue dans le logo. Avec des capacités de configuration plus avancées, Drupal permet un contrôle plus complet sur la structure et les fonctionnalités du contenu, ce qui est particulièrement utile pour les projets nécessitant des solutions spécialisées. Voici quelques avantages pour lesquels nous devrions envisager une telle migration de WordPress.
Un écosystème étendu de composants
Basé sur Symfony, Drupal nous permet de créer des fonctionnalités puissantes de manière simple, rapide et claire. Grâce à une objectivité totale, aux modèles de conception imposés et à l'utilisation de composants de ce cadre PHP, le développement et la maintenance de projets sont facilités. Un riche écosystème de solutions prêtes à l'emploi stimule l'efficacité et permet de gagner du temps.
De plus, Drupal nous offre de nombreux modules contribué créés par la communauté. Même pour les besoins commerciaux inhabituels, il y a de fortes chances que les développeurs centrés autour de cette technologie aient déjà créé une solution modulaire. La communauté Drupal mérite également des éloges pour sa volonté de fournir un support et de partager ses connaissances. Des correctifs pour ces besoins spécifiques sont parfois réalisés pour les modules, qui sont introduits avec des mises à jour au fil du temps.

Source: Drupal.org
Sécurité et contrôle d'accès
Si la sécurité est un élément crucial du projet, Drupal peut être une option fiable et éprouvée avec de meilleures options pour gérer l'accès aux données et des mises à jour de sécurité fréquentes. Le contrôle d'accès aux données sensibles est fourni par défaut dans Drupal, ce qui est essentiel pour les sites Web stockant des informations sensibles.
De plus, lors de la création de routages ou de vues, nous pouvons définir précisément qui y aura accès. Tout, des pages entières et des fonctionnalités aux champs individuels ou valeurs pouvant être sélectionnées dans un champ, peut être contrôlé avec des rôles et des permissions appropriés depuis l'interface utilisateur.


Performance et évolutivité
Drupal, surtout dans ses dernières versions, est optimisé pour la performance et peut gérer efficacement de grandes quantités de contenu et un trafic élevé. Lorsque nous prévoyons d'étendre notre site web et avons besoin de scalabilité, Drupal peut mieux gérer la charge croissante que WordPress.
Ce système fonctionne également bien en tant qu'API backend. Grâce aux fonctions intégrées, nous pouvons facilement partager toutes les données en les passant au format JSON/XML sans entrer dans l'écriture de logique personnalisée. Cela ouvre un large éventail de possibilités d'intégration avec des applications mobiles, des frameworks frontend et d'autres outils.
Gestion de contenu pour les grands sites web
Pour les projets avec beaucoup de contenu et des structures complexes, Drupal offre des outils de gestion de contenu avancés. Des entités prêtes à l'emploi, telles que des types de contenu ou des groupes, nous permettent d'organiser logiquement le contenu de notre site web. La facilité et la flexibilité de catégorisation sont l'un des principaux avantages de Drupal.
Nous obtenons non seulement la capacité d'agir sur les entités, mais aussi de les façonner librement. L'insertion de champs supplémentaires, la création de relations entre eux, et différentes options d'affichage selon l'endroit où ils sont utilisés ne sont que quelques-uns des avantages. Par exemple, une vue qui liste un type de contenu spécifique pour nous, avec un filtrage et un tri avancés, est cliquable dans l'interface utilisateur en quelques instants sans toucher au code.
Interface d'administration personnalisable
Si la personnalisation de l'interface d'administration pour répondre aux besoins spécifiques est essentielle, Drupal permet des modifications et personnalisations avancées. Cela sera extrêmement utile pour les projets nécessitant une disposition détaillée du panneau d'administration, un aspect spécifique ou des permissions.
Nous pouvons ajouter de nouveaux blocs avec des liens précieux ou des statistiques, créer de nouvelles vues qui listent des entités spécifiques pour nous basées sur nos propres conditions, puis modifier les liens en ajoutant une telle vue à un menu existant ou nouveau. Nous pouvons également personnaliser l'apparence du panneau d'administration en utilisant des skins déjà prêts, ainsi que nos propres styles.

Il existe également une option pour ajouter des raccourcis pour un accès rapide aux fonctions fréquemment utilisées.
Un autre avantage essentiel est le contrôle d'accès, qui nous permet de gérer précisément les permissions des utilisateurs du panneau d'administration. Par exemple, si nous ne voulons pas qu'un éditeur de contenu ait accès aux paramètres d'intégration API ou modifier les tâches Cron.
Migration de WordPress vers Drupal – comment fonctionne le processus?
Nous avons préparé quelques étapes clés pour migrer de WordPress vers Drupal basées sur l'expérience de nos développeurs. Bien que les spécificités des sites Web puissent varier, le processus de migration est généralement le même et fonctionne de la même manière. Il y a une certaine universalité dans l'approche de migration, ce qui la rend plus prévisible et schématique pour la plupart des projets.
Préparation à la migration WordPress
Avant de commencer la migration, nous devons réfléchir à la forme sous laquelle nous fournirons les données du site précédent. Dans la plupart des cas, nous aurons besoin d’un fichier XML pour cela, qui est généré à partir de WordPress en tant que sauvegarde.
Notre première étape est de déterminer précisément ce que nous allons migrer et où. Nous essaierons de passer en revue le site précédent pour nous assurer que ce que nous déplaçons est nécessaire. Souvenons-nous que moins signifie parfois plus. Par exemple, nous n'avons peut-être plus besoin de nouvelles de 2009 sur notre nouvelle page Web. Nous avons écrit davantage sur l'étape de planification dans notre article précédent sur la migration de site Web.
Configuration de Drupal avant de migrer WordPress
Dans l'environnement cible, nous préparons la structure de données où nous stockerons les données migrées. Après une planification préalable, nous devrions savoir quel contenu utiliser pour les taxonomies ou les groupes et quel contenu nécessitera des entités personnalisées.
Nous voulons que ce site Web soit prêt avant de commencer la migration proprement dite. Il est également nécessaire d'installer les modules Migrate Plus et CTools et WordPress Migrate. C'est aussi une bonne idée de mettre en œuvre les modules prévus qui seront nécessaires pour le site cible. Des exemples incluent Datetime ou Telephone, qui ajouteront un widget correspondant pour le champ de texte. Cela sera définitivement utile lors de la migration des données.
Migration du contenu WordPress
Nous commençons toujours la migration des données en collectant des informations. Les données sont déplacées d'une source à une autre, et notre travail est de les organiser en entités appropriées.
Dans le cas de WordPress, il sera préférable d'utiliser un fichier XML exporté de l'ancien site pour cela. Ici, nous pouvons utiliser le module WP Migrate mentionné précédemment, qui fera une partie du travail pour nous. Il déplacera les catégories, les articles de blog ou les pages de contenu. Tout ce que ce module ne fait pas automatiquement, nous devrons le migrer manuellement en écrivant nos migrations à l'aide de fichiers YML et de plugins de migration.
Migrer un site Web vers Drupal se compose de trois étapes:
- téléchargement des données,
- traitement des données,
- stockage des données.
Dans la première étape, nous devons récupérer les données d'une source, telle qu'une base de données SQL ou un fichier XML dans son intégralité. Par exemple, cela pourrait être un article de blog avec un titre, du contenu, un auteur, des informations graphiques, etc. Dans l'étape suivante, nous "disons à Drupal" quel message doit être transmis à quel champ.
C'est aussi un excellent moment pour organiser le site Web pendant la migration. Nous constatons souvent qu'il contient beaucoup de données inutiles que nous n'avons pas besoin de déplacer. Celles-ci peuvent être entièrement omises ou modifiées pendant le processus et adaptées à nos nouveaux besoins. À la dernière étape du stockage des données, nous créons une entrée dans Drupal en tant qu'entité spécifique.
Notamment, la migration de contenu peut être divisée en plusieurs migrations plus petites. Au lieu d'un processus vaste, nous pouvons migrer uniquement les utilisateurs en premier, puis les taxonomies et les images, et seulement à la fin - des types de contenu spécifiques et éventuellement des entités personnalisées.
Cette approche nous permet de créer facilement des relations entre les entités déjà pendant la migration, car d'autres processus de migration peuvent être référencés pendant que les données sont traitées. Chez Droptica, nous préférons cette forme de migration de site Web parce que nous n'avons pas à nous soucier de perdre des données, et le processus devient plus organisé.
Les propriétaires de sites Web s'inquiètent parfois aussi de changer la structure des URL pour certaines entités. Dans ce cas, des redirections appropriées sont nécessaires pour protéger les intérêts SEO du site Web. Il est déjà rentable lors de la migration de s'assurer que le module Pathauto a les schémas requis configurés.
Test de migration WordPress
Une fois que nous avons les données prêtes, il sera bon de les tester minutieusement. Il vaut la peine de passer du temps sur des tests automatisés pour vérifier minutieusement tout le contenu. Si nous découvrons que les données ne correspondent pas en termes de contenu ou de quantité, c'est un signe pour nous de faire les ajustements nécessaires aux plugins de migration.
L'utilisation du bon contenu nous procure un avantage significatif. Si nous utilisions du contenu de test, nous pourrions ne pas remarquer de problèmes importants. Des erreurs inattendues peuvent apparaître sur du contenu utilisateur, ce qui est mieux résolu à ce stade. Éliminer les cas particuliers uniquement lors du développement n'est malheureusement pas toujours possible.
Lorsque nous avions également notre propre entité dans WordPress et devions modifier ou traiter ces données, une attention particulière devrait être portée à tester ce contenu.
Migration des fonctionnalités de WordPress à Drupal
En ce qui concerne la migration des fonctionnalités, nous devons nous pencher un peu plus longtemps sur la disposition de la logique métier. Dans le cas de WordPress, nous pouvons même avoir des fichiers PHP individuels écrits à l'intérieur du CMS.
Les modules/plugins fournis par la communauté sont également complètement différents. Il est souvent le cas qu'un problème qui dans l'ancien système nécessitait plusieurs plugins (souvent payants) et du code personnalisé supplémentaire peut être facilement "résolu" dans Drupal sous la forme d'un module contribué ou d'une fonctionnalité déjà dans le noyau du CMS.
À ce stade, nous devons décider quelle direction prendre. Nous écrivons des modules personnalisés, configurons ou modifions ceux fournis par la communauté, et vérifions constamment avec le site précédent pour nous assurer que nous allons bien dans la bonne direction.
Bien sûr, il peut arriver que nous modifiions ces fonctionnalités, en ajoutions de nouvelles ou supprimions celles qui ne sont plus nécessaires. La migration vers un nouveau site Web est un excellent moment pour ce nettoyage. Nous travaillons alors sur une page Web qui n'est pas encore visible en production et non utilisée par les utilisateurs.
Vérification de la migration complète de WordPress à Drupal
Une fois le processus de migration terminé, nous nous concentrons sur les aspects clés pour garantir que le nouveau site Web fonctionne correctement et correspond à nos attentes. Voici quelques étapes à suivre.
Intégrations avec des services externes et des API
Nous nous assurons que toutes les intégrations avec des services externes sont correctement configurées, fonctionnent comme convenu précédemment, ou sont adaptées aux nouvelles exigences. Nous vérifions également principalement que les connexions API fonctionnent sans problème.
Contrôle du contenu et des médias
Nous vérifions que le contenu sur le nouveau site Web est cohérent avec les données d'origine. Il est également essentiel de vérifier que les images, vidéos et autres médias s'affichent correctement. Nous nous assurons qu'il n'y a pas de données perdues et que tout le contenu a été correctement transféré de WordPress.
Surveillance des erreurs et des journaux
Lors des tests, nous vérifions régulièrement Watchdog (un système pour journaliser l'activité et les erreurs dans Drupal) pour toute erreur post-migration. Nous vérifions également les messages d'erreur inattendus provenant, par exemple, de PHP lors de la navigation sur le site Web.
Optimisation SEO et vitesse de chargement de la page
Nous vérifions que les modules SEO de Drupal sont correctement configurés, et nous surveillons la vitesse de la page et l'ajustons si nécessaire, par exemple en agrégeant les styles et JavaScript.
Test des fonctionnalités et des permissions
Nous testons les fonctionnalités les plus importantes du site Web, surtout celles liées à l'interaction utilisateur. Nous nous assurons que toutes les permissions de contenu ont été correctement configurées.
Réactivité et compatibilité des appareils
Nous vérifions que le site Web est réactif et s'affiche correctement sur différents écrans après la migration. Nous confirmons que le frontend fonctionne comme prévu sur tous les appareils utilisés. Nous nous rappelons de regarder toutes les fonctionnalités sensibles, telles que les formulaires ou les tableaux, qui peuvent avoir des problèmes particuliers sur des écrans plus étroits.
Audit de qualité et tests
Nous réalisons un audit de qualité du site Web. Les outils tels que CodeSniffer et PHP Stan nous aideront dans cette tâche. Nous veillons également à ce que la page Web passe par le processus de test automatisé (Codeception) et soit intégré dans notre pipeline.
Reproduction de l'ensemble du processus fonctionnel
Dans le cadre de la migration de WordPress vers Drupal, l'étape finale est de recréer précisément l'ensemble du processus fonctionnel ou des processus. Plutôt que de nous limiter à des fonctions spécifiques, nous nous concentrons sur la garantie de la continuité de l'expérience utilisateur grâce à un flux complet que nous définissons dans le scénario de test.
Par exemple, cela pourrait être de passer par l'ensemble du formulaire pour enregistrer un nouveau utilisateur, attribuer des permissions, et ajuster les rôles attribués et les niveaux d'accès pour refléter les structures précédentes. Nous pouvons également nous concentrer sur le processus de création de nouveaux contenus. Nous prenons soin de maintenir la compatibilité avec la structure et les types de contenu du système précédent, permettant une transition en douceur pour les administrateurs et les utilisateurs finaux.
Reproduire l’ensemble du processus fonctionnel ne garantit pas seulement que les divers éléments fonctionnent correctement. Il est essentiel de parcourir des scénarios constitués de fonctionnalités non incluses dans le noyau de Drupal, mais explicitement écrites pour le site Web. Souvent, ce sont des éléments clés de la logique commerciale, et nous devons être certains que toutes les fonctions essentielles fonctionneront parfaitement après leur mise en œuvre. Enfin, nous ne voulons pas recevoir des centaines d’emails d’utilisateurs signalant quelque chose qui ne fonctionne pas après la migration.
Migration de WordPress à Drupal - résumé
Migrer WordPress vers Drupal est un processus complexe justifié par divers facteurs. Un CMS peut être choisi par rapport à un autre en raison de capacités de configuration avancées, une meilleure sécurité, un contrôle d'accès, des performances et une évolutivité.
Pendant la migration, il est utile de personnaliser la nouvelle page Web et ses fonctionnalités pour répondre à des besoins spécifiques et optimiser la structure des URL ou le design. En se concentrant sur un audit de qualité, des tests automatisés, une surveillance des erreurs et un ajustement de la réactivité, nous pouvons garantir une implantation fluide du site Web.
Le transfert d'un site WordPress vers Drupal est un processus complexe qui nécessite de la planification, de la diligence et des tests. Si vous envisagez de transférer votre page Web ou avez besoin de soutien sur ce sujet, vous pouvez compter sur notre aide. Nous nous spécialisons dans la migration de Drupal vers des versions supérieures et à partir d'autres systèmes CMS.