How to Migrate Squarespace to WordPress
By João Piedade · Updated
To migrate Squarespace to WordPress, set up WordPress and a theme first, then export your content from Squarespace and import it. Copy your images off Squarespace's servers, match or redirect your old URLs, and point your domain at WordPress. Cancel Squarespace last, once every post, image and redirect works on the new site.
Squarespace's free export does part of this, but it includes only one blog page, leaves out your design, store and some blocks, and on a self-hosted WordPress site it can leave your images on Squarespace. Below are the routes, the steps and the gaps to plan for. We checked every claim about Squarespace, WordPress, WordPress.com and Google on 13 November 2026, on their own help pages.
Which route fits you
- A small site with one blog, on self-hosted WordPress: use Squarespace's free export and the WordPress Importer, then fix the images by hand or with a plugin.
- You're moving to WordPress.com: use WordPress.com's Squarespace importer. Squarespace recommends it if you want to keep your images.
- A few blog posts: copy and paste them.
- Dozens or hundreds of posts, more than one blog page, or images you need off Squarespace: Blog Porter imports the published posts and copies their images into your Media Library. Rebuild your other pages separately.
- You want the design rebuilt too, and don't want to do it yourself: hire a developer or migration service.
Squarespace to WordPress migration methods compared
| Route | What it moves | Limits | Cost |
| Squarespace export + WordPress Importer | Layout pages, one blog page with its posts and up to 1,000 comments per post, text and image blocks | Other blog pages, drafts, video, audio and product blocks, store pages and your design are left out. Images can stay linked to Squarespace. | Free |
| WordPress.com's Squarespace importer | The same export file. WordPress.com lists posts, pages, comments, tags, images, audio and embedded video. | The same export limits. WordPress.com says it may not include all images. Custom permalinks need a paid plan. | Free importer, paid plan for custom permalinks and plugins |
| Copy and paste | Anything you can see on your live site | Slow. You set every image, date, slug, category and tag yourself. | Free, but takes your time |
| Developer or migration service | Whatever you agree, which can include the design | Scope and quality vary. Ask exactly what's included before you pay. | A quote |
| Blog Porter | Published posts from a public blog page, with slugs, dates, authors, categories, tags, excerpts, approved comments, SEO titles and descriptions, and their images copied into the Media Library | Posts only: no pages, design, menus, store or redirects. No drafts, or posts behind a password or member area. Commenters' emails aren't public, so they don't come across. | $0.20 per post, minimum 5 posts, paid once |
Sources: Squarespace's export help page, WordPress.com's Squarespace import guide, and what Blog Porter moves from Squarespace.
You can combine routes, such as Squarespace's export for your pages and Blog Porter for the posts. If you do, move the posts the export created to the trash before Blog Porter runs, so the new copies keep the original slugs.
Before you start
- List what you're moving. Go through your Squarespace Pages panel and note every page, blog page, store, form and member area. Why: Squarespace's export covers only some page types, and Blog Porter moves posts only, so you can plan the rest now instead of after launch.
- Find every blog page. Each blog page, such as
/blogor/news, holds its own posts, and Squarespace's export includes only one of them. Why: a second blog is easy to miss until its posts are gone. - Save your list of URLs. Open
yourdomain.com/sitemap.xmland save a copy. Squarespace's sitemap lists your pages and posts, but not password-protected pages or pages hidden from search. Copy any redirects you already have from Developer tools → URL mappings too. Why: you'll test these old URLs after launch, and both lists disappear once your domain moves. - Make sure every post is published and public. Your site needs to be published with its availability set to Public, and Squarespace can't export from a trial site. Drafts don't export, and Blog Porter can't read posts behind a site or page password, a paywall or a member area. Why: every method reads only what it can reach.
- Save what no tool moves. Download your products, form submissions and mailing lists (step 9), and keep your own copies of uploaded videos, which Squarespace says can't be downloaded like images. Why: it's easiest while everything is still live.
Step 1: Choose hosting and install WordPress
Decide where WordPress will live:
- Self-hosted WordPress runs on a hosting account you choose. WordPress recommends PHP 8.3 or later, MySQL 8.0 or later or MariaDB 10.11 or later, and HTTPS support. Many hosts install WordPress for you.
- WordPress.com is hosted for you. Its importer reads Squarespace's export file, and installing plugins is available on all paid plans, not the free one.
Blog Porter is a plugin, so it needs a site where you can install plugins. It needs WordPress 6.4 or later and PHP 7.4 or later.
Build the site before your domain moves. While you work, you can tick Discourage search engines from indexing this site under Settings → Reading, as long as you untick it at launch.
Why: the posts need somewhere to land, and you can build and check the whole site while Squarespace keeps serving visitors.
Step 2: Pick a theme and rebuild your pages
Your Squarespace template doesn't come with you. Squarespace's export leaves out style settings, custom CSS, and content in page-specific headers, footers and sidebars, and it skips album, cover, index, portfolio, store, calendar and other page types.
- Choose a theme under Appearance → Themes.
- Rebuild your menus, header and footer.
- Recreate pages the export doesn't cover, and give each WordPress page the same slug it had on Squarespace, such as
aboutorcontact.
Why: matching page slugs means old links to those pages keep working, with nothing to redirect.
Step 3: Export from Squarespace
If you're using Squarespace's export, its help page lists the steps:
- Open the Import & export content panel.
- Click Export, then the WordPress icon. It's the only format on offer.
- If you have more than one blog page, choose the one to export. Only that one is included.
- Wait while Squarespace builds the file, then click Download to save the
.xmlfile.
Drafts, dropdowns, and video, audio and product blocks don't export. Linked .pdf files are in the file, but Squarespace says WordPress can't import them, so download any your posts link to. How to export your Squarespace blog covers the export in detail.
Why: even if you move the posts another way, the export is a free copy of your pages and a backup of your text.
Step 4: Import your posts
Pick one way in for the posts:
- WordPress Importer (self-hosted). Go to Tools → Import, install the WordPress importer and click Run Importer. Upload the
.xmlfile, map each author to a WordPress user, tick Download and import file attachments, and start. If a big file runs out of server memory, WordPress's import guide suggests raising the limit or splitting the file. - WordPress.com importer. Go to Tools → Import, choose Squarespace and upload the file. WordPress.com runs the import in the background and emails you when it's done, and says to keep your Squarespace site public throughout.
- Blog Porter. Install the plugin, enter your blog page's public address, such as
yoursite.com/blog, and run the free analysis. It reads the blog page's full public post list, not just recent posts, with no file to upload. It lists every post it found and the exact price before you pay: $0.20 per post, minimum 5 posts, paid once, so a 100-post blog costs $20. It keeps slugs, publish dates, authors, categories and tags when Squarespace provides them, and imports in resumable batches.
Whichever you use, compare the number of posts in WordPress with the number on Squarespace.
Why: a matching count is the quickest proof that nothing was skipped.
Step 5: Move your images off Squarespace
Check this step carefully. Squarespace's export page says that on a self-hosted WordPress site using the WordPress Importer, your images might not migrate: WordPress can keep links to the images on Squarespace instead, and those links stop working after you cancel. Squarespace serves images from addresses starting with images.squarespace-cdn.com, static.squarespace.com or static1.squarespace.com, and says these can't be redirected.
To find them, search your WordPress posts for squarespace-cdn, then static1.squarespace and static.squarespace. Every result has at least one image that still loads from Squarespace. Then fix them one of these ways:
- Blog Porter copies available inline and featured images into your Media Library while it imports, points each post at the new copy, and lets you retry any that fail.
- Auto Upload Images, a free plugin, downloads external images when you save a post and swaps in the new links. It runs on save, so every imported post has to be saved again, and it handles up to 50 images per save.
- By hand. Download each image from your live site, upload it to the Media Library, and swap it into the post. Fine for a few posts.
Older guides often recommend Import External Images. WordPress.org closed it on 27 July 2023 for a security issue, and it's no longer available.
For videos you uploaded to Squarespace, upload your own copies to WordPress or a video host and add them back to the posts.
Why: images left on Squarespace depend on an account you're about to cancel.
Step 6: Bring across every blog page
Squarespace's export includes only one blog page, and its help page doesn't offer a way to add the others to the same file. For each extra blog page, such as /news, run a separate Blog Porter analysis and import it into the same WordPress site (each is priced on its own, with the 5-post minimum), or copy and paste the posts if there are only a few. Give each blog its own category to keep them apart. WordPress uses one permalink structure for all posts, so only one blog page can keep its exact URLs. Redirect the others (step 10).
Why: without this step, every blog except the one you exported is lost when you cancel.
Step 7: Match your Squarespace URLs
Squarespace says blog post URLs always begin with the blog page's slug, as in /blog/my-post. To keep them:
- In WordPress, go to Settings → Permalinks.
- Choose Custom structure and enter
/blog/%postname%/, with your own blog page's slug in place ofblog.%postname%is the post's slug. - Click Save Changes.
- Create a page with the slug
blogand choose it as the Posts page under Settings → Reading, so your post list stays at/blog.
On WordPress.com, the custom structure needs a paid plan.
Some Squarespace blogs add the date to post URLs, such as /blog/2016/5/18/my-post. Squarespace uses the date the post was created, and WordPress writes months and days with two digits, such as 05, so copying the date structure often won't match. Keep /blog/%postname%/ and redirect the dated addresses with one rule instead. Keep your Squarespace URLs in WordPress has the rule, plus categories, tags and the RSS feed.
Why: if the URLs match, old links and search results keep working, with no redirect map to maintain.
Step 8: Check posts, comments and SEO details
Open a sample of posts side by side, old and new. Check the title, date, author, categories, tags, formatting, links and embeds. Squarespace's export leaves out video, audio and product blocks, so check the posts that used them.
- Comments. Squarespace's export includes up to 1,000 comments per post. Blog Porter imports the approved comments readers can see, with replies threaded, but not commenters' email addresses, which Squarespace doesn't make public, so they show WordPress's default avatar.
- SEO titles and descriptions. Squarespace's export page doesn't list them among what it includes, so check a few posts. Blog Porter imports the SEO title and description you set in Squarespace into Yoast SEO, Rank Math or SEOPress, if one is active.
Why: problems are easier to fix before visitors and Google arrive.
Step 9: Replace what doesn't move
Some parts of a Squarespace site have no WordPress import. Save the data while you can, then rebuild the feature with a plugin.
- Store. Product pages and product blocks don't export. In Squarespace's Products panel, Export all downloads your products as a
.csvfile. WordPress.com's guide shows how to import that file into WooCommerce, the free store plugin, matching the columns as you go. - Forms. Form blocks don't move, so rebuild them with a form plugin. Squarespace lets each form store submissions in Contacts, a Google Drive spreadsheet, Mailchimp or a
.csvdownload, among others. Save the ones you need. - Member areas and paid content. Nothing in Squarespace's export moves members. Rebuild the area with a membership plugin. Squarespace says that when you cancel, Digital Products are paused for 30 days and members lose access, so plan the switch for your members first.
- Email Campaigns. After you cancel, Squarespace says automated campaigns stop sending, but you can still export mailing lists.
- Acuity Scheduling is a separate subscription that stays active when you cancel the site.
Why: these are separate jobs, so give them their own time instead of discovering them on launch day.
Step 10: Set up 301 redirects
Google recommends server-side permanent redirects (301 or 308) straight to the new URL for every URL that changes, kept generally at least a year, and not sending many old URLs to your home page. Dated post URLs, second blog pages, category pages and the /blog?format=rss feed usually need one.
On WordPress, the free Redirection plugin makes 301 redirects, supports regular expressions, imports CSV files and logs 404 errors.
Squarespace's own redirects, its URL mappings, only work from domains connected to your Squarespace site, so they stop working when your domain moves. Copy them into your redirect plugin.
Why: without redirects, old links and search results lead to "not found" pages.
Step 11: Move your domain
Whichever applies below, Google suggests lowering your DNS TTL to a few hours at least a week before, so the change spreads faster.
If you bought the domain from Squarespace, you can keep it there and point it at WordPress, or transfer it away.
- Point it. In Squarespace's DNS settings, the domain must use Squarespace nameservers. Delete the Squarespace Defaults records, then add the records your host gives you under Custom Records, usually an
Arecord for@and aCNAMErecord forwww. Squarespace says it can take 24 to 48 hours to start working. - Transfer it. Screenshot your DNS settings first, as most providers can't keep them. Remove DNSSEC if you added it, turn off Domain Lock, then click Request transfer code. Squarespace emails the code, usually within 24 hours, and the transfer can take up to 15 days. A domain bought or transferred in the last 60 days may be locked. While a transfer is pending you can't edit DNS, and a free domain stays free only while it's registered with Squarespace.
Pointing is quicker. If you want to transfer, consider pointing first and transferring once the new site is settled, so a pending transfer doesn't block DNS changes at launch.
If you use Google Workspace or another email service on the domain, recreate its MX and other email records at the new provider. Squarespace says you keep managing Google Workspace through Squarespace until you cancel it.
If you bought the domain elsewhere, change its DNS records at that registrar to the ones your WordPress host gives you.
Why: until the domain points at WordPress, visitors still see the Squarespace site.
Step 12: Check the site after launch
- Untick search engine blocking. Under Settings → Reading, make sure Discourage search engines from indexing this site is off.
- Test your old URLs. Open the URLs you saved from the sitemap, including your oldest posts, any dated ones, a category and the blog page. Each should load the same content, or redirect to it in one step with a 301.
- Search once more for
squarespace-cdn. It should come back empty. - Tell Google. In Search Console, submit your new sitemap. WordPress has a built-in one at
/wp-sitemap.xml, unless an SEO plugin replaces it. Use the Change of Address tool only if your domain itself changes. Google says it's not for moves where only the hosting changes. - Watch Search Console for a few weeks. Google says to expect temporary ranking fluctuation, and that a medium-sized site's new URLs can take a few weeks or more to show. A growing list of "not found" pages is the thing to fix.
Why: these checks catch a missed redirect or a mismatched permalink while the old site is still there to compare with.
Step 13: Cancel Squarespace last
When you cancel your website subscription, the site stops at the end of the billing cycle and visitors see a "Website expired" message. Squarespace keeps your data so you can reactivate later. Domains, Google Workspace and other Squarespace subscriptions keep running and billing until you cancel each one.
Deleting the site is a separate step that permanently removes its content. Don't do it until a search of your WordPress posts for squarespace-cdn comes back empty and you've saved everything from step 9.
If you're using Squarespace's URL mappings to redirect an old domain to a new one, they stop when the site expires, so keep the plan running for as long as you need them.
Why: Squarespace is your fallback copy, and some of your images may still live there.
The checklist at a glance
- List every page, blog page, store, form and member area.
- Save your sitemap, URL mappings, products, form submissions, mailing lists and videos.
- Publish every post you want to keep, and set the site to Public.
- Install WordPress and a theme, and rebuild your pages with their old slugs.
- Export from Squarespace and import, or import the posts with Blog Porter.
- Bring across every extra blog page.
- Copy every image off Squarespace's servers.
- Set permalinks to
/blog/%postname%/. - Spot-check posts, comments and SEO titles.
- Rebuild the store, forms and member areas.
- Add 301 redirects for every URL that changes.
- Lower your DNS TTL, then point or transfer the domain.
- Test old URLs, submit your sitemap and watch Search Console.
- Cancel Squarespace last, and delete it only when nothing depends on it.
Frequently asked questions
Should I move from Squarespace to WordPress?
Move if you want what Squarespace doesn't offer, such as your own choice of host, plugins and control of your files. In exchange, a self-hosted site is yours to maintain: WordPress applies minor and security updates automatically on most sites, but you install major releases, update plugins and themes, and keep backups. If Squarespace already does what you need, staying is a reasonable choice.
Can I migrate Squarespace to WordPress for free?
Mostly. Squarespace's export, the WordPress Importer and copying by hand are free. You still pay for hosting, and spend time fixing images, extra blog pages and redirects. Blog Porter costs $0.20 per post, minimum 5 posts, paid once.
Will I lose my Google rankings?
Not if you keep your URLs or redirect them. Matching URLs make it a move without URL changes for Google, and for changed URLs it recommends 301 redirects kept for at least a year. Expect some temporary fluctuation while Google recrawls.
Why are my images still loading from Squarespace?
The WordPress Importer can keep links to Squarespace's image servers instead of copying the files, and Squarespace says those links stop working after you cancel. Search your posts for squarespace-cdn and copy each image into your Media Library (step 5).
Will my Squarespace design transfer?
No. Squarespace's export leaves out style settings and custom CSS, and your template stays on Squarespace. Choose a WordPress theme and rebuild the look.
Can I keep my domain name?
Yes. Keep it at Squarespace and point it to your WordPress host, or transfer it to another registrar (step 11).
Do I need to keep paying for Squarespace?
Until you've checked the new site, yes. After you cancel the website, a domain bought through Squarespace keeps billing until you cancel or transfer it, and Google Workspace until you cancel it.
How do I move more than one Squarespace blog?
Squarespace's export includes only one blog page, and its help page doesn't offer a way to add the others. Copy the other blogs' posts by hand, or run a separate Blog Porter analysis for each blog page. Then give each blog its own category and redirect the URLs that change.
Can I move a trial or expired Squarespace site?
Not a trial site: Squarespace can't export from one, and a trial site is private, so tools that read the public site can't see it either. For an expired site, Squarespace says you might be able to export after reactivating the subscription, but the content may already be deleted.
What happens to my Squarespace store?
Products aren't in the site export. Download them with Export all in the Products panel, import the .csv file into WooCommerce, then set up shipping and payments in WordPress.
Should I use WordPress.com or self-hosted WordPress?
WordPress.com hosts WordPress for you, and Squarespace recommends its import if you want to keep your images, because it copies them to WordPress's servers. Custom permalinks and plugins need a paid plan. Self-hosted WordPress lets you pick your host, and you look after updates and backups.
Every Squarespace guide, in order
- How to export your Squarespace blog: Squarespace's export, what it leaves out, and the other ways to move your posts.
- Keep your Squarespace URLs in WordPress: match your old URLs, and redirect the ones that change.
- Install the Blog Porter plugin: set up the free analysis in WordPress.
- Squarespace to WordPress with Blog Porter: what moves, what doesn't, and the price.
Ready to migrate your blog?
Don't stay stuck on your current platform. These are a few Blog Porter customers that already saved time moving their content.
“Amazing service and works like an absolute charm, just imported 109 posts in minutes! saved me days of work.”
“Thank u so much, it saved me a lot of time 🙏”
“Wow, fast response! And thank you. I discovered you on Reddit. So glad I did because I'm busy and moving a site is a lot of work.”