What structured data does Ghost generate automatically?

The Citead team, updated

In short. Ghost automatically generates Schema.org JSON-LD for posts, pages, the homepage, tags and authors through the ghost_head theme helper.

Definition: Ghost generates Schema.org structured data, a machine-readable description of a page, in JSON-LD format through its theme's ghost_head helper. Its built-in types describe articles, the publication website, tag collections and authors.

Key facts

  • As of October 2026, Ghost's SEO documentation states that structured data is included automatically in posts and pages, alongside automatic metadata and canonical tags.
  • Ghost's schema generator assigns Article to both posts and pages, WebSite to the homepage, Series to tag pages and Person to author pages.
  • The theme helper documentation places {{ghost_head}} just before the closing </head> tag in default.hbs.
  • Ghost's social metadata generator also supplies Open Graph and Twitter Card fields for sharing previews.

What does the article JSON-LD contain?

Ghost's schema implementation builds the article object with headline, url, datePublished, dateModified, description and mainEntityOfPage. It also includes an image and keywords when those values are available. This identifying fragment appears in the generated object:

{
  "@context": "https://schema.org",
  "@type": "Article"
}

The publisher object has the type Organization and draws on the publication title, website URL and logo. The primary author appears as a Person, with a name and available profile information. The sameAs property holds the author's website and populated social profile URLs. Additional authors appear under contributor.

The same implementation builds homepage metadata from the publication title, URL, cover image and description. Tag markup uses the tag's name, while author-page markup describes the individual. Its trimming function removes null or undefined properties, so available content determines which optional fields appear.

Which publication metadata can be edited?

Ghost's SEO guide places homepage metadata in Settings > General > Meta data. It also documents custom metadata for individual posts and pages, with content-based fallbacks when fields are left blank.

The post settings guide describes editable meta titles and descriptions, an X card and a Facebook card. When X-specific data is absent, Ghost uses the custom metadata. The Facebook card supplies custom Open Graph sharing data. These controls sit alongside the post's authors and publication date settings.

Open Graph tags describe shared links through properties such as og:title and og:description. Ghost's social metadata code supplies these as well as twitter:card, twitter:title and twitter:description. The card type changes from summary to summary_large_image when a Twitter image or cover image is available.

How can the generated output be checked?

The helper documentation specifies this placement in default.hbs:

{{ghost_head}}
</head>

A practical check is to open a published page's HTML source and search for application/ld+json, then inspect its @type, publisher and author values. Ghost's head helper implementation serializes the schema into a script element with that media type.

The same helper skips built-in schema and social data on paginated contexts. It also checks the useStructuredData configuration and supports excluding schema from its output. A check therefore needs to account for the page context and theme helper options.

FAQ

Do I need to write the basic JSON-LD manually?

Ghost's helper documentation lists Schema.org JSON-LD among the outputs of {{ghost_head}}. A theme using that helper receives the built-in markup, subject to its configuration and page context.

Does Ghost use NewsArticle for ordinary posts?

Ghost's schema generator selects Article for both post and page contexts. Its homepage uses WebSite.

Sources

  1. Ghost, "SEO in Ghost", undated
  2. Ghost, "schema.js", undated, pinned source snapshot
  3. Ghost, "ghost_head & ghost_foot", undated
  4. Ghost, "Preparing posts for publishing", undated
  5. Ghost, "structured-data.js", undated, pinned source snapshot
  6. Ghost, "ghost_head.js", undated, pinned source snapshot

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark