Ghost SEO automation

Ghost SEO automation: publication-grade output, published for you

AutoSEO publishes into Ghost through the Admin API — HTML body, meta description, custom excerpt and tags all set — so the publication keeps shipping while you write the pieces that matter.

Try AutoSEO with Ghost

Quick answer

How does AutoSEO publish to Ghost?

You paste your Ghost URL and an Admin API key in the id:secret format. AutoSEO mints a short-lived JWT for every request and POSTs to /ghost/api/admin/posts/?source=html — the source=html parameter is required, because without it Ghost expects Lexical and silently drops the content into an empty post. Title, HTML body, meta description, custom excerpt and tags are all set on the way in, and a refresh updates the existing post using Ghost's own collision check.

How AutoSEO publishes to Ghost

A direct Ghost Admin API v5 call. The Admin API key is split into its id and secret; AutoSEO signs a fresh five-minute JWT per request (Ghost admin tokens are deliberately short-lived) and POSTs to /ghost/api/admin/posts/?source=html with the title, HTML, status, meta description, custom excerpt and tags. On a refresh AutoSEO first GETs the post to read its current updated_at — Ghost's optimistic collision check requires it — then PUTs the update; a 404 means the post was deleted, so it is recreated instead.

Automated

  • Post creation and publishing through the Ghost Admin API
  • meta_description, custom_excerpt and tags set from the optimised article
  • Draft or published state controlled by your cadence
  • Update-in-place on refresh, respecting Ghost's collision check

Still needs a human

  • Creating a custom integration in Ghost admin to get the Admin API key (once)
  • Assigning a specific Ghost author if you want a named byline
  • Newsletter sends and member-only gating — those stay in Ghost

Step-by-step setup lives in the Ghost setup guide.

Where Ghost sites get stuck

A publication that depends entirely on one writer's available hours
Strong essays but no coverage of the queries people actually search
Older posts decaying quietly while attention goes to the newsletter
No keyword research step in a workflow built around writing

What automation changes

Articles published into Ghost with meta description, excerpt and tags applied
Keyword-led topics chosen before writing, not after
Refreshes that update the existing post rather than fragmenting the archive
Rank and AI-citation tracking for everything the publication puts out

What's genuinely different about SEO on Ghost

Generic SEO advice fails on Ghost for platform-specific reasons. These are the ones that actually change what you should do.

Ghost is unusually good at SEO out of the box

Meta title and description fields, canonical URLs, Open Graph and Twitter cards, structured data and a clean sitemap all ship natively. There is no plugin ecosystem to reconcile, which means the gap on a Ghost site is nearly always publishing volume and topic coverage — not configuration.

source=html is not optional

Ghost 5 stores posts in Lexical. Posting HTML without ?source=html creates a post with no content at all. This is the most common reason automated publishing to Ghost appears to work and produces empty posts.

Tags are the site architecture

Ghost has no categories — tags drive collections, routing and internal structure. Tagging consistently is how a Ghost publication builds topic clusters, so it is worth deciding the taxonomy before publishing at volume.

GEO on Ghost: getting cited by AI answer engines

Generative engine optimisation is a different job from ranking. An answer engine lifts a passage and decides whether to credit a source — so the questions that matter on Ghost are whether AI crawlers can read the page, whether you control what they're told, and whether the page carries attribution they can resolve.

Can AI crawlers read a Ghost page?
Ghost renders posts server-side and ships a clean, minimal HTML structure — close to ideal for AI crawlers reading article text.
Crawler control: robots.txt and llms.txt
robots.txt on Ghost comes from your theme, so you can edit it there to allow or block individual AI crawler user-agents. Themes can serve additional routes, which is also the path to publishing an /llms.txt on a self-hosted or theme-editable install.
FAQ and Article schema
Ghost emits Article and Organization structured data by default. Add FAQPage markup through your theme when a post genuinely contains a Q&A section, and keep it in strict parity with the visible text.
Byline and dates — the real blocker
Ghost's author profiles are a genuine advantage — a real name, bio, avatar and author page, plus published and updated dates rendered by nearly every theme. That is exactly the attribution answer engines look for, so assign posts to a real author rather than a generic account.

The pattern across every platform is the same: content quality is rarely what stops a citation — missing attribution is. Check what an engine can currently see with the free SEO tools, or read the SEO automation overview.

The Ghost SEO playbook

What is Ghost SEO automation?

Ghost SEO automation means running the recurring parts of SEO — keyword research, article writing, on-page optimisation, publishing and tracking — as a scheduled system rather than as manual work. On Ghost specifically it also means working with the platform's own constraints, starting with the one most sites hit first: A publication that depends entirely on one writer's available hours. What it does not mean is removing judgement — the decisions about what to sell, what to claim and what to say stay with you.

How do you improve SEO on Ghost?

Publish keyword-targeted content on a cadence you can actually sustain, fix the on-page basics on what you already have (titles, meta descriptions, internal links, schema), and measure both search rankings and AI citations. AutoSEO runs all three on Ghost: it researches winnable keywords, writes and optimises the article, delivers it via the Ghost API, and tracks what happens next.

The recurring Ghost SEO mistakes

  • A publication that depends entirely on one writer's available hours.
  • Strong essays but no coverage of the queries people actually search.
  • Older posts decaying quietly while attention goes to the newsletter.
  • No keyword research step in a workflow built around writing.

What a working Ghost system looks like

  • Articles published into Ghost with meta description, excerpt and tags applied.
  • Keyword-led topics chosen before writing, not after.
  • Refreshes that update the existing post rather than fragmenting the archive.
  • Rank and AI-citation tracking for everything the publication puts out.
Manual Ghost SEO vs automated
Manual on GhostAutoSEO
Keyword researchOccasional, when someone has timeScheduled, before every article
WritingIn-house hours or a freelancerAI-drafted, reviewed as much or as little as you want
Getting it into GhostCopy, paste, format, fixPublished through the API
Meta, schema, internal linksRemembered sometimesApplied to every article
Refreshing old contentRarely — nothing prompts itDecay detection flags it
Rank + AI-visibility tracking
Ongoing costWriters and tools billed separatelyOne subscription — see pricing

Key takeaways

  • Ghost can rank as well as any platform. The gap is a sustained content and on-page system, not the CMS.
  • AutoSEO publishes to Ghost through the Ghost API — content arrives in the platform itself.
  • For AI citation on Ghost, attribution beats volume: a visible byline, a published date and an updated date matter more than another thousand words.
  • Automation removes the recurring work, not the judgement — you still decide cadence, claims and what gets reviewed.

What Ghost Is and How Its Architecture Affects SEO

Ghost is a Node.js-based publishing platform built specifically for content-driven sites. Unlike WordPress, which layers SEO capability on top of a general CMS, Ghost ships with structured URLs, automatic sitemaps, canonical tags, and Open Graph metadata out of the box. This means your baseline technical SEO is stronger from day one — but it also means you have fewer configuration points, and the ones you do have carry more weight.

Ghost generates static-like HTML output served through its Handlebars templating engine. Pages load fast because there is no plugin stack inflating the render path. The trade-off is that Ghost's SEO surface area is intentional and opinionated: you work within its system rather than around it.

How Ghost Structures Its Content Types

Ghost organizes content into four primary URL-generating types, each with distinct SEO implications:

  • Posts — The primary content type. Published at yourdomain.com/post-slug/ by default. These are your indexable articles, guides, and news pieces.
  • Pages — Static content such as About, Contact, or landing pages. Published at yourdomain.com/page-slug/. Ghost does not add these to the posts sitemap; they appear in a separate sitemap entry.
  • Tags — Taxonomy pages at yourdomain.com/tag/tag-name/. These are crawlable by default and can either strengthen topical authority or create thin-content problems depending on how you manage them.
  • Authors — Author archive pages at yourdomain.com/author/name/. Useful for E-E-A-T signals when authors have established bylines.

Understanding this structure matters because every content type generates a live URL the moment it is published. Ghost does not give you a draft-preview URL that is separate from the canonical URL, so publishing decisions are permanent from a crawl perspective.

The Exact Technical SEO Levers Inside Ghost

Ghost exposes a specific set of SEO controls. Knowing exactly where they are and what they do prevents both under-optimization and the kind of over-configuration that creates conflicts.

URL Structure and Post Slugs

Ghost auto-generates a slug from your post title when you first save a draft. You can edit this slug in the post settings panel before publishing. Once a post is published and indexed, changing the slug creates a new URL — Ghost does not automatically create a 301 redirect. You must handle redirects manually via the Labs → Redirects feature, which accepts a JSON or YAML file mapping old paths to new ones.

Ghost supports a URL format setting in Settings → General that lets you choose between date-based URLs (/yyyy/mm/dd/slug/) and clean slugs (/slug/). For most content sites, clean slugs are preferable because they remain accurate as content is updated and they are shorter for sharing and linking.

Meta Titles and Meta Descriptions

Each post and page in Ghost has a dedicated SEO panel accessible via the post settings sidebar. This panel contains separate fields for the meta title and meta description. If you leave these blank, Ghost falls back to the post title and the excerpt field. The excerpt is also used for Open Graph descriptions when no OG-specific override is set.

The practical rule: always fill in the SEO title and description fields explicitly. Relying on fallback behavior means your meta description is whatever the first paragraph of your post happens to be, which is rarely the tightest possible search snippet.

Canonical Tags

Ghost automatically outputs a rel="canonical" tag pointing to the post's own URL. This is correct behavior for original content. If you syndicate content from Ghost to another platform, you need to set the canonical on the destination platform to point back to your Ghost URL — Ghost itself does not have a field to override the canonical to an external URL without theme-level code changes.

Sitemaps

Ghost generates and maintains an XML sitemap index automatically at yourdomain.com/sitemap.xml. This index references four child sitemaps:

Sitemap File Content Included
sitemap-posts.xml All published posts
sitemap-pages.xml All published static pages
sitemap-tags.xml All public tag archive pages
sitemap-authors.xml All author archive pages

Ghost updates these sitemaps in real time when content is published or unpublished. You do not need a plugin or cron job. Submit the root sitemap index URL directly to Google Search Console.

One critical control: Ghost includes tag pages in the sitemap by default. If a tag has only one or two posts, that tag page is thin content. Use the internal tags feature — any tag prefixed with a hash symbol (#) is treated as internal, excluded from tag archive pages, and excluded from the sitemap. This is Ghost's native mechanism for organizational tagging without SEO cost.

Structured Data and Schema

Ghost automatically outputs JSON-LD structured data for posts using the Article schema type. The output includes the headline, author name, publication date, modified date, and publisher information drawn from your site settings. This means basic Article schema requires zero configuration.

What Ghost does not generate automatically: FAQPage, HowTo, BreadcrumbList, Product, or Review schema. If your content strategy requires these types, you need to inject them via the Code Injection feature at either the site level (Settings → Code Injection) or the individual post level (post settings → Code Injection). Post-level injection places the script block in the page <head> for that URL only.

Open Graph and Twitter Card Metadata

Ghost generates Open Graph and Twitter Card tags for every post and page. The OG image defaults to the post's feature image. You can override both the OG title and OG description in the post's Twitter/Facebook preview panel within the settings sidebar. Setting a custom OG image per post is best practice for any content you expect to be shared heavily, since the feature image aspect ratio may not match the 1200×630 OG standard.

Site Speed as a Technical SEO Factor on Ghost

Ghost's core rendering is fast. The main speed variables on a Ghost site are theme quality, image handling, and hosting. Specific points to audit:

  • Image optimization — Ghost uses its own image processing pipeline that serves resized images via srcset automatically when you upload through the editor. Images uploaded via direct theme file uploads bypass this pipeline and are served at original size.
  • Theme asset loading — Third-party themes frequently load multiple unminified CSS and JavaScript files. Audit your theme's default.hbs for render-blocking resources.
  • Ghost(Pro) CDN — Ghost's managed hosting includes a Fastly CDN layer. Self-hosted Ghost instances need a separate CDN configuration; without one, static assets are served directly from the origin server.
  • Lazy loading — Ghost's editor outputs loading="lazy" on images by default in recent versions. Confirm your theme does not override this with eager loading on all images.

The Most Common Ghost SEO Mistakes

These errors appear repeatedly on Ghost sites and are specific to how the platform works, not generic SEO oversights.

Leaving Tag Pages Unmanaged

Publishing posts with five or six tags each, without using internal tags, creates dozens of thin archive pages that are all indexed. A site with 50 posts and an average of four public tags per post can generate 200 tag URLs, most of which have two or three posts. This dilutes crawl budget and creates duplicate or near-duplicate content signals. Audit your tags regularly and convert organizational tags to internal tags using the # prefix.

Not Customizing the Excerpt Field

Ghost uses the excerpt as the fallback meta description and Open Graph description. Many publishers leave it blank, which causes Ghost to pull the first 300 characters of post content — often a pull quote, a subheading, or a sentence fragment. Write a deliberate excerpt of 140–160 characters for every post.

Ignoring Author Pages

Author archive pages are indexed by default. If your Ghost site has multiple authors who have never filled in their bio, location, or website fields, those author pages are thin content. Either complete author profiles or add a noindex meta tag to author templates via your theme's author.hbs file.

Changing Slugs Without Setting Up Redirects

Ghost does not auto-redirect when a slug changes. Editing a published post's slug creates a new URL and leaves the old URL returning a 404. Any backlinks, Search Console impressions, or cached results pointing to the old URL are lost. Always add a redirect entry before or immediately after changing a slug.

Treating Ghost's Built-in Schema as Complete

The automatic Article schema is a floor, not a ceiling. Sites publishing tutorials, comparison guides, or FAQ-style content leave structured data opportunities unused if they never add supplementary schema via code injection. Google's Rich Results Test will show you exactly what is and is not being parsed from your pages.

Using the Date-Based URL Format for Evergreen Content

Selecting the date-based URL format for a site publishing evergreen guides means every URL contains a publication year. A guide published in 2021 and updated in 2024 still shows /2021/ in the URL, which can reduce click-through rates from search results where freshness is a perceived quality signal. Switch to clean slugs before the site accumulates significant link equity.

Step-by-step SEO workflow for Ghost: from keyword research to indexed page

Ghost handles the technical foundation automatically, but ranking requires a repeatable content and on-page process. The workflow below covers every stage from picking a keyword to confirming Google has crawled the finished post.

Step 1: Keyword research scoped to your Ghost niche

Start with a seed topic relevant to your publication. Use a keyword tool to find a primary keyword with clear search intent, then build a cluster of three to five supporting terms. For a Ghost-based newsletter or blog, prioritize:

  • Informational queries that match long-form posts (how-to, what-is, comparison)
  • Low-to-medium competition keywords where a focused publication can outrank large media sites
  • Question-format phrases that align with Ghost's strength in editorial depth

Record the primary keyword, search volume, keyword difficulty, and the top three ranking URLs for that term. Those URLs tell you the expected content format, word count range, and heading structure Google already rewards.

Step 2: Map the keyword to a Ghost post or page

Decide whether the keyword belongs on a standard post, a static page, or a tag archive. Ghost tag pages are indexable and can rank for broad category terms. Posts rank better for specific, intent-driven queries. Avoid creating two posts targeting the same keyword — Ghost does not merge duplicate content automatically, so cannibalization is your responsibility to prevent.

Step 3: Write with on-page SEO built in from the first draft

Ghost's editor does not enforce SEO rules, so apply them deliberately during writing:

  1. Place the primary keyword in the first 100 words of the post body.
  2. Use the keyword naturally in at least one H2 subheading.
  3. Keep paragraphs short — Ghost renders well on mobile, but dense blocks still hurt readability scores.
  4. Add internal links to two or three related posts already published on your Ghost site.
  5. Include at least one outbound link to a credible source to support factual claims.
  6. Write image alt text that describes the image and includes the keyword where it fits naturally.

Step 4: Fill in Ghost's SEO meta fields

Open the post settings panel in Ghost Admin. Under Meta data, write a custom SEO title and meta description. Do not leave these blank — Ghost will pull the post title and excerpt as defaults, which are rarely optimized for click-through rate.

  • SEO title: 50–60 characters, primary keyword near the front
  • Meta description: 140–155 characters, include the keyword and a reason to click
  • URL slug: short, keyword-only, no stop words (edit this before publishing — changing it after creates redirect work)

Also set the Open Graph title and description in the same panel. These control how the post appears when shared on social platforms, which indirectly affects traffic and link acquisition.

Step 5: Publish and trigger indexing

Ghost pings Google automatically on publish via its built-in sitemap update, but automatic discovery can take days. Speed it up by submitting the specific URL through Google Search Console using the URL Inspection tool and clicking Request Indexing. For new Ghost sites with low crawl frequency, this step cuts indexing time from weeks to hours.

Step 6: Track rankings and iterate

Connect Google Search Console to your Ghost domain if you have not already. After two to four weeks, check the Performance report filtered by the target URL. Look at average position, impressions, and click-through rate. If the post ranks between positions 5 and 15, a targeted update — adding a section, improving the title tag, or building one internal link from a high-traffic post — often moves it into the top five.


How AutoSEO automates the entire Ghost SEO workflow

AutoSEO connects keyword research, AI-assisted writing, Ghost publishing, index requests, and rank tracking into a single pipeline. Instead of switching between five tools, you run one workflow that handles each stage and writes results back to a central dashboard.

Stage Manual process AutoSEO action
Research Export keywords from a separate tool, score manually Pulls volume, difficulty, and intent data automatically for your seed topic
Write Draft in a separate editor, apply on-page rules manually Generates an SEO-structured draft with title, meta description, headings, and body copy pre-filled
Publish to Ghost Copy-paste into Ghost Admin, re-enter meta fields Pushes the post directly to Ghost via the Content API, including slug, SEO title, meta description, and tags
Index Open Search Console, paste URL, click Request Indexing Submits the URL to Google Search Console automatically after publish
Track Return to Search Console weekly, export data manually Pulls ranking data into the AutoSEO dashboard and flags posts that have moved or stalled

The Ghost Content API integration is the critical link. AutoSEO authenticates with your Ghost Admin API key, formats the post payload to match Ghost's field structure, and publishes with the correct status — draft or published — depending on your workflow preference. You can review AI-generated drafts in AutoSEO before they go live, or set fully automated publishing for content types you have already approved as a template.

For teams running multiple Ghost publications, AutoSEO supports separate API connections per site, so keyword clusters, drafts, and ranking data stay organized by publication rather than mixed into one account.


FAQ: SEO on Ghost

Does Ghost generate a sitemap automatically?

Yes. Ghost creates and updates a sitemap at yourdomain.com/sitemap.xml every time you publish or update a post, page, tag, or author. You do not need a plugin to generate it. Submit the sitemap URL once in Google Search Console and Google will re-crawl it as your content grows.

Can Ghost tag pages rank in Google search results?

Yes, Ghost tag pages are publicly accessible and indexable by default. They can rank for broad category or topic keywords. To improve their ranking potential, add a tag description in Ghost Admin — this text appears as the page's meta description and gives Google meaningful content to evaluate beyond a list of post titles.

How do I add structured data to Ghost posts?

Ghost automatically outputs JSON-LD structured data for Article and BreadcrumbList schema on posts and pages. For additional schema types — such as FAQ, HowTo, or Product — inject the JSON-LD block through Ghost's Code Injection field at the post level or site level. No third-party plugin is required, but you must write or generate the schema markup yourself.

Does Ghost support canonical URLs?

Ghost outputs a canonical URL tag automatically based on the post's primary URL. If you syndicate content from your Ghost site to another platform, add a canonical tag on the syndicated version pointing back to your Ghost URL. Ghost itself does not provide a field to set a custom canonical URL in the Admin UI — for cross-site canonicalization, you need to edit the theme or use code injection.

Why is my Ghost site not appearing in Google after several weeks?

The most common causes are: the site is set to private in Ghost Admin settings (which blocks all crawlers), the domain is new and has no inbound links, or the sitemap was never submitted to Google Search Console. Check Settings → General → Make this site private first. Then verify the sitemap is submitted and use the URL Inspection tool in Search Console to see whether Googlebot has attempted to crawl any URLs.

How does Ghost handle pagination for SEO?

Ghost generates paginated archive pages (page/2, page/3, and so on) for the homepage and tag archives. These pages are indexable but rarely carry significant ranking value on their own. Ghost does not automatically add rel="prev" and rel="next" link tags, which Google has deprecated anyway. Focus SEO effort on individual post URLs rather than paginated archives.

What is the best internal linking strategy for a Ghost publication?

Build links from high-traffic, established posts to newer posts targeting related keywords. Ghost does not have an automatic internal linking tool, so maintain a simple spreadsheet of your top ten posts by traffic and update each one manually when you publish related content. Anchor text should describe the destination page's topic — avoid generic phrases like "click here" or "read more." Three to five internal links per post is a practical target without over-optimizing.

Can I use Ghost with a headless setup and still maintain SEO performance?

Yes. Ghost's headless mode — using Ghost as a backend CMS with a separate front-end framework — gives you full control over rendering, which can improve Core Web Vitals scores. The trade-off is that Ghost's automatic SEO outputs (sitemap, structured data, canonical tags) are no longer generated by default. Your front-end must handle all meta tags, structured data, and sitemap generation independently. Frameworks like Next.js with the Ghost Content API are a common combination, using libraries such as next-seo to manage meta output.

Ghost SEO automation — frequently asked

How do I connect Ghost to AutoSEO?

Ghost connects with your Ghost API URL + an Admin API key in id:secret form. There is no plugin to install and no theme code to change; AutoSEO calls the Ghost API directly.

Will AutoSEO change my existing Ghost content?

Only what you ask it to. New articles are delivered on the cadence you choose — as drafts for review, or published straight away. Existing pages are audited and surfaced as recommendations first; nothing is rewritten in place until you turn that on.

How long until SEO automation shows results on Ghost?

It depends on the domain, not the platform. An established site with existing authority usually sees movement on long-tail queries within weeks; a new domain in a competitive niche takes considerably longer. Publishing consistently is what compounds — which is the part automation actually fixes.

What does AutoSEO cost for a Ghost site?

Plans are per site with volume discounts as you add more, and there is a trial. Current numbers are on the pricing page rather than repeated here, so they cannot go stale.

Can I keep my current Ghost SEO tools?

Yes. AutoSEO is built to sit alongside what you already run rather than take over the page head — on WordPress it writes into your existing SEO plugin's fields instead of adding a competing set of tags, and on every platform it leaves the platform's own SEO settings alone.

Does this work on Ghost(Pro) and self-hosted Ghost?

Both, as long as the Admin API is reachable and you can create a custom integration to get an Admin API key. The connection is the same either way.

Will AutoSEO email my Ghost newsletter list?

No. It creates and updates posts. Newsletter sends stay entirely under your control in Ghost.

Keep reading

Other platforms

Automate the recurring SEO work on Ghost

Works alongside your existing Ghost setup. See pricing for plans and the trial.

Connect Ghost