Ghost CMS

Ghost Schema.org + Open Graph: Beyond Social Sharing

By Social Card Studio5 min read

Ghost generates Schema.org structured data and Open Graph tags automatically, out of one Handlebars helper: {{ghost_head}}. On every post that helper emits Article JSON-LD for search engines and og: tags for social platforms — no plugins, no manual markup. This guide covers what Ghost ships by default, the fields you must fill for it to work, and how to add the schema types (FAQ, HowTo) that Ghost won't generate on its own.

Does Ghost add Schema.org structured data automatically?

Yes. Since the platform added native structured-data support, any theme that includes the standard {{ghost_head}} helper outputs JSON-LD describing your content. On a post you get Article schema with the headline, feature image, publish date, and author. The homepage gets WebSite and Organization. Navigation gets BreadcrumbList. Ghost builds all of it from the post metadata you already enter — you never write the JSON by hand.

The same helper also emits your Open Graph and Twitter Card tags. That's the key mental model: one helper, two audiences.

Schema.org vs Open Graph: what each one does

They're often confused because Ghost emits both together, but they target different machines.

Open GraphSchema.org (JSON-LD)
AudienceSocial platforms (Facebook, LinkedIn, X)Search engines + AI answer engines
Format<meta property="og:..."> tags<script type="application/ld+json">
ControlsHow a shared link looksRich results, eligibility for AI citation
Ghost emitsog:title, og:image, og:description, Twitter cardsArticle, WebSite, Organization, BreadcrumbList
Key fieldog:image (1200×630, absolute HTTPS URL)headline, image, datePublished, author

Open Graph is what makes your link look good in a feed; Schema.org is what makes it eligible for a rich snippet or an AI Overview citation. You want both, and Ghost gives you both — but only the social side is visually obvious, so the structured-data side is the one that quietly rots.

Why structured data is worth the attention

Structured data isn't decorative. It's how machines understand a page well enough to feature it.

+40%
is the measured lift in LLM citation from including statistics; named sources add another +40%, and expert quotations +28% — all signals that structured, sourced content earns. Princeton GEO study, 2024

The Open Graph half pays off the moment someone shares the link:

+114%
more impressions for posts and links that carry an image versus those that don't — which is exactly what og:image controls. CXL, click-through benchmarks

And freshness is a ranking input on its own. Ghost stamps datePublished and dateModified into the Article schema automatically, but only if you actually re-save the post when you update it.

~2.5×
higher likelihood of AI-Overview citation is associated with pages carrying Article, Organization, and FAQPage markup together — structured data compounds. AI-Overview citation analysis (wellows.com)

Which post fields does Ghost actually read?

The JSON-LD is only as good as the metadata behind it. Fill these in the post settings panel:

  • Feature image → becomes og:image and the Article schema image. Use a 1200×630 asset; an absolute HTTPS URL is mandatory. See the social media image size cheat sheet for the full per-platform specs.
  • Meta title / meta description → feed og:title, og:description, and the Article headline. Leave them blank and Ghost falls back to the post title and excerpt.
  • Facebook & Twitter card fields (in post settings) → override the social titles and images per network when you need a different framing than search gets.
  • Publish datedatePublished. Re-saving an edited post updates dateModified.

Empty fields don't break the page; they produce thin or fallback markup that's far less likely to win a rich result. For the social-tag side specifically, the Ghost Open Graph setup guide walks through each field.

How do I add FAQ or HowTo schema to Ghost?

Ghost generates Article, WebSite, Organization, and BreadcrumbList — and stops there. It will not emit FAQPage, HowTo, Recipe, or Product schema. For those you add JSON-LD yourself.

The cleanest place is the post's code injection footer. Paste a hand-written block:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Does Ghost add structured data automatically?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Yes — every theme using the {{ghost_head}} helper emits Article, WebSite, and Organization JSON-LD."
    }
  }]
}
</script>

The one rule Google enforces: the markup must match the visible content. A FAQPage block whose questions don't appear on the page is a structured-data violation and can earn a manual action. Keep the JSON-LD a faithful mirror of what the reader sees.

Validate it, then keep validating it

Structured data fails silently, so verification is non-negotiable. Two free tools parse your live URL:

  • Google Rich Results Test (search.google.com/test/rich-results) — tells you which rich-result types your page qualifies for.
  • Schema Markup Validator (validator.schema.org) — the general-purpose linter; catches malformed JSON-LD.

Re-run them after every theme deploy. Custom themes are the most common cause of dropped {{ghost_head}} output, and the failure is invisible to you. When a preview won't render at all, work through why your link preview is broken — the same {{ghost_head}} gap is often the culprit.

The takeaway

Ghost hands you Article schema and Open Graph tags for free through {{ghost_head}} — your job is to feed it good metadata, validate the output, and hand-add the FAQ or HowTo schema Ghost skips. The one input that breaks most often is the feature image: it must be a branded, correctly-sized, absolute-HTTPS card on every post. Generating that card automatically for every Ghost post — sized at 1200×630, branded, and never broken — is exactly what Social Card Studio and its one-line Ghost setup do.

Frequently asked questions

Does Ghost add Schema.org structured data automatically?

Yes. Every Ghost theme using the standard {{ghost_head}} helper outputs JSON-LD structured data — Article schema on posts, WebSite and Organization on the homepage, and BreadcrumbList for navigation. You don't write the markup; Ghost generates it from post metadata.

What's the difference between Schema.org and Open Graph in Ghost?

Open Graph tags (og:title, og:image) control how a link looks when shared on social platforms. Schema.org JSON-LD describes your content to search engines for rich results and AI Overviews. Ghost emits both from the same {{ghost_head}} helper, but they serve different audiences — social scrapers versus search crawlers.

How do I validate Ghost's structured data?

Paste your post URL into Google's Rich Results Test (search.google.com/test/rich-results) or the Schema Markup Validator (validator.schema.org). Both parse the live page and flag missing or invalid fields. Re-check after theme edits, since custom themes can drop the {{ghost_head}} output.

Can I add FAQ or HowTo schema to a Ghost post?

Yes, but not through the default editor. Add a JSON-LD script block via a post's code injection field or a custom HTML card. Ghost won't generate FAQPage or HowTo markup for you — only Article, WebSite, Organization, and BreadcrumbList come built in.

← All posts