← All playbooks
Publishing migration

Squarespace → Ghost

Move a Squarespace blog into Ghost with the official Squarespace migrator and an XML export. Categories become tags. Squarespace only exports one primary blog and skips store, portfolio, drafts, and style. Plan redirects, because Ghost slugs will not match Squarespace date paths.

Typical timeline7–14 business days20–40 hours active work
Statusneeds review
Source profileSquarespace documentation reviewed 2026-10-30
Destination profileGhost documentation reviewed 2026-10-30
Documentation date
Review window
Evidence4 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Squarespace

Reasons to stay
  • Beautiful templates and integrated hosting let small teams publish without technical operations
  • Editors get a purpose-built publishing workflow instead of raw files
Reasons to leave
  • Structured content, code control, and complex integrations are restricted
  • Themes, extensions, and content models add maintenance and portability constraints
New platform

Ghost

What gets better
  • A focused publishing and membership platform is fast and pleasant for writers
  • Editors get a purpose-built publishing workflow instead of raw files
What gets worse
  • Its narrower ecosystem is less suitable for complex sites and custom application behavior
  • Themes, extensions, and content models add maintenance and portability constraints
Best of the move

Ghost: A focused publishing and membership platform is fast and pleasant for writers. This removes a major source-side concern: Structured content, code control, and complex integrations are restricted.

Worst of the move

What you lose: Beautiful templates and integrated hosting let small teams publish without technical operations. What you inherit: Its narrower ecosystem is less suitable for complex sites and custom application behavior.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome12 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 4, Manual rebuild: 3, Not transferred: 5.
Clean0
Partial4
Manual3
Lost5
Mapping route7 of 9 fields have a destination path

This timeline assumes

  • One primary blog, up to 1,000 posts and pages, and 5 GB of media
  • You can log into Squarespace and generate the WordPress XML export Ghost asks for.
  • Squarespace stays public until Ghost images no longer load from Squarespace.
  • Store, member areas, and extra blogs are out of this playbook or have their own plan.
  • The Ghost site is built on a preview host before DNS changes.
02What transfers

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Primary blog posts and pagespartialcriticalGhost Admin has a Squarespace migrator under Settings → Advanced → Import/Export. You open Squarespace, export XML, and upload that file. Ghost confirms post and page counts before import.Compare those counts with the live Squarespace blog.
Secondary blog pageslosthighSquarespace exports only one selected primary blog.Export or copy every secondary blog separately.
Store, portfolio, calendar, album, cover, and index pageslostcriticalSquarespace lists these page types as excluded from the WordPress XML export.Rebuild required pages in Ghost or keep them elsewhere.
Drafts, style settings, and custom CSSlosthighSquarespace does not include these in the export.Capture drafts, screenshots, and CSS before you export.
CategoriespartialmediumGhost converts Squarespace categories to tags. The first category becomes the primary tag.Approve the tag map and check primary tags after import.
Images still hosted on SquarespacepartialcriticalImported HTML can keep Squarespace image URLs. If you cancel Squarespace too soon, the images die.Re-upload images into Ghost. Keep Squarespace online until hosts change.
URLs and date pathsmanualcriticalSquarespace blogs often use /blog/yyyy/mm/dd/slug. Ghost uses /slug/. Ghost documents redirects after a Squarespace move.Add a redirects.json for the old date paths. Test renamed slugs one by one.
Embeds and unusual blockspartialhighAudio, video, product, header, footer, and sidebar blocks export poorly or not at all.Inventory blocks by route and recreate the ones that still matter.
Members and newslettermanualhighSquarespace email campaigns and member areas do not become Ghost members.Export the mailing list separately if you have lawful consent.
Theme and designlosthighA Squarespace template is not a Ghost Handlebars theme.Choose a Ghost theme and compare key templates.
CommentslostmediumSquarespace comments do not become Ghost comments.Archive them or add a third-party comment system.
SEO metadatamanualcriticalTitles, descriptions, and canonicals need a Ghost pass.Crawl both sites before DNS.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Squarespace XML exportGhost posts and pages via the Squarespace migratorautomaticUpload the file Ghost asks for.
Post title and bodyGhost title and editor cardstransformRepair embeds and leftover markup.
CategoryGhost tag, first category as primary tagtransformAudit primary tags.
Squarespace date pathGhost slug plus a redirecttransformWrite redirects.json before DNS.
Featured imageGhost feature imagetransformRe-upload if the host is still Squarespace.
AuthorGhost staff usermanualCreate staff before bylines matter.
PageGhost pagetransformOnly pages that were in the XML.
Store or portfolio pageNo destinationunsupportedRebuild or exclude.
Draft or custom CSSNo destinationunsupportedCapture before export.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Keep the Squarespace XML, a URL crawl, and design evidence before Ghost imports.

  1. Export the primary blog XML.
  2. Crawl public URLs and image hosts.
  3. Screenshot templates and custom CSS.
  4. Export any mailing list you will move.
  5. Store files with checksums.

