> ## Content Index
> Fetch the complete content index at: https://www.ectobuilder.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# How to migrate from Substack to Ghost (and what doesn't come with you)
- URL: https://www.ectobuilder.com/blog/migrate-substack-to-ghost/
- Published: 2026-10-09T10:51:39.000Z
- Updated: 2026-10-19T15:23:13.000Z
- Description: Ghost has a built-in Substack importer that moves your posts, free subscribers and paid subscribers in one go. Here is every step, plus an honest list of what stays behind.
- Author: Michal Wlosik
- Tags: Guides, Substack

Ghost has a Substack importer built into its admin. It moves your posts, your free subscribers and your paid subscribers in one guided flow, and it keeps paid subscriptions running on the same Stripe account. A small newsletter can be across in under an hour.

It is not a perfect copy, though. Some things that make Substack feel like Substack live only on Substack's servers and don't leave in the export. This guide walks through the import step by step, then lists exactly what you will need to rebuild or let go.

If you also want your new Ghost site to *look* like your Substack, read the companion guide: [How to make Ghost look and feel like Substack](https://www.ectobuilder.com/blog/make-ghost-look-like-substack/).

## Before you start

- **A Ghost site.** [Ghost(Pro)](https://ghost.org/pricing/?via=michal-207c22&ref=ectobuilder.com) or a self-hosted install both work. The importer is the same.
- **Log in to Substack** in the same browser. The importer sends you to your Substack settings to download files.
- **If you have paid subscribers, connect Stripe in Ghost first,** and use **the same Stripe account** that Substack uses. This is what lets existing subscriptions carry on without anyone re-entering card details.
- **Take a fresh export** on the day you move. Anyone who subscribes on Substack after your export won't be in it.

**Why Ghost(Pro)?** It’s the official hosting, run by the non-profit Ghost Foundation, so your subscription funds Ghost itself. Updates, backups, security and a worldwide CDN are handled for you, newsletter sending is included with no Mailgun account to set up, analytics work out of the box, and new features reach you first. Ghost takes 0% of your paid subscriptions. One thing to know: Starter runs only Ghost’s official themes, so choose Publisher for a custom theme. [Try Ghost(Pro) free for 14 days](https://ghost.org/pricing/?via=michal-207c22&ref=ectobuilder.com).

![Ghost Settings, Tiers section with the Connect with Stripe button highlighted](https://www.ectobuilder.com/content/images/2026/10/substack-connect-stripe.webp)

Settings → Tiers. (1) Connect with Stripe, using the Stripe account your Substack is connected to.

## Step 1: Open Ghost's Substack importer

In Ghost Admin, open **Settings** and choose **Import/Export** under Advanced. Under **Migration tools**, keep the **Import** tab selected and click **Substack**.

![Ghost Settings showing Migration tools with the Substack button highlighted](https://www.ectobuilder.com/content/images/2026/10/substack-migration-tools.webp)

(1) Import/Export in the settings menu. (2) The Substack importer.

## Step 2: Enter your Substack address

The importer reminds you to connect Stripe if you're moving paid subscriptions. Type your publication's address, for example `yourname.substack.com` or your custom domain, and click **Continue**.

![Import from Substack screen with the Stripe reminder, the URL field and the Continue button highlighted](https://www.ectobuilder.com/content/images/2026/10/substack-enter-url.webp)

(1) The Stripe reminder. (2) Your Substack address. (3) Continue.

## Step 3: Export your posts from Substack

The importer now shows three stages: **Content → Free subscribers → Paid subscribers**. Click **Open Substack settings**. On Substack, go to **Settings → Exports** and click **Create new export**.

Substack builds a ZIP file and emails you when it's ready. On a large archive this can take a while. When it's done, click **Download** next to the new export.

![Export content step in Ghost's Substack importer](https://www.ectobuilder.com/content/images/2026/10/substack-export-step.webp)

(1) The three stages of the import. (2) Opens your Substack export settings, where you click Create new export.

[![CTA Image](https://www.ectobuilder.com/content/images/size/w256h256/2026/06/Ecto_builder_logo_sq_small.png)](https://editor.ectobuilder.com/login?mode=signup&plan=free&ref=ectobuilder.com) 

****Moving your newsletter to Ghost?** Ectobuilder lets you design your Ghost site visually, from a Substack-style layout to a full homepage, without touching theme code.

[Try it free ](https://editor.ectobuilder.com/login?mode=signup&plan=free&ref=ectobuilder.com) 

## Step 4: Upload the ZIP

Back in Ghost, click the upload area under **Upload content** and pick the ZIP you just downloaded. Don't unzip it first. Ghost reads the posts out of it and moves you on to the subscribers.

![Upload content step with the file drop area highlighted](https://www.ectobuilder.com/content/images/2026/10/substack-upload-zip.webp)

(1) Drop the Substack ZIP here, as it is.

## Step 5: Add your free subscribers

Click **Download free subscribers from Substack**. You get a CSV file. Upload it in the box below and click **Continue**. Each free subscriber becomes a free member in Ghost and keeps getting your emails.

## Step 6: Add your paid subscribers

Click **Download paid subscribers from Substack**, upload that CSV and click **Continue**. Ghost matches each one to their existing subscription in your Stripe account, so they keep their plan, price and renewal date. If you have no paid subscribers, skip this step.

## Step 7: Review and import

Ghost shows how many posts and members it found. Check the numbers against Substack's dashboard, then click **Import content and subscribers**. You'll see a confirmation when it's finished, and Ghost emails you a summary.

## Step 8: Tidy up after the import

The import is done, but a few things need your attention before you announce the move.

1. **Open five or six posts**, including an old one, a paid one and one with embeds. Check images load and paid posts show the paywall where you expect.
2. **Check where images are stored.** If any image addresses still start with `substackcdn.com`, those pictures still depend on Substack.
3. **Point your custom domain at Ghost** if your Substack used one. Readers and search engines then land on Ghost.
4. **Fix the old `/p/` links.** Substack post addresses look like `/p/post-name`; Ghost's look like `/post-name/` by default. Either [add a redirect](https://www.ectobuilder.com/blog/ghost-migration-redirects/) (below), or keep Substack's addresses with a theme that uses them. The [companion guide](https://www.ectobuilder.com/blog/make-ghost-look-like-substack/) shows how.
5. **Send yourself a test email** from a draft, so you see how your newsletter now looks in an inbox.

To redirect old links, go to **Settings → Labs**, click **Download current redirects**, add the rule below, and upload the file again with **Upload redirects file**:

```
301:
  ^\/p\/(?![0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(.*)$: /$1
```

It sends `/p/my-post` to `/my-post`. The part in brackets leaves Ghost's own preview links alone: they also start with `/p/`, followed by a long ID.

![Ghost Labs settings with the Redirects controls highlighted](https://www.ectobuilder.com/content/images/2026/10/substack-redirects.webp)

(1) Settings → Labs → Redirects: download the current file, add the rule, upload it back.

## What doesn't come with you

Substack's export contains your posts and your subscriber lists. Everything below lives only on Substack, so plan for it before you switch.

| On Substack                   | After the move                                                                                                                                                |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Comments, likes and restacks  | Not in the export, so they stay on Substack. Ghost has its own comments, which start empty.                                                                   |
| Notes and Chat                | No export and no direct equivalent. Ghost's Network lets people follow your publication from other apps, which is the closest thing to Notes.                 |
| Followers in the Substack app | People who follow you in the app without subscribing by email aren't on your subscriber list, so they don't move.                                             |
| Recommendations and discovery | Substack's network and the recommendations you made don't transfer. Add your recommendations again under Settings → Recommendations.                          |
| Open rates and growth stats   | History stays behind. Ghost starts counting from your first email sent on Ghost.                                                                              |
| Podcast audio                 | Ghost doesn't host podcast feeds. Move your audio to a podcast host, and embed episodes in posts.                                                             |
| Substack-only blocks          | Polls, subscribe and share buttons, and some embeds become plain links or disappear. Check posts that used them.                                              |
| Substack's 10% fee            | Ghost takes no cut, but existing subscriptions created on Substack keep paying Substack's fee. Ghost's support team can help remove it (concierge@ghost.org). |
| Bank statement name           | Subscribers' statements may still say "Substack". Change it in Stripe under your public business details.                                                     |
| Your substack.com address     | You can't redirect yourname.substack.com. Only links on your own custom domain can follow you to Ghost, so post a "we've moved" note on Substack.             |

## Large or complicated archives

Ghost(Pro) customers can ask Ghost's migrations team to do the move for them. If you host Ghost yourself or want more control, Ghost publishes its migration tools as open source ([TryGhost/migrate](https://github.com/TryGhost/migrate?ref=ectobuilder.com)), with options the admin importer doesn't have.

## Next: make it feel like home

Your readers are used to Substack's look: a centred masthead, a calm reading column and posts at `/p/`. You don't have to give that up. [How to make Ghost look and feel like Substack](https://www.ectobuilder.com/blog/make-ghost-look-like-substack/) shows how to build that theme in Ectobuilder without code, section by section.

*Some links in this article are affiliate links: if you sign up through them, we may earn a commission at no extra cost to you.*