ESP: Ghost7 min read

Ghost newsletter: seed testing for independent publishers

Ghost publishers own their list and their deliverability. No shared pools to hide behind, no vendor to blame. Seed addresses are the clean, no-vendor way to verify every issue actually lands in the Inbox.

Ghost is the platform for publishers who want to own their work. The software is open source, the content is portable, and on Ghost(Pro) or a self-hosted install the newsletter ships through Mailgun on the publisher's own domain. That is wonderful for independence and brand control. It also means deliverability is entirely your responsibility. If your issue lands in Promotions or Spam, there is no shared pool to absorb the blame.

That is where seeds come in. A seed test is the only no-vendor, no-reporting-fiction way to see where a Ghost issue actually landed. And because Ghost treats members (including seed addresses) as first-class citizens of your list, you can add them in seconds.

How Ghost handles members and why that helps seeds

Ghost runs on a members model. Every subscriber is a member — free or paid — and the newsletter sends to the members who opted in to email. You can add a member manually from the admin panel, or import, or via API. Ghost's free plan (self-hosted) and Ghost(Pro) tiers all support member addition; nothing is gated behind a higher plan for this.

For seed testing, members behave exactly like real subscribers: they receive every scheduled email, they appear in the email recipients list, and their engagement counts in analytics (if they open anything). That is actually what you want — seeds are treated like any other reader, so the placement you see is the placement real readers see.

Adding seed members on the free plan

Step by step, from a clean Ghost install:

  1. Get a batch of seed addresses. Use your own if you have old spare mailboxes; use the Inbox Check free generator if not.
  2. In Ghost admin, open Members → New member. Enter the seed address and hit Add. Ghost will create the member without a welcome email by default; toggle "Send signup email" off if you do not want the welcome.
  3. Label the new member seed so you can filter them out of member counts later. Labels in Ghost behave like tags.
  4. Verify the member is subscribed to the newsletter ("Email newsletter" toggle in the member record). Members who are unsubscribed from email will not receive your issues.
  5. For bulk: use Members → Import members with a CSV. Columns: email,subscribed_to_emails,labels. Setsubscribed_to_emails to true andlabels to seed.
# seeds.csv
email,subscribed_to_emails,labels
seed-gmail-a1@inbox-check.io,true,seed
seed-outlook-b2@inbox-check.io,true,seed
seed-yahoo-c3@inbox-check.io,true,seed
seed-mailru-d4@inbox-check.io,true,seed
seed-proton-e5@inbox-check.io,true,seed
Label discipline matters

Your public subscriber count is a number you probably show to sponsors. A seed label lets you exclude seeds from the filterlabel:-seed whenever that count matters, so seeds do not inflate your audience reporting.

Pre-publish seed tests per issue

Ghost's email preview shows you how the issue will look. It does not tell you where it lands. For that you run a real send to seeds before the real send to readers. Two patterns work:

Pattern 1: Ghost email preview + seed send

Ghost lets you send a preview email to a specific address. Send the preview to a seeds-only email alias (a small helper address that forwards to your seed addresses). Check placement. If any seed lands in Spam or Promotions and you are not happy with that, adjust the issue and re-preview. Only then publish to the real list.

Caveat: previews sometimes take a slightly different code path than the main send in Ghost, so placement is not 100% identical. It is usually close enough for a go / no-go decision.

Pattern 2: Send-to-segment, seeds first

Ghost supports segmenting email sends by label. Schedule the issue to send only to label:seed first, review placement across your seed providers, then send to the rest of the list (label:-seed) once you are satisfied.

This is the more accurate approach because the code path is identical to the real send. The trade-off is that you need to be a little careful with scheduling so you do not accidentally double-send to some subscribers.

Get 20+ seed addresses free

The free Inbox Check tool generates 20+ fresh seed addresses per test across Gmail, Outlook, Yahoo, Mail.ru, Yandex, ProtonMail and more. No signup, no credit card.

→ Run a free test now

Reading placement on a Ghost newsletter

Because Ghost sends from your own domain, placement depends almost entirely on your own sender reputation. Expect:

  • A brand-new Ghost install sending from a fresh domain will see Promotions (or worse) for the first weeks, until DKIM/DMARC and engagement build reputation.
  • A well-warmed publishing domain with consistent openers will see mostly Inbox/Primary across Gmail and Outlook.
  • Yahoo and Mail.ru are strict on DKIM alignment — if yours is off, seeds will show Junk there first.
  • ProtonMail is forgiving on Ghost but strips trackers, so your click-tracking pixel opens rate will be lower for Proton seeds. That is normal.

DNS checklist every Ghost publisher should verify

A seed test that lands in Spam everywhere usually traces back to DNS. Before blaming content, confirm:

  • SPF includes Mailgun (include:mailgun.orgif you use Ghost(Pro)) or your own chosen provider.
  • DKIM is published on the pm._domainkey(or whatever selector Ghost/Mailgun gave you) TXT record and matches the key Ghost signs with.
  • DMARC at least p=none; rua=mailto:you@..., preferably p=quarantine once you trust alignment.
  • MX and return-path are consistent with the provider that actually sends the email.

Frequently asked questions

Will seed members count against my Ghost(Pro) plan member limit?

Yes, but only as free members. Ten or twenty seeds is trivial against any current Ghost(Pro) tier. If you are on the self-hosted free plan, there is no limit to worry about.

Can I automate seed tests in Ghost?

Partly. The Admin API lets you add members programmatically. Ghost does not have a native "send to segment first, then to rest" macro, so the test-before-publish step is still manual (or a small webhook you wire up yourself).

Do seed opens skew Ghost's newsletter open-rate dashboard?

Only if seeds actually open the email. Most programmatic seeds do not open. If yours do, filter the analytics view by label:-seed to see real-subscriber numbers.

Ghost sends via Mailgun by default. Does that matter for deliverability?

Mailgun is reputable but the reputation is still tied to your sending domain, not Mailgun as a whole. So yes, Mailgun handles the transport — but seeds are still testing your domain's placement, not theirs.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required