Proof to capture: XML hash, post count, URL count, and a named restore owner.

Transformation · Ghost Settings → Advanced → Import/Export

Ghost Squarespace migrator

Load the XML without guessing counts.

  1. Enter the Squarespace URL and open Squarespace settings from the migrator.
  2. Download the XML and upload it back to Ghost.
  3. Confirm the post and page counts Ghost shows.
  4. Do not change DNS yet.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · Ghost redirects.json plus the media library

Redirects and media

Keep old Squarespace links and images alive.

  1. Map /yyyy/mm/dd/slug paths to Ghost slugs.
  2. Re-upload images that still point at Squarespace.
  3. Test renamed posts that Squarespace redirected internally.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Content

Images stay on Squarespace

criticalpossible likelihood

Ghost posts still request static1.squarespace.com.

Consequence
The blog breaks when you cancel Squarespace.
Mitigation
Re-upload before cleanup.

Stop if: A high-traffic post still hotlinks Squarespace.

Routing

Date URLs 404

criticallikely likelihood

Old /2020/04/12/slug links miss the Ghost /slug/.

Consequence
Search and newsletters hit 404s.
Mitigation
Install redirects.json and test the crawl.

Stop if: A high-value Squarespace URL fails after one redirect fix.

Export

You exported the wrong blog

highpossible likelihood

Squarespace only exports the primary blog you selected.

Consequence
A second journal never arrives.
Mitigation
List every blog before export.

Stop if: A required blog is missing from the XML.

Routing

Trailing-slash routes fight Ghost

highpossible likelihood

Ghost adds trailing slashes that Squarespace did not use.

Consequence
Redirect loops or 404s.
Mitigation
Test both slash variants.

Stop if: A cornerstone URL loops.

06Precise timeline

Do the work in this order.

Estimate forOne primary blog, up to 1,000 posts and pages, 5 GB of media
Total elapsed7–14 business days
Active work20–40 hours
BufferAdd time for extra blogs, commerce pages, or a large image re-upload.
01
Days 1–3Inventory Squarespace2–3 days
02
Days 3–5Export XML1–2 days
03
Days 5–10Import and repair3–5 days
04
Days 10–13Switch DNS1–2 days
05
Days 13–14Observe and close2–4 days
  1. Days 1–3 · inventory

    Inventory Squarespace

    4–8 hours active2–3 days elapsedOwner review waiting
    • List blogs, page types, and mailing lists.
    • Crawl URLs.
    • Choose a Ghost theme.
    Stop / go checkpoint

    Export?

    Go when: The primary blog and exclusions are signed.

    Stop when: A store or extra blog is in scope with no plan.

  2. Days 3–5 · backup

    Export XML

    2–4 hours active1–2 days elapsedSquarespace export waiting
    • Download the XML.
    • Capture CSS and drafts.
    • Record counts.

    Depends on: inventory

    Stop / go checkpoint

    Import?

    Go when: The XML hash and counts exist.

    Stop when: The export is the wrong blog.

  3. Days 5–10 · pilot

    Import and repair

    8–18 hours active3–5 days elapsedImage work waiting
    • Run the Ghost migrator.
    • Fix tags, embeds, and images.
    • Write redirects.

    Depends on: backup

    Stop / go checkpoint

    Preview OK?

    Go when: Sample posts, images, and redirects pass.

    Stop when: Images still depend on Squarespace.

  4. Days 10–13 · cutover

    Switch DNS

    3–6 hours active1–2 days elapsedDNS and SSL waiting
    • Freeze Squarespace edits.
    • Import any last posts.
    • Point the domain at Ghost.

    Depends on: pilot

    Stop / go checkpoint

    Ghost is public?

    Go when: URLs, SSL, and images pass.

    Stop when: A cornerstone URL 404s.

  5. Days 13–14 · observe

    Observe and close

    3–4 hours active2–4 days elapsedSearch and newsletter cycle waiting
    • Watch 404s.
    • Keep Squarespace readable.

    Depends on: cutover

    Stop / go checkpoint

    Close rollback?

    Go when: No trigger fires.

    Stop when: Images or redirects regress.

