Deux back-offices, deux connexions à retenir, deux calendriers de mise à jour de sécurité à surveiller : c’était la situation d’un courtier en assurance dont le site vitrine tournait sous WordPress tandis que son blog, lancé séparément quelques années plus tôt pour sa simplicité de prise en main, vivait sur Ghost. Le rédacteur en charge du contenu jonglait entre deux interfaces, deux systèmes d’images, et deux façons différentes de gérer les catégories d’articles.
La décision a été de rapatrier l’intégralité du blog Ghost dans WordPress, puis de reconstruire un front unique qui consomme désormais une seule API REST pour l’ensemble du contenu, articles de blog compris.
Exporter proprement depuis Ghost
Ghost propose un export natif au format JSON depuis son interface d’administration, sous forme d’une archive contenant l’ensemble des contenus, images et métadonnées. Ce format reste propre à Ghost et ne s’importe pas directement dans WordPress : il a fallu écrire un script de conversion qui transforme chaque article Ghost en article WordPress via l’API REST, en conservant la date de publication d’origine pour ne pas fausser l’historique éditorial.
const articlesGhost = JSON.parse(fs.readFileSync('export-ghost.json', 'utf8'));
for (const article of articlesGhost.db[0].data.posts) {
await fetch('https://api.courtier-assur.fr/wp-json/wp/v2/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Basic ${motDePasseApplication}`,
},
body: JSON.stringify({
title: article.title,
content: article.html,
date: article.published_at,
status: 'publish',
}),
});
}
Reconstruire les catégories sans tout casser

Ghost organise le contenu par « tags » simples, quand WordPress distingue catégories et étiquettes. Plutôt que de forcer une correspondance automatique imparfaite, l’équipe a repris manuellement chaque tag Ghost pour décider s’il devenait une catégorie WordPress ou une simple étiquette, un travail de tri qui a pris plus de temps que prévu mais qui a évité une taxonomie confuse une fois le contenu migré.
Un seul front, une seule API à consommer
Une fois le contenu unifié dans WordPress, le front (déjà existant pour le site vitrine) a été étendu pour afficher également les articles de blog, désormais issus du même endpoint wp/v2/posts que le reste du contenu. Cette unification a supprimé un composant entier du front qui gérait auparavant l’appel séparé à l’API de Ghost, réduisant d’autant la surface de code à maintenir.
- Un seul point d’authentification à gérer pour l’équipe éditoriale.
- Un seul système de gestion des images, avec une seule médiathèque à organiser.
- Une seule dépendance de sécurité à surveiller côté back-office, au lieu de deux.
Ce que le courtier a perdu au passage
Ghost proposait un éditeur de texte plus épuré, apprécié du rédacteur pour la rédaction longue. WordPress, avec l’éditeur de blocs, demande un temps d’adaptation plus long pour retrouver le même confort d’écriture, en particulier sur les articles très longs. Ce compromis a été accepté en échange de la simplification globale de l’architecture.
La redirection, étape la moins visible mais la plus critique
Chaque ancienne URL Ghost a été redirigée vers sa nouvelle adresse WordPress, via des règles de réécriture ajoutées au niveau du serveur web plutôt que dans WordPress lui-même, pour éviter d’alourdir le temps de traitement de chaque requête entrante. Sans cette étape, plusieurs mois de contenu partagé sur les réseaux professionnels auraient renvoyé vers des pages disparues.
Deux systèmes de contenu qui se ressemblent un peu finissent presque toujours par coûter plus cher à faire cohabiter qu’à unifier.
Le bilan trois mois après la bascule
Trois mois après la migration, le courtier confirme que le temps gagné en administration dépasse largement le temps perdu en confort de rédaction. Le rédacteur, d’abord réticent à quitter l’éditeur de Ghost, a fini par adopter des raccourcis clavier de l’éditeur de blocs qui rapprochent son flux de travail de ce qu’il pratiquait auparavant, sans jamais retrouver exactement la même fluidité, un compromis jugé acceptable au regard de la simplification globale obtenue.
Notre verdict
Rapatrier un blog Ghost dans WordPress pour ne garder qu’un seul front headless simplifie durablement la maintenance, au prix d’un travail de conversion minutieux sur les catégories et d’une perte de confort d’écriture que l’équipe éditoriale a dû accepter.