Guide Ghost SEO
Comment SEO fonctionne on Ghost CMS — le traditional-vs-headless fork, le SEO Ghost construit dans automatiquement, ce que il laisse à vous, gated-contenu limites, et Ghost Pro vs self-hosted.
«Ghost SEO splits in two depending on how you run it. In traditional (Handlebars) mode, Ghost handles core technical SEO automatically — sitemap, canonical tags, meta tags, Open Graph, Twitter Cards, and Article JSON-LD — with zero plugins, and it's fast by default. Run Ghost headless (Content API only) and all of that disappears; the frontend has to rebuild every piece. Either way, Ghost has gaps it never fills (breadcrumb/FAQ schema, hreflang, per-post noindex toggle, IndexNow), and gated members-only content can't be indexed because it's blocked server-side. The single biggest mistake is treating traditional and headless Ghost as the same SEO problem — they aren't.» _(Traduction)_ (Résumé en français du champ tldr : le texte source est conservé pour relecture francophone.)
TL;DR — Ghost est a publishing plateforme que, dans son normal mode, fait la plupart de votre SEO technique pour vous automatiquement — sitemap, balise canonicals, meta balises, social cards, données structurées — avec aucun plugin à install. c’est aussi rapide out de le box. Le big catch: si vous exécuter Ghost “headless” (simplement as a contenu source pour a séparé site web), tout de que built-dans SEO goes away et a developer a à rebuild il. Et members-seulement contenu ne peut pas montrer up dans Google à tout.
Ce que Ghost is
Ghost est a système de gestion de contenu — comme WordPress, mais construit précisément pour blogs, newsletters, et payant memberships plutôt que pour chaque kind de site web. Vous écrire posts dans Ghost, et Ghost publishes les.
The chose que rend Ghost différent pour le SEO is que it peut run in two complètement différent façons:
- Le normal façon (traditional mode). Ghost exécute votre entier site — il stores votre contenu et turns il dans pages web. Ce est ce que la plupart personnes utiliser.
- Le headless façon. Ghost becomes simplement a storage box pour contenu. A séparé site web (construit par a developer avec quelque chose comme Suivant.js or Astro) pulls le contenu out et construit lune pages itself.
Ce choice changements everything à propos de Ghost’s SEO, so garder it in the back of votre mind.
Ce que Ghost fait pour vous automatically (normal mode)
Si vous exécuter Ghost le normal façon, il quietly handles le SEO technique basics avec aucun setup:
«- A sitemap — an auto-updating list of your pages at yourdomain.com/sitemap.xml
that you can hand to Google and Bing. Preuve à l’appui de cette affirmation Traditional Ghost includes automatic SEO features including XML sitemaps, canonical tags, metadata, and structured data. Portée : Ghost-rendered sites using supported themes; headless frontends must implement their own output. Niveau de confiance : élevé · Vérifié : Ghost: SEO
» (Traduction) (Résumé en français de la section onze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Canonical tags — these tell search engines which version of a page is the
“official” one, so duplicate pages don’t compete.
» (Traduction) (Résumé en français de la section onze, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Meta titles and descriptions — with sensible fallbacks if you leave them blank.
» (Traduction) (Résumé en français de la section onze, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Social cards — Open Graph and Twitter Card tags so links look good when shared.
» (Traduction) (Résumé en français de la section onze, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Structured data — the behind-the-scenes Article markup that helps search
engines understand your post.
» (Traduction) (Résumé en français de la section onze, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Clean URLs and a fast site by default.
» (Traduction) (Résumé en français de la section onze, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
In WordPress you’d install a plugin comme Yoast to obtenir la plupart of ce. In Ghost it’s simplement là.
Ce que Ghost doesn’t do
Ghost covers le core, pas le extras. Il ne va pas ajouter breadcrumb or FAQ structured données, il a aucun built-dans prise en charge pour multi-langue (hreflang) sites, aucun per-post “hide depuis Google” toggle dans le menu, et aucun Yoast-style mot-clé liste de contrôle. Ceux besoin code or a tiers outil.
The un chose personnes obtenir incorrect
Members-seulement contenu ne peut pas classer. Si vous put a post behind a payant (or gratuit email) membership, Google literally ne peut pas lire il — Ghost hides il depuis everyone qui n’est pas logged dans, moteur de recherches inclus. Le corriger est à publish a public preview or teaser que peut classer, et utiliser le gated partie à convert lecteurs dans subscribers. ne pas expect locked posts à bring dans recherche trafic.
Preuve à l’appui de cette affirmation Ghost members-only posts require member authentication, so their protected body is not publicly available to crawlers. Portée : Ghost access settings for members-only and paid-members-only content. Niveau de confiance : élevé · Vérifié : Ghost: Content accessVouloir le complet version — le traditional-vs-headless décision, le headless rebuild liste de contrôle, gated-contenu schema, et Ghost Pro vs self-hosted? Switch à le Avancé tab.
«> TL;DR — Ghost SEO forks on one decision: traditional (Handlebars) mode vs.
headless (Content API). Traditional Ghost ships core technical SEO automatically — sitemap, self-referencing + custom canonicals, meta tags, OG/Twitter cards, and Article JSON-LD — with no plugin, and it’s fast by default. Go headless and all of that disappears; the frontend has to rebuild every piece, and Ghost’s speed advantage evaporates because the framework now owns performance. Both modes share gaps Ghost never fills (breadcrumb/FAQ/Product schema, hreflang, per-post noindex, IndexNow, a redirect UI), and gated members-only content is blocked server-side so it can’t be indexed. Don’t conflate the two modes — they’re different problems. » (Traduction) (Résumé en français de la section vingt, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Le fork dans le road
Ghost est a Node.js (Express) CMS avec a decoupled core: an API plus an optional Handlebars frontend. Que architecture est le entier SEO story.
- Traditional mode — Ghost sert HTML via son Handlebars themes. Chaque
built-dans SEO fonctionnalité s’applique, generated automatiquement via le theme’s
{{ghost_head}}helper. - Headless mode — Ghost est “a complet CMS headless qui est complètement agnostic de quelconque particulier front fin or static site framework.” Vous requête le contenu API or Admin API depuis a séparé frontend (Suivant.js, Astro, Nuxt, SvelteKit), et SEO becomes 100% que frontend’s responsibility.
Le choice de mode est le unique biggest determinant de Ghost’s SEO footprint. Tout ci-dessous est organized autour il. (Pour le framework-agnostic version de le headless side, voir SEO pour a CMS headless.)
Ce que traditional Ghost handles automatically
In traditional mode Ghost fait the core SEO technique with zero configuration:
«- Sitemap. Auto-generated at /sitemap.xml, updated on publish/unpublish,
covering posts, pages, tags, and authors. “Ghost automatically creates and
updates an XML sitemap for your website.” Preuve à l’appui de cette affirmation Ghost automatically creates and updates an XML sitemap. Portée : Traditional Ghost publication output. Niveau de confiance : élevé · Vérifié : Ghost: SEO
» (Traduction) (Résumé en français de la section vingt-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Canonical tags. A self-referencing rel=canonical on every post and page —
“Ghost adds canonical tags across your site to tell search engines which version
of a page they should consider the ‘official’ one.” Since March 2019 you can also
set a custom canonical per post in the editor’s metadata panel, or via the
Admin API canonical_url field — built for “guest posts, multiple versions of the
same page or when you need to curate a list of links to external sources.” Preuve à l’appui de cette affirmation Ghost outputs canonical tags and supports a custom canonical URL for a post or page. Portée : Traditional Ghost and the post/page metadata configuration. Niveau de confiance : élevé · Vérifié : Ghost: Canonical URLs
» (Traduction) (Résumé en français de la section vingt-sept, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Meta title/description. Custom fields that fall back to the post title and
excerpt when left blank.
» (Traduction) (Résumé en français de la section vingt-sept, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Open Graph + Twitter Cards. Auto-generated from post metadata and the feature
image.
» (Traduction) (Résumé en français de la section vingt-sept, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Structured data (JSON-LD). “Ghost automatically includes structured data in
all posts and pages” — Article schema with publisher, author, headline,
datePublished, dateModified, image, and keywords.
» (Traduction) (Résumé en français de la section vingt-sept, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Clean URLs + custom routing. Slug-based URLs by default, fully customizable via
routes.yaml.
» (Traduction) (Résumé en français de la section vingt-sept, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«- robots.txt. A default file that disallows the /ghost/ admin path and allows
everything else.
» (Traduction) (Résumé en français de la section vingt-sept, sous-partie sept : le texte source est conservé pour vérification lors de la relecture francophone.)
Ce est genuinely plus que a stock WordPress install donne vous — Ghost listes “XML sitemaps, balise canonicals, optimised URLs, microformats, Facebook Ouvrir Graph balises, prise en charge pour Twitter cards et clean semantic markup” as built-dans, aucun plugin requis.
«## What Ghost never does — in either mode » (Traduction) (Résumé en français de la section vingt-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Ghost covers the core and stops there. It does not generate: » (Traduction) (Résumé en français de la section trente, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Advanced schema — breadcrumb, FAQ, HowTo, Product, Recipe, or Video markup.
Article schema only. Anything else is manual code injection or theme work.
» (Traduction) (Résumé en français de la section trente et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Hreflang / international SEO — no native support. Multi-language Ghost needs a
third-party service (Weglot, ConveyThis) or theme-level implementation, and
hreflang is notoriously error-prone.
» (Traduction) (Résumé en français de la section trente et un, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- A per-post noindex toggle in the UI — you need code injection.
» (Traduction) (Résumé en français de la section trente et un, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Keyword optimization guidance. This is deliberate. Asked about adding
Yoast-style tools, the Ghost team argued that “one of the downsides of using
Yoast’s KW optimisation suggestions is that is encourages us to write meta data for
machines instead of humans,” and on the broader advanced-SEO wishlist (breadcrumb
schema, hreflang, noindex controls) said flatly: “This isn’t on our radar at the
moment.”
» (Traduction) (Résumé en français de la section trente et un, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- IndexNow — no native support; wire it via a custom webhook on publish if you
want Bing/others notified instantly.
» (Traduction) (Résumé en français de la section trente et un, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- A redirect-management UI — redirects live in redirects.yaml (self-hosted) or
Ghost Pro’s redirect manager; there’s no plugin ecosystem to lean on.
» (Traduction) (Résumé en français de la section trente et un, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Headless Ghost: the SEO you have to rebuild » (Traduction) (Résumé en français de la section trente-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Go headless and Ghost stops being an SEO system — it’s a content API. Everything in the “handles automatically” list above is now the frontend’s job: » (Traduction) (Résumé en français de la section trente-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Sitemap — generated at build time or by a serverless function hitting the
Content API.
» (Traduction) (Résumé en français de la section trente-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Canonical tags — injected by the frontend framework, ideally absolute URLs
from one SITE_URL.
» (Traduction) (Résumé en français de la section trente-quatre, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Meta + OG/Twitter tags — rendered via the framework’s head management
(Next.js generateMetadata, Astro’s <head>, Nuxt useSeoMeta).
» (Traduction) (Résumé en français de la section trente-quatre, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Structured data (JSON-LD) — now entirely custom.
» (Traduction) (Résumé en français de la section trente-quatre, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- robots.txt — served by the frontend.
» (Traduction) (Résumé en français de la section trente-quatre, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- 301/302 redirects — handled in the frontend or the CDN layer.
» (Traduction) (Résumé en français de la section trente-quatre, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Core Web Vitals — Ghost’s speed advantage disappears; the framework and
rendering mode now dominate performance.
» (Traduction) (Résumé en français de la section trente-quatre, sous-partie sept : le texte source est conservé pour vérification lors de la relecture francophone.)
«The one thing that carries over: the Content API still returns the editorial
metadata you typed into Ghost’s editor — meta_title, meta_description,
og_title, og_description, og_image, twitter_title, twitter_description,
twitter_image, and canonical_url. The data is available; rendering it is on
you. This is the headless-CMS SEO problem in general, and it’s really a
JavaScript SEO problem — if your frontend
defaults to client-side rendering, Googlebot has to queue the page for a later
render wave. AI-crawler rendering varies by provider, so render on the server or
at build time (SSR/SSG) to maximize coverage.
» (Traduction) (Résumé en français de la section trente-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Gated content and what Google can see » (Traduction) (Résumé en français de la section trente-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Ghost supports three visibility levels: public, members-free (email required), and members-paid (subscription). The crucial point for SEO is that gated content is blocked server-side, not by sniffing the user agent. As Ghost’s own team put it: “Google can’t crawl protected content on your page, because that’s only ever available to logged in members.” Google gets exactly the same restricted view a logged-out reader gets. » (Traduction) (Résumé en français de la section trente-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Two realistic strategies:
- Public preview. Montrer an intro / premier quelques paragraphs publicly et gate le rest. Ghost a a native public-preview fonctionnalité pour ce — le public portion fait le classement fonctionner.
- Metered accès. Tiers implementations autoriser N gratuit articles avant requiring registration.
Si vous faire gate contenu, Google prend en charge paywalled markup — NewsArticle avec
isAccessibleForFree: false et a hasPart/cssSelector describing le gated
region — mais Ghost ne fait pas generate ce automatiquement; c’est manual code
injection. Et le difficile règle soit façon: ne pas cloak. Showing Googlebot le complet
article pendant que lecteurs hit a paywall violates Google’s guidelines et risques a manual
action. Le honest framing est que public contenu se classe et gated contenu converts —
ne pas expect locked posts à bring recherche trafic.
Ghost Pro vs self-hosted
Le SEO software est identical on les deux — même Ghost, même fonctionnalités. Le difference est infrastructure contrôler:
- Ghost Pro — managed hosting avec a built-dans CDN, automatic SSL, et backups.
Le CDN aide TTFB et Core Web Vitals pour distributed audiences. Le catch:
vous pouvez’t directement override
robots.txt— vous ont à contact prise en charge. c’est a réel constraint pour headless or privé-mode setups. - Self-hosted — complet contrôler de le serveur, headers, mise en cache,
robots.txt, serveur-level redirections, et votre propre CDN (Cloudflare est le courant pick). Plus flexibility pour avancé SEO technique, plus à manage.
Aucun est “meilleur pour SEO” inherently — Ghost Pro buys vous a CDN, self-hosting buys vous contrôler.
Courant pitfalls
- Thin balise/author archives. Ghost auto-crée
/tag/slug/et/author/slug/pages. Granular balises or unique-post authors generate thin pages — considérer noindexing le faible-valeur ones. - Preview-URL indexation. Older Ghost versions pourrait leak draft preview URLs à Googlebot via tiers scripts chargement on preview pages (since fixed dans core — voir GitHub problème #9749). Vérifier preview pages ne sont pas indexé on older installs.
/ghost/accidentally exposed. Confirmer le par défautrobots.txtdisallow on le admin chemin hasn’t été overridden.- Contenu dupliqué depuis custom collections.
routes.yamlcollections peut créer alternate URL paths pour le même contenu. Ghost canonicalizes son par défaut structure; custom routing peut créer duplicates si vous ne pas manage canonicals explicitly. - Manquant custom canonical on syndicated/guest posts. Si vous republish contenu
depuis elsewhere, définir
canonical_urlper post (editor or API) à point à le original — le fonctionnalité seulement exists since March 2019. - Headless pre-launch indexation. A public headless frontend deployed avant launch
sans son propre
robots.txtpeut obtenir indexé prematurely. Ghost’s propre “privé” mode sendsDisallow: /, mais que protège le Ghost instance, pas votre séparé frontend.
Ghost vs WordPress, briefly
Ghost donne vous plus SEO out de le box avec zero configuration et est faster par par défaut (Ghost’s propre benchmark claims c’est “up à 1,900% faster que WordPress” — treat que as a vendor figure, mais le direction est réel: minimal JS, strong CWV baseline). WordPress’s ceiling est plus élevé avec le correct plugins — schema, redirection managers, SEO programmatique — mais son plugin-heavy norm souvent hurts performances. Ghost suits publishers qui vouloir à écrire sans SEO-plugin overhead; WordPress suits complexe sites needing avancé schema or grand integrations. “Faster, therefore se classe meilleur” est an oversimplification — Core Web Vitals est un factor parmi nombreux, et headless Ghost’s speed dépend entirely on le frontend, pas Ghost.
AI summary
A condensed prendre on the Avancé version:
- Ghost SEO forks on un décision: traditional (Handlebars) mode vs. headless (Contenu API). Le mode est le unique biggest determinant de Ghost’s SEO footprint.
- Traditional Ghost ships core SEO automatiquement, aucun plugin: sitemap à
/sitemap.xml, self-referencing canonicals (+ custom canonical per post since March 2019), meta titre/description avec fallbacks, OG/Twitter cards, Article JSON-LD, clean URLs, et arobots.txtque disallows/ghost/. c’est aussi rapide par par défaut. - Headless Ghost loses tout de il. Le contenu API encore renvoie le metadata champs, mais le frontend doit rebuild sitemap, canonicals, meta balises, structured données, robots.txt, redirections — et Ghost’s speed advantage disappears. Rendre SSR/SSG, pas CSR (AI-robot rendu prise en charge varies par provider).
- Gaps dans les deux modes: aucun breadcrumb/FAQ/Produit schema, aucun hreflang, aucun per-post noindex toggle, aucun IndexNow, aucun redirection UI. Some sont deliberate — Ghost rejects Yoast-style mot-clé outils as “writing for machines.”
- Gated contenu ne peut pas être indexé — c’est bloqué serveur-side, donc Google voit ce que a logged-out lecteur voit. Utiliser a public preview à classer; gate le rest à convert. ne pas cloak.
- Ghost Pro vs self-hosted: identical SEO fonctionnalités; Pro ajoute a CDN mais locks
robots.txtbehind prise en charge; self-hosting donne complet contrôler. - Pitfalls: thin balise/author archives, preview-URL indexation on old versions,
contenu dupliqué depuis custom
routes.yamlcollections, manquant custom canonicals on syndicated posts.
«## Official documentation » (Traduction) (Résumé en français de la section cinquante-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Primary-source documentation from the search engines and from Ghost itself. » (Traduction) (Résumé en français de la section cinquante-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Google
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Understand JavaScript SEO Basics — applies directly to headless Ghost: the crawl → render → index pipeline and why CSR content is seen late.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Enable Subscription and Paywalled Content — NewsArticle + isAccessibleForFree + hasPart/cssSelector for gated content.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Block Search Indexing with noindex — the noindex meta tag and X-Robots-Tag header for previews and the admin path.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Sitemaps Overview — what to submit; Ghost auto-generates one in traditional mode.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«Bing / Microsoft
» (Traduction) (Résumé en français de la section soixante, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Bing Webmaster Tools — Submit Sitemaps — submit Ghost’s /sitemap.xml directly.
» (Traduction) (Résumé en français de la section soixante, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- IndexNow / indexnow.org — the push protocol Ghost has no native support for; wire it to a publish webhook.
» (Traduction) (Résumé en français de la section soixante, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«Ghost (official)
» (Traduction) (Résumé en français de la section soixante et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Ghost Help — SEO — the canonical list of what Ghost handles automatically.
» (Traduction) (Résumé en français de la section soixante et un, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Ghost Developer Docs — Architecture — Ghost as a headless CMS, agnostic of any frontend.
» (Traduction) (Résumé en français de la section soixante et un, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Ghost Docs — URLs & Routing — routes.yaml, collections, and custom URL structure.
» (Traduction) (Résumé en français de la section soixante et un, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Ghost Changelog — Custom Canonical URLs — the March 2019 per-post canonical feature.
» (Traduction) (Résumé en français de la section soixante et un, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Ghost Resources — SEO for Membership Websites — Ghost’s own take on gated-content SEO.
» (Traduction) (Résumé en français de la section soixante et un, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Quotes from the source » (Traduction) (Résumé en français de la section soixante-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
On-le-record statements depuis Ghost’s docs et team. Chaque lien est a deep lien que jumps à le quoted passage on le page source.
Ghost — built-in SEO fonctionnalités
«- “Ghost automatically creates and updates an XML sitemap for your website to help search engines understand the structure of your site and find all of its content.” — Ghost Help Docs. Jump to quote » (Traduction) (Résumé en français de la section soixante-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- “Ghost adds canonical tags across your site to tell search engines which version of a page they should consider the ‘official’ one. This helps prevent problems with duplicate content.” — Ghost Help Docs. Jump to quote » (Traduction) (Résumé en français de la section soixante-sept, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- “Ghost automatically includes structured data in all posts and pages. This helps search engines understand the content and context of your pages.” — Ghost Help Docs. Jump to quote » (Traduction) (Résumé en français de la section soixante-sept, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
Ghost — headless architecture
- “Ghost is a full headless CMS which is completely agnostic of any particular front end or static site framework.” — Ghost Developer Docs. Jump à citation
Ghost — gated content and exploration
«- “Google can’t crawl protected content on your page, because that’s only ever available to logged in members.” — Kym, Ghost team, Ghost Forum. Jump to quote » (Traduction) (Résumé en français de la section soixante-onze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Ghost — custom URL canoniques (March 2019)
«- The feature lets you “implement custom canonical links directly in the Ghost editor for guest posts, multiple versions of the same page or when you need to curate a list of links to external sources.” — Ghost Changelog. Jump to quote » (Traduction) (Résumé en français de la section soixante-treize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Ghost — on avancé SEO fonctionnalités (team réponse)
«- “one of the downsides of using Yoast’s KW optimisation suggestions is that is encourages us to write meta data for machines instead of humans.” — Ghost team, Ghost Forum. Jump to quote » (Traduction) (Résumé en français de la section soixante-quinze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- On a wishlist of advanced SEO features (breadcrumb schema, hreflang, noindex controls): “This isn’t on our radar at the moment.” — Ghost team, Ghost Forum. Jump to quote » (Traduction) (Résumé en français de la section soixante-quinze, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
Ghost — performances (vendor benchmark)
- “Independent tests ont trouvé Ghost à être up à 1,900% faster que WordPress.” — Ghost vs WordPress page. Jump à citation
Deux checklists: traditional Ghost + headless Ghost
Traditional Ghost — vérifier post-launch
-
/sitemap.xmlresolves et est submitted à Recherche Google Console et Bing Webmaster Outils. -
robots.txtencore disallows/ghost/et n’est pas blocking n’importe quoi vous vouloir indexé. - Balise canonicals rendre on posts/pages; syndicated or guest posts ont a
custom
canonical_urldéfinir. - Meta titles/descriptions sont définir (or le titre/excerpt fallbacks sont acceptable).
- OG/Twitter cards preview correctement quand a post est shared.
- Article JSON-LD valide dans le Résultats enrichis Tester.
- Thin
/tag/et/author/archives sont reviewed — noindex le faible-valeur ones. - Members-seulement posts ont a public preview si vous vouloir les à attract recherche trafic.
- Quelconque avancé schema vous besoin (breadcrumb, FAQ, Produit) est ajouté via code injection — Ghost ne va pas generate il.
Headless Ghost — complet implementation checklist
- Frontend renders contenu as SSR or SSG, pas CSR (raw HTML maximizes AI-robot coverage).
- Sitemap generated depuis le contenu API et kept fresh.
- Balise canonicals rendu as absolute URLs depuis un
SITE_URLà le rendu couche. - Meta titre/description/OG/Twitter pulled depuis le contenu API champs et mapped
dans le
<head>. - JSON-LD données structurées rebuilt dans le frontend.
-
robots.txtservi par le frontend et ne fait pas bloquer.js/.css. - 301/302 redirections handled dans le frontend or CDN couche.
- Preview/branch deploys retourner a host-level
noindexheader. - Core Web Vitals mesuré — Ghost’s speed advantage est gone; le framework owns il maintenant.
- IndexNow wired à le publish webhook pour Bing et others.
The mental models
1. Le mode est le produit. Avant quelconque Ghost SEO conversation, réponse un question: est ce traditional or headless? Traditional Ghost est a near-complet SEO système. Headless Ghost est a bare contenu API. Presque chaque Ghost SEO question resolves à qui un vous êtes on.
2. “Headless means rebuild everything.” Every automatic traditional-mode behavior — sitemap, canonicals, meta tags, OG cards, JSON-LD, robots.txt — is now a deliberate construire step in votre frontend. Le contenu API hands vous the données; rendering it is on vous. Si something’s “missing” in a headless construire, it usually signifie a built-in behavior was jamais re-implemented.
3. Ghost covers le core, pas le extras. Dans les deux modes, Ghost donne vous Article schema et arrête. Breadcrumb, FAQ, HowTo, Produit, hreflang, per-post noindex, IndexNow — none sont construit dans. Plan pour code injection or tiers outils si votre niche nécessite les.
4. Public se classe, gated converts. Members-seulement contenu est invisible à moteur de recherches par design. ne pas fight il — utiliser a public preview à faire le classement et le gate à faire le converting. Jamais cloak à montrer Google plus que lecteurs voir.
5. Pro vs self-hosted est an infrastructure décision, pas an SEO-fonctionnalité un.
Le SEO software est identical. Choisir on contrôler: Ghost Pro donne vous a CDN mais locks
robots.txt; self-hosting donne vous complet serveur contrôler et votre propre CDN.
«## Ghost SEO — cheat sheet » (Traduction) (Résumé en français de la section quatre-vingt-seize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Traditional vs headless: what you get » (Traduction) (Résumé en français de la section quatre-vingt-dix-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«| Feature | Traditional (Handlebars) | Headless (Content API) |
| --- | --- | --- |
| XML sitemap | ✅ Auto at /sitemap.xml | ❌ Build it yourself |
| Canonical tags | ✅ Auto + custom per post | ❌ Render in frontend |
| Meta title/description | ✅ With fallbacks | ⚠️ API returns data; you render it |
| OG / Twitter cards | ✅ Auto | ⚠️ API returns data; you render it |
| Article JSON-LD | ✅ Auto | ❌ Rebuild it |
| robots.txt | ✅ Default (disallows /ghost/) | ❌ Serve from frontend |
| Speed / Core Web Vitals | ✅ Fast by default | ⚠️ Depends on your framework |
» (Traduction) (Résumé en français de la section quatre-vingt-dix-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Never built in (either mode)
» (Traduction) (Résumé en français de la section quatre-vingt-dix-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Breadcrumb / FAQ / HowTo / Product / Recipe / Video schema → code injection
» (Traduction) (Résumé en français de la section quatre-vingt-dix-neuf, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Hreflang / international SEO → Weglot, ConveyThis, or theme work
» (Traduction) (Résumé en français de la section quatre-vingt-dix-neuf, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Per-post noindex toggle → code injection
» (Traduction) (Résumé en français de la section quatre-vingt-dix-neuf, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- IndexNow → custom webhook on publish
» (Traduction) (Résumé en français de la section quatre-vingt-dix-neuf, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Redirect UI → redirects.yaml (self-hosted) or Ghost Pro’s manager
» (Traduction) (Résumé en français de la section quatre-vingt-dix-neuf, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«Gated content rules
» (Traduction) (Résumé en français de la section cent, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Members-only content is blocked server-side → not indexable.
» (Traduction) (Résumé en français de la section cent, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Use the public preview feature to expose a rankable teaser.
» (Traduction) (Résumé en français de la section cent, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Paywalled schema (NewsArticle + isAccessibleForFree: false) is not auto — code injection.
» (Traduction) (Résumé en français de la section cent, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Never cloak (full content to Googlebot, paywall to users) → manual-action risk.
» (Traduction) (Résumé en français de la section cent, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«Pro vs self-hosted
» (Traduction) (Résumé en français de la section cent un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Same SEO features on both.
» (Traduction) (Résumé en français de la section cent un, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Ghost Pro: CDN included; robots.txt change requires contacting support.
» (Traduction) (Résumé en français de la section cent un, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Self-hosted: full control of robots.txt, headers, redirects, your own CDN.
» (Traduction) (Résumé en français de la section cent un, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Sample Ghost posts from the sitemap » (Traduction) (Résumé en français de la section cent quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Download le pertinent sitemap premier, extract a representative URL liste à urls.txt,
alors inspect ce que le theme or headless frontend publishes:
while IFS= read -r url; do
html=$(mktemp)
status=$(curl -sSL -o "$html" -w '%{http_code}' "$url")
canonical=$(grep -Eio '<link[^>]+rel=["'"']canonical["'"'][^>]*>' "$html" | head -1)
robots=$(grep -Eio '<meta[^>]+name=["'"']robots["'"'][^>]*>' "$html" | head -1)
printf '%s\t%s\t%s\t%s\n' "$status" "$url" "$canonical" "$robots"
rm -f "$html"
done < urls.txtInclure public, gated, balise, author, et recently redirigé exemples. Ce vérifications le public sortie sans putting a Ghost Contenu API clé dans le script.
Outils pour Ghost SEO
- Inspection d’URL (Recherche Google Console) — voir comment a Ghost page était exploré et rendu. Essential on headless construit pour catching CSR gaps où contenu n’a pas faire il dans le rendu HTML.
- Résultats enrichis Tester — confirmer Ghost’s auto Article JSON-LD (traditional) or votre custom JSON-LD (headless) est présent et valide après quelconque theme or rendu modifier.
- Bing Webmaster Outils — submit Ghost’s sitemap, watch indexation, et où IndexNow submissions land.
- Screaming Frog SEO Spider — explorer le site à surface thin balise/author archives, chaîne de redirectionss, et (on headless) raw-vs-rendu HTML differences.
- Ahrefs Site Audit — surfaces broken canonicals, manquant metadata, et
indexability problèmes à travers le entier site; utile pour spotting contenu dupliqué
depuis custom
routes.yamlcollections. - Ghost editor metadata panel — le per-post placer à définir custom titre, description, OG/Twitter overrides, et le custom URL canonique.
Ghost SEO mistakes to éviter
Concrete mistakes personnes en réalité faire running Ghost — prevention, pas diagnosis.
Treating traditional et headless Ghost as le même SEO problème. Pourquoi c’est incorrect: traditional Ghost ships a sitemap, canonicals, meta balises, OG/Twitter cards, et Article JSON-LD automatiquement; headless Ghost est a bare contenu API avec none de que. Advice written pour un mode est souvent actively incorrect pour le autre. Que faire à la place: avant touching n’importe quoi, confirmer qui mode vous êtes on, alors suivre le matching liste de contrôle ci-dessus.
Expecting members-seulement contenu à bring dans recherche trafic. Pourquoi c’est incorrect: Ghost bloque gated contenu serveur-side, donc Google obtient exactly le même restricted view a logged-out visitor obtient — il y a aucun contenu à indexer. Que faire à la place: publish a public preview or teaser en utilisant Ghost’s native public-preview fonctionnalité et let que piece faire le classement fonctionner; utiliser le gate à convert lecteurs qui arrive via il.
Cloaking à fonctionner autour le gate.
Pourquoi c’est incorrect: showing Googlebot le complet article pendant que lecteurs hit a paywall
violates Google’s guidelines et risques a manual action — c’est pas a clever
workaround, c’est a policy violation.
Que faire à la place: si vous besoin gated contenu à être discoverable, utiliser Google’s
paywalled-contenu markup (NewsArticle avec isAccessibleForFree: false et a
hasPart/cssSelector pour le gated region) — ajouté via code injection, since
Ghost ne fait pas generate il — plutôt que diffusion différent HTML à le robot d’exploration.
Republishing or guest-posting contenu sans paramètre a custom canonical.
Pourquoi c’est incorrect: Ghost’s par défaut canonical est self-referencing, donc a syndicated or
guest post left as-est indique moteur de recherches il est le original, competing avec le
source.
Que faire à la place: définir le per-post canonical_url dans le editor’s metadata panel
(or via le Admin API) à point à le original — le fonctionnalité a existed since
March 2019.
Shipping a headless frontend que renders contenu client-side. Pourquoi c’est incorrect: Googlebot a à queue CSR pages pour a plus tard rendre réussir, pendant que AI-robot rendu contracts vary par provider — contenu que seulement exists après a client-side récupérer peut être invisible à HTML-seulement fetchers. Que faire à la place: rendre on le serveur or à construire temps (SSR/SSG) dans whatever framework pulls depuis le contenu API, et vérifier avec GSC’s Inspection d’URL outil que le rendu HTML en réalité contient le contenu.
Assuming Ghost Pro donne vous le même infrastructure contrôler as self-hosting.
Pourquoi c’est incorrect: le SEO software est identical on les deux, mais Ghost Pro ne fait pas let
vous directement edit robots.txt — vous ont à contact prise en charge, qui est a réel
constraint si vous besoin a rapide robots.txt modifier pour a headless or privé-mode
setup.
Que faire à la place: factor que prendre en charge-ticket lag dans quelconque launch plan on Ghost
Pro, or self-host si vous devez modifier robots.txt yourself on court notice.
Qui Ghost SEO chemin s’applique to vous?
Le branch que matters la plupart est traditional vs. headless — et, à l’intérieur headless, si le frontend renders serveur-side. Réponse honestly; le incorrect branch leads à fonctionner que ne fait pas appliquer à votre setup.
Ce que fait my Ghost setup besoin pour le SEO?
Ready-to-copy prompts pour Ghost SEO tasks
Paste le specified entrée dans an AI assistant et vérifier le sortie contre le guidance ci-dessus avant acting on il.
1. Audit a headless Ghost frontend pour manquant SEO champs. Ce que à paste dans: le rendu HTML de un page depuis votre headless frontend (view source or le DOM après JS exécute), plus le contenu API réponse pour que même post.
I'm running Ghost as a headless CMS. Here is the Content API response for a post,
followed by the final rendered HTML of that post's page on my frontend.
[paste Content API JSON response]
[paste rendered HTML]
Compare them and tell me which of these are present in the rendered HTML and
correctly populated from the API data: canonical tag, meta title, meta description,
Open Graph tags, Twitter Card tags, and Article JSON-LD structured data. List
anything missing or mismatched.Ce que à expect back: a champ-par-champ liste de contrôle flagging tout de le six éléments ce
sont absent depuis le rendu HTML or ne pas match le API’s meta_title,
canonical_url, etc. — confirm tout flagged gap manuellement avant fixing il.
2. Draft Article JSON-LD pour a headless Ghost post. Ce que to paste in: le contenu API fields pour un post (title, excerpt, publié date, mis à jour date, author, fonctionnalité image URL, URL canonique).
Using this Ghost Content API data for a blog post, write valid Article JSON-LD
structured data I can inject into my headless frontend's <head>. Include
headline, datePublished, dateModified, author, publisher, and image.
[paste post JSON: title, excerpt, published_at, updated_at, primary_author, feature_image, canonical_url]Ce que à expect back: a unique <script type="application/ld+json"> bloquer — valider
il dans Google’s Rich Results Test avant shipping, since le model peut mis-map a
champ or omit a requis property.
3. Vérifier a syndicated/guest post pour a manquant custom canonical.
Ce que à paste dans: le post’s slug, son canonical_url champ (or “pas set”), et le
URL de le original source il était republished depuis.
This is a guest post or syndicated republish on my Ghost site. Here's the post
slug, its current canonical_url setting, and the URL of the original source.
Slug: [slug]
Current canonical_url: [value or "not set"]
Original source URL: [URL]
Tell me whether the canonical is set correctly to point at the original, and if
not, what canonical_url value I should set in the Ghost editor's metadata panel.Ce que à expect back: a oui/aucun on si le canonical est correct, plus le exact URL à paste dans le custom canonical champ si il n’est pas.
Testez vos connaissances: Ghost SEO
Five rapide questions on how SEO fonctionne on Ghost CMS. Pick an réponse pour chaque, alors vérifier.
Ressources utiles
Mon connexe writing
- Le Beginner’s Guide à SEO technique — où plateforme et CMS SEO fit dans le bigger picture.
- JavaScript SEO Problèmes & Meilleur Practices — le rendu side que headless Ghost turns dans; rendu modes, metadata, JS canonicals, et le robots.txt
.js/.cssrègle. - Robots.txt et SEO: Tout Vous devez Know — pertinent à Ghost’s par défaut
/ghost/disallow et le Ghost Pro robots.txt constraint.
Mon speaking
- Comment Recherche Fonctionne (SlideShare) — exploration, rendu, indexation, et classement — le pipeline gated et headless Ghost contenu a à survive. (Standing disclaimer: “This is my understanding of systems… not going to be 100% complete or accurate.”)
Depuis autour le industry
- Ghost Aider — SEO — Ghost’s propre liste de ce que il handles automatiquement; le canonical principal source.
- Ghost Developer Docs — Architecture — Ghost as a CMS headless et comment le decoupled API/frontend split fonctionne.
- En utilisant Ghost as a CMS headless avec Suivant.js (Draft.dev) — a concrete walkthrough de le headless setup whose SEO vous’d ont à rebuild.
- Ghost Blog SEO: mon experiences et résultats (Norbert Hires) — a practitioner’s premier-party données et honest limitations depuis running Ghost.
- Balisage de données structurées dans Ghost (Bright Themes) — comment ajouter le avancé schema Ghost ne fait pas generate.
- Breadcrumbs dans Ghost (Bright Themes) — implementing breadcrumb schema Ghost laisse out.
- Taking Contrôler de Données structurées dans Ghost (ashryan.io) — overriding et extending Ghost’s par défaut JSON-LD.
- r/TechSEO — le community pour explorer/indexer/rendre debugging que headless Ghost questions land dans.