Ghost migration
★★★★ 4.2 CE

Ghost Migration & Switching Guide 2026

Ghost imports natively from Substack, Medium, WordPress and more, with a free managed migration. Open JSON, members CSV and theme ZIP exports mean near-zero lock-in.

Ghost Migration verdict

Verified today·6 sources checked

Ghost is the easiest builder to move into and out.

A native importer pulls content and images in from Substack, Medium, MailChimp, WordPress and Tumblr, there is a free managed migration, and the importer reads JSON and zip. It is just as easy to leave, with open JSON content, members CSV and theme ZIP exports available at any time.

How to plan the move

Ghost suits writers and publications moving a blog or newsletter onto it who value an easy import and the guarantee of an easy exit. It is less ideal if you are migrating a complex marketing site or store, since Ghost imports content, members and a theme rather than a general site.

Honest limits
  • The native importer covers Substack, Medium, MailChimp, WordPress and Tumblr, reads JSON and zip, and a free managed migration is offered.
  • Lock-in is effectively zero, with open JSON content, members CSV and theme ZIP exports re-importable anywhere, plus you can self-host the open-source software. On import, image paths must match the /content/images/ structure or images will not resolve.
  • Ghost is publishing-focused, so a migration moves content, members and a theme, not a general site or store.
Import
Substack/Medium/WP/Tumblr
Managed migration
Free
Export
JSON + members CSV + theme ZIP
Self-host
Open-source (same stack)
Lock-in
Effectively zero
View sources

This page covers migrating in and out of Ghost. SEO output and pricing live on their own pages.

What moves into Ghost, and can you leave?

Ghost migration configuration

Ghost gives you full ownership with open exports available at any time: a single JSON file for content (settings, staff, posts, pages, tags), members as a CSV, themes as a ZIP, and post analytics as a CSV. Everything re-imports at any Ghost site, which is why lock-in is effectively zero.

Export everything (open formats)text
# Settings > (Labs) Export / Import
content.json   # All Settings, Staff users, Posts, Pages, Tags, Members
members.csv    # id,email,name,note,subscribed_to_emails,complimentary_plan,
               # stripe_customer_id,created_at,deleted_at,labels
theme.zip      # your active theme
# all re-importable at any Ghost site, or reformat for another platform

Carry old URLs over with redirects.yaml: a 301: block for permanent moves and a 302: block for temporary ones, mapping old paths to new ones with regex support. Download, edit and re-upload it in Settings, Advanced, Labs.

Redirects (redirects.yaml)yaml
301:
  /2024/06/old-post/: /old-post/
  ^/blog/(.*): /$1
302:
  /promo/: /pricing/
# 301 permanent, 302 temporary; regex supported

On Ghost(Pro) map a domain you own by adding a CNAME and an A record at your registrar; SSL is auto-provisioned. A subdomain uses a CNAME to [subdomain].ghost.io with an A record on the apex; .eth and special-character domains are not supported.

Connect a domain (DNS)text
; Ghost(Pro): map a domain you own (auto SSL)
www    CNAME  [subdomain].ghost.io
@      A      178.128.137.126     ; root -> www redirect
; .eth and punycode/special-character domains are not supported

What imports cleanly into Ghost

ContentInto GhostDetailSource
Substack / Medium / MailChimpNative importerImport content and images directly from these platforms
WordPress / Tumblr / CMS toolsMigration guidesDocumented guides for WordPress, Tumblr, Medium and other CMS tools
Content + images togetherJSON + zipImporter accepts JSON and zip; add files to the same zip to import content and images together
Image pathsMust match structureImage paths must match the /content/images/ structure
Free managed migrationOfferedGhost offers a free migration service to move you in
Ghost to GhostUniversal importGhost-to-Ghost uses the universal import option

Source-to-Ghost mapping

ElementLands in Ghost asCaveatSource
Posts & pagesContent (JSON)Imported via the JSON content file
ImagesFrom the zipPaths must match /content/images/ to resolve
MembersMembers CSVExportable/importable as CSV with id, email, name, labels, Stripe id
Tags & settingsContent JSONSingle content JSON includes settings, staff, posts, pages, tags
ThemeRebuilt or downloadedThemes are ZIP files you download/upload; design is theme-based
Newsletter subscribersMembers CSVMember exports re-import to any Ghost site or reformat for others

Ghost migration timeline and rollout

PhaseWhat happensEffortSource
1. Export from sourceJSON / zip from the source platformLow; importer reads JSON + zip
2. Import content + imagesNative importer or managed serviceLow; content and images together
3. Import membersMembers CSVLow; CSV with Stripe ids and labels
4. Set redirectsredirects.yaml (301/302)Medium; map old URLs
5. Connect domainCNAME + A record, auto SSLLow; Ghost(Pro), owner only

What to verify before you commit to Ghost

  • Lock-in is effectively zero: Ghost gives you full ownership with open JSON and CSV exports available at any time, and because the software is open-source you can self-host the exact same stack rather than stay on Ghost(Pro)
  • Member and content exports re-import at any other Ghost site in the same format, or can be reformatted for other platforms, so your audience and content are never trapped
  • On import, image paths must match the /content/images/ structure or the images will not resolve, so package content and images in the same zip with the correct paths
  • Ghost is a publishing platform, so a migration in is content, members and a theme, not a general site with complex pages or a store; plan to rebuild non-publishing features elsewhere

Ghost Migration FAQ

How do I migrate to Ghost?

Ghost has a native importer that pulls content and images directly from Substack, Medium, MailChimp and other platforms, with documented guides for WordPress, Tumblr and other CMS tools. The importer reads JSON and zip, so put content and images in the same zip, and Ghost also offers a free managed migration service to move you in.

Can I export everything from Ghost?

Yes, at any time. Ghost gives you full ownership with open exports. A single JSON file holds your content, covering settings, staff, posts, pages and tags, with your members as a CSV, your theme as a ZIP and post analytics as a CSV. Everything re-imports at any Ghost site or can be reformatted for other platforms.

Does Ghost lock me in?

No, less than any other builder here. The exports are open JSON and CSV formats available anytime, and member and content exports re-import at any Ghost site. Because Ghost is open-source under the MIT license, you can self-host the exact same software instead of Ghost(Pro). Your audience and content are never trapped.

What is the catch when importing into Ghost?

Image paths. When you import, the image paths in your files must match the /content/images/ structure, or the images will not resolve. So package your content and images in the same zip with the correct paths. Beyond that, the importer is fast and a free managed migration is available.

Can I move my newsletter members to Ghost?

Yes. Members import and export as a CSV that includes the email, name, labels and Stripe customer id. So you can bring your newsletter audience across and, just as importantly, take it with you again if you leave. That portability is a core part of Ghost's appeal for publishers.

Sources & verification

Verified by ComparEdgeMethod: Vendor docs, official pages, and selected independent sources
SourceWhat was checkedLast checked
Ghost OfficialOfficial product pageJuly 10, 2026
Ghost Help ExportsHelp ExportsJuly 10, 2026
Ghost Help ImportsHelp ImportsJuly 10, 2026
Ghost Help RedirectsHelp RedirectsJuly 10, 2026
Ghost Help SeoHelp SeoJuly 10, 2026
Ghost Help Using Custom DomainsHelp Using Custom DomainsJuly 10, 2026

Every fact on this Ghost page is tied to a named source and a verification date. Freshness-sensitive figures trace to the sources above; verify against the vendor before relying on them.