---
title: "Publish to Ghost"
description: "Add a custom integration in Ghost and paste its Admin API key. Articles arrive as native Ghost posts. Takes about three minutes."
---

> Documentation Index
> Fetch the complete documentation index at: https://rctrl.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish to Ghost

RankControl publishes each approved article as a native post on your Ghost
site, on Ghost(Pro) or self-hosted. Posts use your theme, your tags, and your
domain. Updates to an article revise the same post.

You need a Ghost Admin login with permission to add integrations. On
Ghost(Pro), custom integrations need the Publisher plan or above. The Starter
plan has no Admin API. Self-hosted Ghost has no plan requirement.

## 1. Create a custom integration in Ghost

In Ghost Admin, go to **Settings → Integrations** and click **Add custom
integration**. Name it, for example `RankControl`, and click **Create**.

Ghost shows the integration's keys. Copy the **Admin API key**. It has two
parts joined by a colon, in the form `65ab…:7c9d…`. Copy the whole value.

## 2. Copy your site URL

Use the address of your Ghost site, including `https://`. On Ghost(Pro) with
a custom domain, use your `yoursite.ghost.io` admin address here instead.

## 3. Connect in RankControl

Go to **Brand Control → Publishing**, open **Add a destination**, and choose
**Ghost**. Enter a name, the **Ghost site URL**, and the **Admin API key**.
Click **Test connection**. On success, RankControl shows your site title.

Under **Publish as**, choose **Published post** (posts go live) or **Draft
for review** (posts wait as drafts in Ghost). Click **Save destination**.

Only one destination serves articles at a time. Open the saved row and click
**Make active** if new articles must go to Ghost.

## If your site sits behind Cloudflare Access

Some self-hosted sites protect `/ghost` with Cloudflare Access (Zero Trust).
If the connection test reports this, RankControl shows two more fields.

1. In Cloudflare Zero Trust, go to **Access → Service Auth** and create a
   service token.
2. Add that token to the Access policy of the application that covers your
   Ghost admin.
3. Paste the **CF Access Client ID** and **CF Access Client Secret** in
   RankControl and click **Test connection** again.

## What arrives on your site

- The article as a post, with your slug, title, and body.
- The meta title and meta description in the post's SEO fields.
- The hero image as the feature image.
- Tags: the article's topic first, so it becomes the primary tag, then the
  article's keywords. Tags you add yourself in Ghost stay on republish.

RankControl does not set the author. Change the author in the Ghost editor if
you want another one. If you delete a post in Ghost, RankControl archives the
article and tells you.

## Analytics

Nothing to install. Page views and visits from AI answers report on their
own for articles published this way.

> **Note**
>
> Publishing requests arrive from one fixed IP address. If a firewall or bot
> rule guards your site, one rule lets RankControl through: see
> [the crawler page](/docs/bot).

## Troubleshooting

**"Ghost rejected the Admin API key."** The key is wrong, was deleted, or
belongs to another site. Open the integration in Ghost (step 1) and copy the
Admin API key again.

**"Invalid Ghost Admin API key, expected the id:secret format."** Only half of
the key was pasted. Copy the whole value, including the colon.

**Test connection fails on Ghost(Pro) with a custom domain.** Use the
`yoursite.ghost.io` admin address as the site URL (step 2).

**"Cloudflare Access blocked this before it reached your CMS."** Add a
service token as described above, or a Bypass policy for the API path.

**Posts are published but visitors cannot see them.** Ghost's private site
mode hides posts behind a password. Turn it off in **Settings → General**.

**No integrations option in Ghost Admin.** On Ghost(Pro), the Starter plan
has no Admin API. Custom integrations need the Publisher plan or above.

Source: https://rctrl.com/docs/ghost/index.mdx
