Ghost · Publishing CMS

Ghost SEO Audit: the issues built into Ghost — and how to fix them

A modern publishing and membership platform that's genuinely strong on technical SEO out of the box — so its issues are subtler: paywalled content, archive pages, and theme completeness.

How Ghost's architecture shapes your SEO

Ghost is a Node-based publishing platform (hosted or self-hosted) built for blogs, newsletters, and paid memberships. It's one of the better platforms for technical SEO by default: clean semantic HTML, automatic Article/JSON-LD structured data, XML sitemaps, canonical tags, and fast delivery. Because the fundamentals are handled, the issues that remain are editorial and structural — how members-only content interacts with indexing, thin tag/author archive pages, and whether a custom theme preserves Ghost's built-in SEO output.

Reference: Ghost SEO documentation

The issues we see most on Ghost stores

Why these happen on Ghost

Specific to how Ghost is built — not generic checklist advice.

SEO

Members-only content and indexing

Paywalled or members-only posts can end up as teaser pages with little public content. Decide deliberately what should be indexed: keep public posts fully crawlable, and make sure gated posts aren't surfacing as thin, near-empty pages that disappoint searchers.

SEO

Thin tag and author archives

Ghost generates archive pages for every tag and author. Loosely-used tags create many thin, near-duplicate listings. Keep tags purposeful and consider how much archive surface you actually want indexed.

Full fix guide →
AEO

Custom themes can drop built-in SEO

Ghost's default output includes structured data and proper meta, but a custom theme can omit the helpers that generate them. Verify your live theme still emits Article JSON-LD, canonicals, and Open Graph tags — don't assume it inherited them.

Fixes written for Ghost

We catalog 7 Ghost fixes — exact steps for Ghost's admin and theme, each with a link to the official docs.

Missing meta descriptionSEO

Write a unique meta description of 120–160 characters for every page so Google has compelling snippet text to show in search results.

On Ghost
  1. 1For a post or page: open the post/page editor → click the settings gear (top right) → 'Meta data' section → fill 'Meta description' → Update.
  2. 2For the homepage/global settings: Ghost Admin → Settings → Meta data (under 'SEO') → fill 'Meta description' → Save.
Ghost docs →
Missing og imageSEO

Add an og:image meta tag to every page so social media platforms and messaging apps display a rich preview image when someone shares your store's link.

On Ghost
  1. 1Ghost automatically generates og:image tags for posts and pages that have a Feature Image set.
  2. 2For each post or page, open the editor → click the Settings panel (gear icon) → set a 'Feature Image' (1200×630 px recommended) — Ghost uses this as the og:image.
  3. 3For the site-wide default (used when no feature image is set), go to Settings → General → Publication icon / cover image — Ghost uses the publication cover as the fallback og:image.
  4. 4Validate with the Meta Sharing Debugger to confirm images are rendering.
Ghost docs →
Html has langWCAG

Add a valid `lang` attribute to the `<html>` element so browsers and assistive technologies know what language your page is written in.

On Ghost
  1. 1In Ghost, the `<html>` tag lives in your theme's `default.hbs` file (the root Handlebars layout).
  2. 2Access your theme files via Ghost Admin → Settings → Design → Customize → (download theme or edit via direct file access if self-hosted).
  3. 3Open `default.hbs` and find the `<html` tag. Add or update the lang attribute using the Ghost locale helper: `<html lang="{{@site.locale}}">` — this dynamically outputs the locale set in your publication settings.
  4. 4Set the publication locale under Ghost Admin → Settings → General → Publication Language.
  5. 5Upload the updated theme via Settings → Design → Upload theme, then verify via View Source.
Ghost docs →
Html lang validWCAG

Set a valid BCP 47 language code on the `lang` attribute of your page's `<html>` element (e.g., `lang="en"`) so browsers, screen readers, and search engines correctly identify the page language.

On Ghost
  1. 1In your Ghost theme files, open `default.hbs` (the root layout).
  2. 2Find the `<html` tag and update it to use Ghost's locale helper: `<html lang="{{@site.locale}}">`. Ensure your publication locale is set correctly in Ghost Admin → Settings → Publication info.
  3. 3Upload the updated theme zip via Ghost Admin → Settings → Design → Upload theme, then verify the page source.
Ghost docs →

Browse all 7 Ghost fixes →

Benchmark data not yet available for Ghost.

Be the first to scan your Ghost store →

Every scan checks all six pillars

🔍
SEO

Search engines need to crawl and understand your catalog. We check every page for indexability, metadata, canonical tags, Core Web Vitals, internal linking, and faceted navigation — the issues that silently kill organic traffic.

Learn how to fix SEO issues →
Answer Engine (AEO)

AI tools like ChatGPT and Google's AI Overviews pull from structured data. We audit your product schema, FAQ markup, brand signals, and E-E-A-T indicators — so your products show up where shoppers are increasingly searching.

Learn how to fix Answer Engine (AEO) issues →
🌐
AI Visibility (GEO)

Is your brand mentioned when someone asks an AI assistant for product recommendations? We track your presence across ChatGPT, Perplexity, and other AI engines — and tell you what's driving mentions up or down.

Learn how to fix AI Visibility (GEO) issues →
Accessibility (WCAG)

1 in 4 adults has a disability. Inaccessible sites face ADA lawsuits — and lose customers. We run WCAG 2.1 AA checks across your catalog pages and tell you exactly what to fix.

Learn how to fix Accessibility (WCAG) issues →
🛡️
Security (OWASP)

Security headers, SSL configuration, email authentication, and server misconfigs — issues that erode customer trust and tank your search rankings if Google flags you.

Learn how to fix Security (OWASP) issues →
Site Lifecycle

SSL expiry, outdated CMS versions, unverified GTM containers. The operational health checks that fall through the cracks — until they cause an outage or a ranking drop.

Learn how to fix Site Lifecycle issues →

Start free. Upgrade when ready.

Scout
Free
1 site · 50 pages/audit · monthly audits
SEO only
  • Composite + pillar scores
  • Issue counts
  • Free forever
Start free
Recommended
Starter
$49/mo
1 site · 500 pages/audit · weekly audits
All 6 pillars
  • Every finding + platform-specific fixes
  • Action plan & Today's Focus
  • ADA risk + AI visibility
  • Export reports
Choose Starter

Questions about Ghost audits

Yes — it's one of the stronger platforms out of the box: clean HTML, automatic structured data, sitemaps, and canonicals. We focus on the subtler issues: membership/indexing, archive thinness, and whether your theme preserves the built-in SEO.

See what's holding back your Ghost store

Free scan. No credit card. Results in minutes.

Scan My Ghost Store Free