Squarespace to Astro
Migrate from Squarespace to Astro
Squarespace is a good answer for a site somebody builds once and edits occasionally. It stops being one when the layout needs to do something the template does not offer, when the same content is being retyped across pages, or when every integration is a code block somebody pasted in and nobody has looked at since.
A migration like this usually takes 2–5 weeks
What actually migrates.
| What you have | What happens | Why |
|---|---|---|
| Pages and blog posts | Rebuild Made again in Astro. The old version is a reference rather than something that can be imported. | Supported page content and one blog come out as WordPress XML, which is a useful starting point for the words. The page structure that presented them is not in the file and gets rebuilt. |
| Products and commerce | Replatform Goes somewhere else entirely. Astro is not a replacement for this, so the question is which system takes it on. | Product data exports separately as CSV, without reviews, featured images, alt text or variant images. The storefront, the checkout and the orders are not something Astro replaces, so the first decision is where selling lives afterwards. |
| Galleries, audio and video | Rebuild Made again in Astro. The old version is a reference rather than something that can be imported. | The layout and the block behavior do not come through the export. Media has to be inventoried and recovered separately, because Squarespace does not bulk-export images and uploaded video from a site. |
| Code injection | Reconfigure The same thing, set up again. Nothing is recreated, but it has to be pointed at the new site by hand. | Every script is identified by purpose before anything moves. Analytics, consent, chat and the rest are then implemented deliberately in the new codebase, and the audit routinely finds half of them loading nothing. |
| URLs | Reconfigure The same thing, set up again. Nothing is recreated, but it has to be pointed at the new site by hand. | Existing addresses are inventoried and preserved wherever possible, and anything that has to change gets an explicit redirect rather than disappearing at launch. |
Where this migration gets complicated.
- 01
The export is a WordPress file, and it leaves things behind
Squarespace exports to WordPress XML, which is a real export and a partial one. Products, galleries, audio and video blocks do not come across, and one blog comes out rather than several. Plan the gaps before quoting, not after importing.
- 02
Blocks are layout, not content
A Squarespace page is an arrangement of blocks, and the export flattens it. The words survive; the reason they sat in two columns with an image between them does not. Every page that used the editor as a layout tool is rebuilt by hand.
How the migration works.
-
Audit
Every page, collection and line of code injection, with the export taken early to find its gaps.
-
Rebuild
Templates become components, block arrangements become chosen layouts, and what the export omits is rebuilt.
-
Migrate
Supported content imported and checked by count, media rehosted, every known address preserved or redirected.
-
Hand over
The repository, the migration map and documentation written for somebody who was not here.
What is included.
Every migration includes the front-end rebuild, the content and asset move, the integration work, URL coverage, QA and post-launch monitoring. What changes with the platform is how hard each one is, which is what the rest of the page is for.
-
Design rebuild
Rebuilt as components, not approximated.
-
Responsive development
Desktop, tablet and mobile, built and checked.
-
CMS architecture
Collections and fields mapped before build.
-
Content migration
Migrated and checked against the source.
-
Asset migration
Collected, compressed and rehosted.
-
Forms and integrations
Tested through to the final record.
-
URL coverage
Every known public address preserved or deliberately redirected.
-
Metadata and canonicals
Preserved wherever possible.
-
Search footprint preservation
URLs inventoried before and checked after.
-
Pre-launch QA
Forms, templates and old URLs verified.
-
Post-launch support
One week of indexing and traffic checks included.
Search visibility can move during a migration. The goal is to preserve what search engines already understand, and to catch what changed quickly after launch.
And it is yours at the end. The repository sits in your organization rather than mine, the handoff documentation is written for somebody who was not here, and nothing about the project requires me: another developer or your own team can operate it.
Leaving Squarespace does not have to mean handing every edit to a developer.
This is the real question behind the CMS decision, and the answer is that it depends on what you choose rather than on Astro. A headless CMS such as Sanity gives editors an interface, a preview and a publish button, and keeps the front end in code. Content collections put the content in the repository, which is cheaper and only suits a team happy in a pull request. Choosing wrong is the mistake people feel a year later, so it gets decided before the rebuild rather than after it.
-
01
Content Collections, in the repository
For a team that publishes rarely and is happy in a pull request. The content is files beside the code, typed and checked at build time, with no service to pay for and nothing to keep running. It stops suiting you the day somebody outside engineering needs to publish without help.
-
02
A headless CMS, such as Sanity
For a team that publishes regularly, or where the person writing is not the person deploying. Editors get a real interface, the model is explicit, and the site reads it at build time. It is another system to configure and pay for, and the modeling is the part that decides whether editors can work on their own.
-
03
No CMS at all
For a site whose pages change a few times a year. Everything lives in components, changes go through the same review as any other change, and there is no editorial layer to maintain. Honest for a small site, and the wrong answer the moment a blog is added.
Content Collections against a headless CMS, and how the choice is made.
A migration is not finished when the new site looks right.
These are acceptance criteria rather than features. The codebase, the site inventory and the connected systems are each checked against what you started with, and the answer is a count rather than an opinion.
-
01 Codebase
A codebase your team owns
Components, routes and styles rebuilt deliberately, not cleaned up from exported markup.
Verified by Repository and component structure
-
02 Site
Everything accounted for
Collections, content, metadata and existing addresses checked against the source.
Verified by Source inventory and migration checks
-
03 Systems
Handoffs that actually arrive
Forms, analytics and CRM checked at their destination rather than at the button.
Verified by Submissions, events and records
The migration is complete when these pass, not when the homepage looks right.
The figures above are an illustration of the report's shape. Yours are counted from your own site.
Built for people and agents to work on.
Moving to code changes how the site can be maintained. Marketing works through the CMS. Developers work against components and routes. A coding agent works against the same repository, the same documentation and the same review as a developer.
The important part is not that an agent can write code. It is that the project is structured well enough for its changes to be understood, reviewed and reversed.
-
Marketing
Editor or AI assistant CMS Preview Publish
On the headless CMS answer above. Choose content collections instead and this lane runs through the repository and the review with the developers, which is exactly why that decision comes before the rebuild rather than after it.
-
Developers
Branch Components and routes Review Deploy
The same workflow as any other repository, which is what makes a second developer able to pick it up.
-
Coding agents
Project instructions Branch Review Deploy
Against the real repository, under the same review a person gets. An agent is only as safe as the documentation and the tests it is working against, which is why those are deliverables rather than extras.
Integrations
Changing the frontend doesn't mean changing your stack.
The site is one part of a marketing stack, and a migration that leaves the rest of it broken has not finished. Each of these is a deliberate integration with a guide behind it, rather than a script pasted into a header somewhere.
-
HubSpot
Forms that land in the CRM as records, confirmed by the server rather than by the browser.
CRM
-
Sanity
A content model the marketing team edits and the build renders, with no second copy of anything.
CMS
-
Google Analytics
Traffic and conversions measured against the routes the site actually has.
Analytics
-
Stripe
Checkout handled by Stripe, with the webhook as the record that decides what happened.
Payments
-
Mailchimp
Signups that reach the audience exactly once, whatever the visitor clicks.
Email
-
Zapier
Site events handed to the automations the team has already built.
Automation
Coming from somewhere else?
Reach out and see if we are a good fit.
Currently booking two to four weeks out.