Guide de déploiement

Migrer de Squarespace vers Ghost sur VPS

Déployer sur un VPS Cloud →

Migrer de Squarespace vers Ghost sur VPS

Comparatif10 min de lecture8 étapes

En juillet 2026, Squarespace a relevé le tarif de son plan Core de 276 à 348 $/an — soit 26 % d'augmentation sur un abonnement que beaucoup renouvellent sans y prêter attention. Ghost, lui, est un CMS open source publié sous licence MIT : vous hébergez le moteur sur un VPS, vous gardez la base d'abonnés, et le coût total reste stable d'une année sur l'autre. Ce guide détaille le calcul, puis chaque étape de la migration.

Sommaire· Pourquoi la hausse Squarespace de juillet 2026 change le calcul1/7
  1. 01Pourquoi la hausse Squarespace de juillet 2026 change le calcul
  2. 02Ce que Ghost auto-hébergé vous donne que Squarespace ne donne pas
  3. 03Coût total sur 3 ans : Squarespace Core vs Ghost sur VPS
  4. 04Prérequis avant de commencer
  5. 05Migrer de Squarespace vers Ghost sur VPS : étapes
  6. 06Dépannage : erreurs fréquentes lors de la migration
  7. 07Après la migration : entretien courant

Pourquoi la hausse Squarespace de juillet 2026 change le calcul

Squarespace est passé de 23 à ~29 $/mois sur son plan Core en juillet 2026, ce qui représente 348 $/an facturés d'un bloc à l'échéance. Ce n'est pas la première hausse — le plan Business avait déjà grimpé de 33 % entre 2022 et 2024 — et les tarifs Squarespace ne comprennent pas les newsletters payantes sans commission ni l'accès à votre serveur.

Ghost, à l'inverse, est un logiciel que vous installez sur votre propre infrastructure. Vous payez uniquement le VPS qui le fait tourner. Aucun surcoût au passage d'un seuil de trafic, aucune commission sur les abonnements payants, aucune dépendance à la politique tarifaire d'un tiers.

Le seuil de rentabilité se calcule en quelques lignes : si votre VPS coûte 99 DH/mois et votre domaine selon l'extension choisie, vous êtes rentable dès la première année par rapport au plan Core Squarespace à 348 $/an.

Ce que Ghost auto-hébergé vous donne que Squarespace ne donne pas

  • Newsletters payantes sans commission — Stripe est branché directement ; Ghost ne prélève aucun pourcentage sur les abonnements de vos lecteurs, contrairement aux 10 % du plan Core Squarespace.
  • Accès root au serveur — vous pouvez modifier la configuration nginx, poser des règles de cache, installer un proxy d'analytics ou connecter Ghost à votre pipeline de données.
  • Thèmes open source — des centaines de thèmes Ghost sont disponibles sur GitHub sans licence supplémentaire ; les modifier ne demande que des connaissances en Handlebars.
  • Export complet et portable — Ghost exporte votre contenu en JSON structuré et vos abonnés en CSV ; vous pouvez importer ces fichiers sur n'importe quelle autre instance Ghost sans perdre les métadonnées.
  • Coût prévisible — le tarif du VPS ne varie pas selon votre trafic ou le nombre d'abonnés ; seule une mise à niveau volontaire change la facture.
  • Mises à jour sous votre contrôle — vous décidez quand passer à la prochaine version majeure, ce qui évite les migrations forcées qui ont cassé des thèmes Squarespace par le passé.

Coût total sur 3 ans : Squarespace Core vs Ghost sur VPS

Faites défiler le tableau

PosteSquarespace CoreGhost sur VPS ServOrbit
Abonnement plateforme (an 1)~29 $/mois (348 $/an)99 DH/mois × 12
Abonnement plateforme (an 2)~29 $/mois ou plus (348 $/an)99 DH/mois × 12
Abonnement plateforme (an 3)~29 $/mois ou plus (348 $/an)99 DH/mois × 12
Domaine (.com, /an)Inclus dans le planselon le registrar
Commission newsletters payantes10 % sur les revenus0 % — Stripe direct
Accès SSH / rootNon disponibleInclus
SauvegardesNon incluses (option payante)Hebdomadaires incluses
Migrations assistéesNonIncluses sur demande

