Skip to content

Publishing platform

Ghost integration

Ghost is the best-behaved destination on this list, and the one where you most need to think about duplication, because it already does a lot of what we do.

No card · 30 credits on signup

Published to GhostLive
  • Body, headings and internal links
  • Meta title & description
  • JSON-LD structured data
  • Canonical URL & a named author
  • Featured image with alt text

Every article, formatted for Ghost — nothing to paste.

Connecting Ghost

Live in a few minutes.

  1. Step 1

    Create a custom integration in Ghost

    In your Ghost admin, open the integrations settings and add a custom integration named for this connection rather than reusing an existing one.

  2. Step 2

    Note your Admin API URL and key

    Copy the Admin API key, which is presented as an identifier and a secret joined by a colon, and copy the API URL shown alongside it.

  3. Step 3

    Connect the project in SEOPulser

    In the project's integration settings, choose Ghost and supply the API URL and the Admin API key.

  4. Step 4

    Create the staff user your posts will be attributed to

    Ghost attributes posts to staff accounts, so the person who should be bylined needs a user on the site with a name, a bio and a profile image.

  5. Step 5

    Decide who owns the Article graph

    Open a published post on your site and view source, searching for application/ld+json.

  6. Step 6

    Run one post as a draft and inspect it

    Put the project in draft-first mode and let one article through.

What lands where

Every field maps cleanly.

SEOPulserGhost
  • Title and slugPost title and slug
  • Article body (Markdown)Post content, supplied as HTML for conversion
  • Meta description and excerptMeta description and custom excerpt
  • Featured image and alt textFeature image, with its alt text
  • Author entityPost author, mapped to a Ghost staff user
  • TagsPost tags, including internal tags
  • Publish state and schedulePost status and published date
  • JSON-LD graphPer-post code injection, head section

Worth knowing first

The honest limitations.

Every destination constrains something. These are the ones worth knowing before you commit a content program to Ghost.

  • Ghost already generates its own Article structured data on posts.
  • Content is stored in Ghost's editor document format rather than as raw HTML, so HTML you send is converted into cards.
  • Authors must exist as staff users on the site.
  • Updating a post requires sending the version Ghost currently holds, so a post edited in the Ghost editor between our read and our write will have the update rejected rather than silently overwritten.
  • Posts restricted to members or paid tiers are truncated for anyone who is not signed in, and crawlers are not signed in.

From content chaos to search results

Without a system

  • Content takes forever, or costs a fortune
  • Generic AI drafts never rank
  • No schema, no author, no canonical
  • Publishing is a manual copy-paste chore
  • Scaling too fast gets you flagged

With SEOPulser

  • Research to publish, fully on autopilot
  • Your answers make every draft original
  • JSON-LD and a named author on each
  • One-click publishing to your CMS
  • Cadence ramped to your site's age

What's different

Built to rank, not just to publish.

Structured data on every article

Article, FAQ, HowTo and Breadcrumb JSON-LD are generated inside the pipeline and stored with the piece, so they travel to whatever you publish to.

Real named authors

Every article is bylined to a named person with a bio and a profile page — not the brand as a schema.org Person, which Google advises against.

Your first-hand experience

Before drafting, you answer a few questions only you can, and the answers go into the piece as material a model could never have inferred.

An MCP server for the loop

Claude, Codex or your own agent reads the calendar, answers questions, queues generation and controls autopilot — over the same API the dashboard uses.

Pace matched to site age

Publishing cadence ramps against when your site was first seen, so a young domain never ships at a volume that reads as scaled content abuse.

Search Console improvements

Connect GSC and it finds near-miss rankings, CTR gaps and thin pages, then rewrites them as accept-or-reject hunks — on posts we didn't write, too.

Pricing

Start free. Pay when it’s working.

Thirty credits on signup — three full articles, published to your own site. No card.

Professional

Most popular

$69/mo

Billed annually

  • 100 articles a month
  • 3 projects
  • Search Console improvement loop
  • MCP server and REST API keys
  • Article, FAQPage, HowTo and BreadcrumbList JSON-LD on every piece

Questions people actually ask

Does Ghost already add schema to posts?

Yes. Ghost outputs structured data on posts by default, including an Article graph with headline, images, dates, an author from the staff account and a publisher from your site settings. That is why the integration is normally configured additively: Ghost keeps the Article node, and we contribute FAQPage, HowTo and a breadcrumb graph it does not emit. Check a live post's source to confirm what yours currently produces.

Do I need a staff account for every author?

Yes, because Ghost attributes posts to staff users rather than to a text field. Adding a byline means inviting a user and filling in the name, bio and profile image, which Ghost then renders on the post and includes in its own structured data. It is more setup than a free-text author field, and it is also the reason Ghost bylines resolve to a real profile page.

Will my formatting survive the publish?

For normal article structure, yes. Ghost converts the HTML it receives into its editor document format, and headings, paragraphs, lists, quotes, images, code blocks and links convert faithfully. Unusual or deeply nested markup gets normalized during that conversion, so the stored post will not be byte-identical to what was sent. Review the first published piece in the editor to see how your content shape lands.

Where exactly does the JSON-LD go?

Into the post's own head code injection field, which Ghost exposes per post. That puts the markup in the document head of that specific post, without any theme editing and without adding script tags to the body. It is the tidiest placement of any destination we support, which is part of why the duplication question matters more here than the delivery question.

Should members-only posts be part of an SEO calendar?

Generally not. A gated post renders as a teaser for anyone not signed in, and crawlers are never signed in, so the indexable content is the teaser. Keep search-facing articles public and use gated posts for member value, with the two linking to each other. The improvement loop can only work with pages that are publicly readable in the first place.

Does this work with self-hosted Ghost as well as the hosted service?

Both, since they expose the same Admin API and the same custom integration mechanism. The one thing to get right on a self-hosted install is the API URL, which is your Ghost instance's own address and may differ from your public site address if you serve the front end separately. If a connection check fails on a self-hosted site, that mismatch is the first thing to check.

Other destinations

Connect in minutes

Publish to Ghost without touching a draft.

Connect once, confirm the brief, and articles arrive on your Ghost site with structured data and a real author attached. Keep the review gate on until you trust it.

3

Free articles on signup

  • No credit card
  • Published to your own site
  • JSON-LD and a named author
  • Cancel anytime