Launch offer: 3-day trial for $1, then $39/mo. Cancel anytime.

Connect Ghost to LazySEO

LazySEO publishes to Ghost through the Ghost Admin API. You create a custom integration in Ghost, which gives you an Admin API key and an API URL, and paste both into LazySEO.

Last reviewed October 1, 2026.

Before you start

  • A Ghost site (Ghost(Pro) or self-hosted).
  • A Ghost staff account that can manage integrations (Owner or Administrator).

Step by step

  1. 1Create a custom integration in Ghost

    • In Ghost Admin, open Settings (the gear icon).
    • Go to Integrations and click Add custom integration.
    • Name it LazySEO and click Create.
    • Copy the Admin API key. It has two parts separated by a colon, like 6489a1b2c3d4e5f6a7b8c9d0:1a2b3c.... Do not use the Content API key: it cannot publish.
    • Copy the API URL, for example https://your-site.ghost.io.
  2. 2Open the integration form in LazySEO

    • Open your project in LazySEO.
    • In the left sidebar, under Settings, click Integrations.
    • Click Add Integration.
    • In the window that says "Choose the type of integration you want to add.", click Ghost.
  3. 3Save the integration

    Fill in the fields as described in the table below, leave Enabled switched on (disabled integrations are skipped during publish) and click Add integration.

Fill in the LazySEO form

Labels below match the Ghost form in LazySEO. Fields marked required must be filled in before you can save.

Namerequired

Any name that helps you recognise this connection. Only shown inside LazySEO.

Example: Ghost blog

Site URLrequired

The API URL shown on the custom integration page in Ghost. Leave off /ghost and /ghost/api, because LazySEO adds the API path itself (if you paste one of them, LazySEO removes it).

Example: https://your-site.ghost.io

Admin API Keyrequired

The full Admin API key, including the part before and after the colon.

Example: 6489a1b2c3d4e5f6a7b8c9d0:1a2b3c4d...

Enabled

Leave on. When it is off, LazySEO skips this integration when publishing.

Test the connection

  • Right after you save, the window shows Test the connection: click Run quick test. You can test again at any time from the integration card with Test.
  • Quick test ("Check endpoint is reachable") checks the Admin API key. A key that is not in the id:secret form (for example the Content API key) fails straight away; otherwise LazySEO signs in to the Ghost Admin API and reads one post, which proves both the API URL and the key. Nothing is created.
  • On the card's Test menu, Full test ("Send a test blog post (draft)") sends a real test article titled "[TEST] LazySEO Test Article" with the slug lazyseo-test-article. In Ghost it is created as a Draft post. Delete it from Posts once you have checked it.
  • If a test fails, LazySEO shows the reason it got from your platform (for example a rejected key or a missing permission). Check it against the troubleshooting section below, click Edit on the card to fix the field, and test again.

What gets published

WhatHow LazySEO handles it
TitleThe article title.
ContentThe full article body as HTML. LazySEO converts the article's Markdown to HTML (headings, lists, links, tables, code), sends articles you edited in the LazySEO editor as the HTML you saved, and drops a first heading that only repeats the title, because Ghost shows the title itself. It is sent with Ghost's source=html option, so Ghost converts it into its editor format.
SlugThe article slug.
StatusPublished. The Full test creates a draft.
ExcerptThe meta description is saved as the post's custom excerpt.
Feature imageThe article banner image URL is set as the feature image.
TagsThe article topics are added as Ghost tags (Ghost creates tags that don't exist yet).
Post URLLazySEO saves the URL Ghost returns as the article's published URL.
UpdatesIf the same article is published again to the same integration, LazySEO updates the existing post instead of creating a second one. If the post was deleted in Ghost in the meantime, LazySEO publishes it again as a new post. Before updating, LazySEO reads the post's latest version from Ghost, so edits made in Ghost in between don't cause a conflict error. The update does replace the title, body, excerpt, feature image and tags with LazySEO's version.
UnpublishingUnpublishing an article inside LazySEO does not remove it from your site. Delete or unpublish the post in your platform if you need it gone.

Troubleshooting

The test says the Admin API key should look like "id:secret", or publishing fails with "invalid adminApiKey — expected format: {id}:{secret}".

You pasted the Content API key or only part of the Admin API key. Copy the whole Admin API key into Admin API Key: two strings of letters and numbers joined by a colon.

HTTP 401 or 403 ("Ghost rejected the Admin API key").

The key is wrong or the custom integration was deleted. Copy the Admin API key again from Settings → Integrations.

HTTP 404 ("Ghost Admin API not found at this URL").

Check Site URL: use the API URL shown on the integration page.

HTTP 409 ("edit conflict").

The post was changed in Ghost at the same moment LazySEO updated it. Use Retry on the article.

Posts arrive in Ghost with an empty body.

This happened with older LazySEO versions. Publish the article again: LazySEO now sends the content in a form Ghost always imports.

Frequently asked questions

Does it work with Ghost(Pro) and a custom domain?

Yes. Use the API URL that Ghost shows on the custom integration page.

Still stuck?

Email support@lazyseo.io with the error message from LazySEO and we'll help you connect.