07The point of change

Cut over with a way back.

Go live

Cutover

Make Ghost the public site without losing the last Squarespace posts.

Recommended window: A weekday with DNS and Ghost owner available.

  1. Freeze Squarespace publishing.
  2. Re-export and import the final delta if needed.
  3. Install redirects.
  4. Switch DNS.
  5. Run blocking URL and image checks.

Proof to capture: Ghost serves the domain. Counts match. Images do not use Squarespace.

Return to safety

Rollback

Return the domain to Squarespace without losing Ghost-era posts you still want.

Deadline: Before you cancel Squarespace or delete the XML.

  1. Restore Squarespace DNS.
  2. Export Ghost posts written after cutover.
  3. Apply only reviewed posts back to Squarespace if needed.
  4. Keep the XML.

Proof to capture: Squarespace serves the domain again.

Rollback immediately when
  • High-traffic images still on Squarespace
  • Date URLs 404 after one redirect fix
  • The wrong blog was imported
  • Redirect loop on a cornerstone URL
  • A blocking check cannot be fixed in two hours
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingPost and page countsCompare the XML and Ghost.Counts match or variances are signed.Count sheet.
V-02BlockingImage hostsInspect a stratified sample.No required image depends on Squarespace.Image-host report.
V-03BlockingPrimary tagsCheck posts that had several categories.Approved primary tag.Tag sample.
V-04BlockingDate pathsRequest old /yyyy/mm/dd/slug URLs.One 301 to the Ghost slug.Redirect results.
V-05BlockingSlash variantsRequest URLs with and without a trailing slash.No loop.Slash test.
V-06BlockingTitles and canonicalsCrawl key posts.Approved metadata. No accidental noindex.SEO sample.
V-07Theme templatesCompare home, post, and page at two breakpoints.Accepted layout.Screenshots.
V-08BlockingSingle siteInspect Squarespace and Ghost publishing.Ghost alone is public.DNS and publish screenshots.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: Seven stable public days, no required Squarespace image hosts, and a signed report.

  1. Archive the XML, redirects, and evidence.
  2. Re-upload leftover Squarespace images.
  3. Keep Squarespace readable through the retention window.
  4. Cancel Squarespace only after images are independent.
  5. Revoke migration users.
  6. Schedule the next Ghost backup and redirect review.
10Experiences from the field

When the plan met reality.

First-hand accounts are preferred. Vendor case studies are labeled, and every note below is an editorial paraphrase—follow the link for the full context.

First-person accountMatt Rutherford · Matt Rutherford

From Squarespace to Ghost - migration2022

Matt Rutherford moved his site from Squarespace, where the newsletter and blog were separate chores, to hosted Ghost (Pro) in February 2022. Ghost support did not then offer a Squarespace migrator. Content arrived but needed a lot of manual fixing to read well. He kept both subscriptions for a couple of weeks while he cleaned posts, and called DNS the scariest step. He warns Ghost is simpler than WordPress and fits a newsletter with a light blog, not a complex site.

What they recommend
  • Keep Squarespace paid until posts look right on Ghost. He ran both for a couple of weeks.
  • Budget a manual edit pass even if an importer now exists. His archive needed fixing after the copy.
Worth noticing
  • The reason to move was write-once publishing, not a cheaper host.
  • DNS cutover was the step he feared more than the content copy.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. Ghost: migrating from SquarespaceAccessed 2026-10-30
  2. Squarespace: export your siteAccessed 2026-10-30
  3. Ghost: import contentAccessed 2026-10-30
  4. Ghost: redirectsAccessed 2026-10-30