De Wordpress à Ghost - Retour d'expérience sur une migration facile et rapide

bloglife nov. 03, 2019

Depuis un bon moment, je souhaitais me débarrasser de Wordpress - clairement, le but est vraiment d'éjecter le CMS pour avoir un autre moteur de blog plus simple, plus léger, moins hydre / "usine à gaz". C'est alors que Ghost est apparu comme grand sauveur ! Vous trouverez ci-dessous le récit de la migration...


Utilisateur de Wordpress depuis plus de 7 ans, il était temps de voir autre chose, découvrir de nouveaux horizons. Il existe aujourd'hui une quantité de CMS / moteur de blogging, chacun correspondant à un besoin précis (même si tous se disent polyvalents).
Fût un temps où j'ai pris la main sur Grav - très instructif mais ne correspondait pas particulièrement à ce que je cherchais ; la communauté Grav gigote plutôt pas mal... mais pas assez à mon goût.

Ghost, c'est le CMS qui prend son envol de plus en plus. Conseillé par des copains sur le oueb, me suis dit qu'il était temps de passer le cap !
Après quelques tests en VM et une fouille rapide sur internet pour découvrir les communautés et les possibilités... je fûs conquis ! Hop, on passe à Ghost pour le renouveau de CZS...


La migration matérielle

Avant de lancer la nouvelle version, j'ai préféré repartir sur une base complètement vierge, c'est-à-dire un nouveau serveur. L'idée, c'est aussi d'effacer tout un historique un peu fumant que j'ai pu accumuler sur "l'ancien" serveur.
Location d'un VPS, installation de l'OS, configuration des services, mise en place d'un petit Docker... Beaucoup de nouveautés et de premières fois pour le coup !

Rien de particulier à signaler ici, passons plutôt à Ghost.


La migration logicielle

Passer de Wordpress à Ghost aujourd'hui est devenu réellement chose aisée. Auparavant, petit récapitulatif des tâches à effectuer :

  • Configurer les permaliens Wordpress en mode "www.site.fr/nom-article" (le paramètre se sélectionne dans les options avancées de Wordpress, rubrique "permaliens") /!\ voir point ci-dessous
  • Faire du ménage dans le contenu et effectuer une sauvegarde complète de la base de données Wordpress ;
  • Clôturer les commentaires & exporter tous les contenus (images, articles, pages, commentaires*) ;
  • Réimporter le tout dans Ghost

/!\ Par défaut, Wordpress utilise ce type de lien pour afficher les articles : http://site.fr/année/mois/jour/nom-article. Votre référencement sur les moteurs de recherches se fera donc avec ce type d'adresse. Ghost utilise un format d'URL plus simple : http://site.fr/nom-article
Si vous utilisez le format "à la Wordpress", vous devrez effectuer de la réécriture d'URL depuis votre nouveau serveur web, pour éviter la casse intégrale de votre référencement et donc éviter les erreurs 404 sur votre site. Idéalement, c'est d'avoir les permaliens directement en http://site.fr/nom-article depuis Wordpress pour éviter des règles de réécriture d'URL et donc d'éviter de perdre son référencement. Ici, c'était déjà le cas... inconsciement.

Depuis mon Wordpress, j'ai installé l'extension "WP-Ghost-Exporter" (installable depuis le catalogue d'applications Wordpress, menu "Extensions". Ce qui est chouette avec cette extension, en plus d'être officielle par l'équipe derrière Ghost, c'est que le travail est fait pour vous. En activant l'extension, deux fichiers se génèreront (dans /wp-content/uploads/ghost) :

  • wp-ghost-export.zip (comprenant tous les articles, toutes les pages et toutes les images)
  • wp-ghost-export.json (comprenant uniquement les articles et les pages)

Vous remarquerez que je ne parle pas des commentaires* : tout simplement parce qu'ils ne sont pas exportés. Il faut avoir une solution tierce pour ça - question de simplicité (ouiiii pas bien...) j'ai choisi Disqus. L'idée est la suivante : synchroniser tous les commentaires sur Disqus puis injecter le code tiers dans Ghost pour faire réapparaître les commentaires. Par la suite, il faudra de nouveau migrer de plateforme pour soit auto-héberger les commentaires (via Discourse, Commento, isso...) ou pas...

Ghost a été installé dans un conteneur Docker - simple, rapide, fiable... tout ce qu'on peut souhaiter à une application web aujourd'hui. Maintenant que le conteneur est stabilisé et que les données sont persistentes, passons à l'importation. Direction la page d'administration de Ghost, notamment dans le labs puis on sélectionne le fichier .zip généré depuis l'extension Wordpress/Ghost et on lance l'importation...
Au départ, j'avais limité les ressources utilisées par mon conteneur - grande erreur ! L'import finissait par crasher au bout de quelques minutes, puisqu'il n'avait pas assez de ressources pour travailler. C'est léger mais ça consomme en ressources finalement... On descend le conteneur, modifications des ressources/paramètres, on redémarre le contenur et on relance l'importation. Cette fois, c'est la bonne, ça tourne. OUF.
L'import s'est réalisé sans erreur particulière, avec toutefois quelques avertissements : tous les tags des articles ont été réimportés et ce n'est pas forcément une bonne affaire > en gros, l'indexation des articles est cassé (parce qu'il n'y a pas d'export/import des catégories générées dans Wordpress). Quelques liens n'ont pas été remis en place notamment à cause des images qui n'existaient déjà plus.

Suite à ce passage sous Ghost, tout semble reveu à la normal à piori. Les articles principaux et leurs images sont présents, les quelques pages créées sont aussi présentes et fonctionnelles. Tous les liens d'articles sont revenus comme avant. Le contenu est en mode HTML - à voir si une conversion HTML to Markdown est réalisable mais en soit, ce n'est pas grave dans le sens où les articles sont lisibles (le HTML est bien interprété et a bien été formaté).
Une fonction recherche est présente grâce au thème, pour le moment on classe tous les articles avec de nouveaux meta-tags (travail de fourmis...). La mise en place d'un outil tiers type IFTTT est aussi indispensable pour permettre l'auto-publishing sur les réseaux sociaux - D'ailleurs, est-il intéressant de garder une page Facebook encore aujourd'hui... ? Pas sûr.


Concrètement, la migration s'est passé bien plus simplement et rapidement que je ne le pensais. En bref, une journée réelle m'a été nécessaire pour faire ce changement en bon et dûe forme. En fouinant un peu sur le web, nombreux sont ceux qui ont eu des sueurs froides pour réimporter les données, notamment à cause d'un formatage un peu tordu de la part de Wordpress. Aujourd'hui, grâce au travail conjoint des équipes Wordpress et Ghost, votre contenu est exportable facilement.

Julien

Passionné par l'informatique depuis tout petit, je transforme ma passion en expertise. Utilisateur au quotidien des systèmes Microsoft, les OS GNU/Linux sont toujours sous mon coude ! Hire me !