Prérequis avant de commencer

Ghost est écrit en Node.js et s'appuie sur une base MySQL (ou MariaDB). Les ressources recommandées pour une publication personnelle ou professionnelle à trafic modéré :

Serveur : 1 vCPU, 1 Go de RAM minimum — Ghost tourne confortablement sur 512 Mo en régime stable, mais les pics de build de thème et les migrations demandent de la marge. Un VPS Start couvre la majorité des cas.

Stockage : 10 Go suffisent pour démarrer ; prévoyez 20 Go si vous publiez régulièrement des images ou des fichiers audio pour un podcast.

Logiciels : Node.js 22 LTS ou supérieur, npm, MySQL 8 ou MariaDB 10.6+, nginx comme reverse proxy, certbot pour les certificats TLS.

Nom de domaine : un domaine pointé sur l'IP de votre VPS ; le SSL sera provisionné automatiquement par Ghost CLI via Let's Encrypt.

Accès SSH : une clé ED25519 ou RSA configurée sur le serveur — Ghost CLI refuse les installations en root, vous devrez créer un utilisateur système dédié.

Compte Squarespace actif jusqu'à la date de migration : l'export des articles se fait depuis le panneau d'administration.

Migrer de Squarespace vers Ghost sur VPS : étapes

  1. Exporter votre contenu depuis Squarespace

    Depuis votre tableau de bord Squarespace, allez dans Paramètres → Avancé → Importer / Exporter le contenu, puis cliquez sur Exporter. Squarespace produit un fichier XML au format WordPress Extended RSS (WXR). Ce format est reconnu par les outils de conversion Ghost — Ghost ne lit pas le XML Squarespace nativement, mais l'outil ghost-gscan et les convertisseurs tiers traitent le WXR.

    Exportez aussi vos abonnés : Marketing → Abonnés e-mail → Exporter, qui produit un fichier CSV avec les adresses, les statuts d'abonnement et les dates d'inscription. Conservez ce CSV précieusement — c'est votre liste, et elle ne se récupère pas autrement après fermeture du compte.

  2. Préparer le serveur VPS

    Connectez-vous en SSH à votre VPS : ssh [email protected]. Mettez à jour les paquets, puis installez Node.js 22 via le dépôt NodeSource :

    curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

    sudo apt-get install -y nodejs

    Installez ensuite MySQL et nginx :

    sudo apt-get install -y mysql-server nginx

    Sécurisez MySQL avec sudo mysql_secure_installation, puis créez la base et l'utilisateur Ghost :

    sudo mysql -u root -p -e "CREATE DATABASE ghostdb; CREATE USER 'ghostuser'@'localhost' IDENTIFIED BY 'mot_de_passe_fort'; GRANT ALL ON ghostdb.* TO 'ghostuser'@'localhost'; FLUSH PRIVILEGES;"

    Créez enfin un utilisateur système non-root pour Ghost : sudo adduser ghost-runner.

  3. Installer Ghost CLI et Ghost

    Installez Ghost CLI globalement : sudo npm install ghost-cli@latest -g

    Créez le répertoire d'installation et donnez-en la propriété à votre utilisateur Ghost :

    sudo mkdir -p /var/www/ghost

    sudo chown ghost-runner:ghost-runner /var/www/ghost

    sudo chmod 775 /var/www/ghost

    Passez en utilisateur Ghost, puis lancez l'installation :

    su - ghost-runner

    cd /var/www/ghost && ghost install

    Ghost CLI vous posera une série de questions : URL de production (ex. https://votre-domaine.com), informations de connexion MySQL, et vous proposera de configurer nginx et SSL automatiquement. Répondez oui aux deux — Ghost CLI écrit la configuration nginx et appelle certbot pour provisionner le certificat Let's Encrypt.

  4. Convertir et importer le contenu Squarespace

    Le fichier XML Squarespace doit être converti au format JSON Ghost avant l'import. Utilisez l'outil @tryghost/migrate :

    npx @tryghost/migrate squarespace --pathToFile export-squarespace.xml

    L'outil produit un fichier ghost-import.json. Vérifiez-en la structure : chaque article doit avoir un title, un slug, un status et un champ html. Les images sont référencées par URL Squarespace — elles seront téléchargées lors de l'import si vous passez l'option --scrape media.

    Connectez-vous à l'interface d'administration Ghost (https://votre-domaine.com/ghost), créez votre compte administrateur, puis allez dans Paramètres → Avancé → Migrations → Importer le contenu et chargez le fichier JSON. Ghost traite l'import en arrière-plan et vous notifie par e-mail à la fin.

  5. Importer vos abonnés e-mail

    Dans Ghost Admin, allez dans Membres → Importer les membres et chargez votre fichier CSV Squarespace. Ghost reconnaît les colonnes email, name et subscribed_to_emails. Mappez les colonnes si les en-têtes diffèrent.

    Les abonnés importés sont marqués comme « membres gratuits » par défaut. Si certains avaient un abonnement payant sur Squarespace, vous devrez les mettre à jour manuellement ou via l'API Ghost Admin (PATCH /admin/members/{id}) une fois Stripe configuré.

    Configurez ensuite Stripe dans Ghost Admin → Paramètres → Abonnements pour activer les newsletters payantes. Entrez votre clé API Stripe et définissez vos tarifs d'abonnement.

  6. Mettre en place les redirections 301 depuis les anciennes URLs

    Squarespace génère des URLs au format /blog/titre-article ou /titre-article selon le template. Ghost utilise par défaut /{slug}/. Si vos URLs diffèrent, créez un fichier redirects.yaml dans le répertoire Ghost (/var/www/ghost/content/data/redirects.yaml) :

    from: /blog/{slug}
    to: /{slug}
    permanent: true

    Redémarrez Ghost pour appliquer les redirections : ghost restart. Vérifiez chaque ancienne URL avec curl -I https://votre-domaine.com/blog/premier-article — la réponse doit retourner un 301 pointant vers la nouvelle URL.

    Si votre domaine était jusqu'ici hébergé chez Squarespace, mettez à jour les enregistrements DNS (A ou CNAME) pour pointer vers l'IP de votre VPS. La propagation DNS prend entre quelques minutes et 48 heures.

  7. Vérifier le sitemap et soumettre à Google Search Console

    Ghost génère automatiquement un sitemap à https://votre-domaine.com/sitemap.xml. Ouvrez-le dans un navigateur et vérifiez que tous vos articles y figurent avec les bonnes URLs.

    Dans Google Search Console, ajoutez votre domaine comme propriété si ce n'est pas déjà fait, puis soumettez le sitemap via Indexation → Sitemaps. Cela accélère la réindexation de votre contenu sur les nouvelles URLs.

    Si votre domaine avait de l'autorité sur Squarespace, les 301 transfèrent le signal SEO vers les nouvelles URLs — comptez quelques semaines pour que le positionnement se stabilise. Évitez de changer les slugs des articles à cette occasion : chaque modification supplémentaire ajoute une étape dans la chaîne de redirections.

  8. Résilier Squarespace après validation

    Ne résiliez votre abonnement Squarespace qu'après avoir vérifié que le contenu est correctement importé dans Ghost, que le DNS pointe bien vers votre VPS et que les redirections fonctionnent. Laissez la période de chevauchement durer au moins 48 heures pour que la propagation DNS soit complète.

    Dans Squarespace, allez dans Paramètres → Facturation & compte → Annuler le site. Squarespace maintient le site actif jusqu'à la fin de la période facturée — pendant cette fenêtre, un visiteur qui a l'ancienne URL en cache verra encore votre ancien site, ce qui est un comportement normal et attendu.

    Sauvegardez une dernière copie du XML Squarespace et du CSV des abonnés avant de valider l'annulation.

Avant de pousser Ghost en production, renforcez la configuration nginx par défaut que Ghost CLI a générée. Ajoutez les en-têtes de sécurité dans le bloc server : add_header X-Frame-Options SAMEORIGIN;, add_header X-Content-Type-Options nosniff; et add_header Referrer-Policy strict-origin-when-cross-origin;. Activez aussi le rate-limiting nginx sur /ghost/api/admin/ pour ralentir les tentatives de force brute sur l'interface d'administration. Testez la configuration avec nginx -t avant de recharger : nginx -s reload.

Dépannage : erreurs fréquentes lors de la migration

Ghost is already running après une installation interrompue. Si l'installation Ghost CLI a été interrompue, elle peut laisser un processus orphelin. Arrêtez-le proprement : ghost stop, puis relancez ghost install. Si ghost stop retourne une erreur, identifiez le processus avec pm2 list et arrêtez-le manuellement : pm2 stop ghost.

Error: EACCES: permission denied lors de l'import JSON. L'utilisateur Ghost n'a pas accès au répertoire content/data. Vérifiez les permissions : ls -la /var/www/ghost/content/ — le répertoire data doit appartenir à ghost-runner. Corrigez avec sudo chown -R ghost-runner:ghost-runner /var/www/ghost/content/.

Les images Squarespace ne s'affichent plus après la migration. Les URLs d'images dans le JSON importé pointent encore vers images.squarespace.com. Ghost peut les télécharger automatiquement si vous passez l'option --scrape media lors de la conversion @tryghost/migrate. Alternativement, depuis Ghost Admin → Paramètres → Avancé, lancez « Re-télécharger les images externes ».

Le certificat SSL n'est pas renouvelé. Ghost CLI délègue le renouvellement à certbot. Vérifiez que le timer systemd certbot est actif : systemctl status certbot.timer. S'il est inactif, relancez-le : sudo systemctl enable --now certbot.timer et testez le renouvellement : sudo certbot renew --dry-run.

Les redirections 301 retournent un 302. Ghost interprète certaines redirections comme temporaires si la valeur permanent est manquante ou positionnée à false dans redirects.yaml. Vérifiez le fichier, corrigez la valeur et redémarrez Ghost : ghost restart.

Après la migration : entretien courant

Une instance Ghost auto-hébergée demande un entretien minimal mais régulier. Les mises à jour Ghost se font en une commande : ghost update. Avant toute mise à jour majeure (par exemple, Ghost 5 → 6), consultez le journal des modifications officiel pour repérer les ruptures de compatibilité avec votre thème.

Les sauvegardes sont hebdomadaires sur les offres d'entrée de gamme ServOrbit — vérifiez qu'elles couvrent bien le répertoire /var/www/ghost/content et votre base MySQL. Vous pouvez compléter avec une sauvegarde locale automatisée du dump MySQL : mysqldump -u ghostuser -p ghostdb > /var/backups/ghost-$(date +%F).sql.

Surveillez l'espace disque : Ghost compresse les images à l'import, mais un blog actif accumule rapidement plusieurs gigaoctets. Consultez l'utilisation depuis votre espace client ServOrbit ou en ligne de commande : df -h /var/www/ghost/content.

Pour aller plus loin sur l'hébergement de Ghost et la configuration Caddy comme alternative à nginx, consultez nos guides heberger-ghost et deployer-avec-caddy. Pour comparer le coût total de possession entre SaaS et self-hosted sur d'autres outils, lisez saas-vs-self-hosted-comparatif-cout-2026.

Votre blog Ghost sur un VPS ServOrbit

Vous gérez votre contenu et vos abonnés, nous tenons l'infrastructure — VPS configuré, SSL inclus, sauvegardes hebdomadaires dès l'entrée de gamme.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet