Migrate Your Squarespace Site to GitHub
Squarespace has no version control. There is no staging environment unless you pay for a separate site. There is no way to safely experiment with a design change, no way to review an edit before it goes live, and no way to see what changed last week.
Every edit in the Squarespace visual editor is either immediately live or sitting in draft mode with no record of what was modified. If you break something, your only option is to manually try to undo your steps. If a team member changes something on the about page while you are editing the homepage, there is no merge process — you just hope nothing conflicts. If a client asks “what changed since last month,” you have no answer.
These are solved problems. They were solved decades ago by version control. Moving your website from Squarespace to a GitHub repository gives you every benefit that software teams take for granted: full change history, branching, pull request reviews, deploy previews, automated deployment, and the ability for multiple people (or AI agents) to work on different parts of the site simultaneously.
This guide explains the Git-based workflow for managing a website, every approach to getting your Squarespace site into a GitHub repo, and the collaboration patterns that become possible once you make the switch.
What Git and GitHub give you
If you have never used Git, here is the core idea: Git is a system that tracks every change to every file in a project. GitHub is a platform that hosts Git repositories and adds collaboration features on top. Together, they give your website:
| Capability | Squarespace | GitHub-based site |
|---|---|---|
| Change history | None | Every edit logged with date, author, and description |
| Undo a change | Manually try to recreate previous state | git revert — instant, precise rollback |
| Safe experimentation | Edit the live site (risky) | Create a branch, experiment freely, merge when ready |
| Review before publishing | Not possible | Pull requests with preview deployments |
| Team collaboration | One person at a time per section | Multiple people working on different branches |
| AI agent editing | Not possible (visual editor only) | Native — agents read and write files directly |
| Backup | Squarespace’s internal backups (you cannot access them) | Full copy of every version exists in the repo |
| Audit trail | No record of who changed what | Commit history shows every change by every person |
How the Git workflow actually works day-to-day
Making a quick content change:
- Open a blog post markdown file (either locally, in GitHub’s web editor, or by telling an AI agent what to change).
- Make your edit.
- Write a commit message: “Update hours for holiday schedule.”
- Push to the
mainbranch. - Your hosting provider (Vercel, Netlify, Cloudflare Pages) detects the change and auto-deploys in 30-60 seconds.
Making a larger design change:
- Create a new branch:
git checkout -b redesign-homepage. - Make your changes. The live site is unaffected because you are working on a separate branch.
- Push the branch to GitHub.
- Open a pull request. Your hosting provider automatically builds a deploy preview — a temporary URL where you can see the changes live.
- Share the preview URL with your team or client for review.
- When approved, merge the pull request. The change goes live.
- If something goes wrong, revert the merge — the site returns to its previous state in seconds.
Having an AI agent update your site:
- Open Claude Code, Cursor, or Windsurf in your project directory.
- “Update the pricing table on the services page. The new prices are…”
- The agent edits the file, you review the diff, commit, and push.
- Auto-deploys in under a minute.
This entire workflow is free. GitHub has free private repositories. Every major static hosting provider has a free tier that connects directly to GitHub and auto-deploys on every push.
Understanding Squarespace’s export
Before migrating, you need to understand what you can extract from Squarespace. The export (Settings → Advanced → Import/Export → Export) produces an XML file in WordPress WXR format.
The XML includes:
- Blog post content with full text, publish dates, categories, tags
- Basic page text content
- Comments on blog posts
- Image references (URLs pointing to Squarespace’s CDN)
The XML does not include:
- Design, templates, or layout configuration
- Custom CSS (Design → Custom CSS)
- Code injection blocks (Settings → Advanced → Code Injection)
- Images as downloadable files
- Commerce product data (requires separate CSV export)
- Form configurations and submissions
- Navigation structure
- Gallery configurations
- Member area content
The XML export is useful for blog content and basic page text. For the rest — design, images, navigation — you will need to extract from the live published site.
Important: Save your custom CSS and code injection blocks manually before migrating. These customizations represent real work that the export does not capture.
Six approaches to get your Squarespace site into GitHub
1. AI coding agents (Claude Code, Cursor, Windsurf, Cline)
AI coding agents are the fastest way to go from a Squarespace site to a working GitHub repository for most sites. The agent handles content extraction, code generation, and project scaffolding.
Step-by-step:
- Export your content. Settings → Advanced → Import/Export → Export. Download the XML.
- Save custom code. Copy your custom CSS and code injection blocks to text files.
- Create a GitHub repo. Go to github.com, create a new private repository.
- Clone and scaffold. Clone the repo locally, then run
npm create astro@latest(or your framework of choice) inside it. - Open in your AI agent. Give it the XML file, your published site URL, and your custom code.
- Let the agent work. Prompt: “Parse this Squarespace XML to extract all blog posts as markdown. Crawl example.com to capture page content, navigation structure, and images. Build the site to match the current design.”
- Iterate on the output. The first pass covers the majority of the site. Refine the CSS, fix edge cases with galleries or embedded content, adjust the navigation. Usually takes 2-4 rounds.
- Commit and push. The agent can do this for you, or you can commit manually.
- Connect deployment. Link the GitHub repo to Vercel, Netlify, or Cloudflare Pages. Every future push auto-deploys.
Timeline: 2-8 hours for a typical site. A day for complex sites with many blog posts.
Sites like cursor.com and Prefect.io have been built or migrated with AI-assisted workflows. Developer Sid Bharath has documented rebuilding client sites this way. The tooling is mature enough for production use.
2. AI app builders (Bolt.new, v0.dev, Lovable, Replit Agent)
These tools provide a more visual workflow for people who are not comfortable in a code editor.
- Screenshot your Squarespace pages.
- Upload to Bolt.new, v0.dev, or Lovable with a prompt like “Recreate this page layout.”
- The tool generates code you can download.
- Create a GitHub repo, add the generated code, and add your actual content.
This works well for design replication. Content migration still needs to be handled separately through the XML export.
3. The WordPress bridge
Squarespace exports in WordPress XML format. If your site has a large blog archive, you can leverage the WordPress ecosystem:
- Import the XML into a local WordPress installation.
- Use tools like wordpress-export-to-markdown to convert posts to markdown.
- Add the markdown files to your GitHub repo as part of a static site project.
This roundabout path is sometimes the most reliable option for 100+ post archives, because WordPress import tooling has been refined over many years.
4. Hire a developer or agency
For teams that want the GitHub workflow without doing the migration themselves:
- Freelance developers: $1,000-$5,000 depending on site complexity.
- Agencies: $5,000-$25,000 for larger sites with e-commerce or complex content.
Ask specifically about GitHub workflow setup: Will they configure auto-deployment? Set up branch protection rules? Document the editing workflow for your team? The migration itself is only useful if your team can maintain the site afterward.
5. BrowserCat Migrate
BrowserCat Migrate automates the extraction and scaffolding, delivering the result as a private GitHub repository with deployment configured. Starting at $49 — one automated option among the approaches listed here.
6. Manual DIY
The most educational approach, if you have the time:
- Create a GitHub repository.
- Scaffold a project (Astro, Hugo, 11ty, Next.js).
- Export and parse the Squarespace XML.
- Convert blog posts to markdown.
- Build page components from screenshots of your current site.
- Download all images from the Squarespace media library.
- Commit, push, and connect to a deploy host.
- Set up redirects for SEO continuity.
Timeline: 2-6 weeks depending on experience and site size.
Setting up the GitHub-to-deploy pipeline
Once your site is in a GitHub repo, connecting it to automatic deployment takes about five minutes. All three major static hosts work the same way:
Vercel:
- Go to vercel.com, sign in with GitHub.
- Import your repository.
- Vercel detects the framework and configures the build.
- Every push to
mainauto-deploys to production. - Every pull request gets a unique preview URL.
Netlify:
- Go to netlify.com, sign in with GitHub.
- Import your repository.
- Configure the build command (
npm run build) and publish directory (dist/). - Same auto-deploy behavior as Vercel.
Cloudflare Pages:
- Go to dash.cloudflare.com → Pages.
- Connect your GitHub account and select the repo.
- Configure the build settings.
- Deployments run on Cloudflare’s global network.
All three offer free tiers that are more than sufficient for most websites. Deploy previews — temporary URLs for every branch or pull request — are included free and are one of the most valuable features for team collaboration.
Collaboration patterns that GitHub enables
Non-developer content editing
You do not need to be a developer to edit a site hosted on GitHub. Several workflows make this accessible:
- GitHub’s web editor: Click any file on github.com, click the pencil icon, edit, and commit. For markdown blog posts, this is as simple as editing a document.
- Decap CMS (formerly Netlify CMS): A free, open-source content management system that gives you a web-based editor for your Git-hosted content. It looks and feels similar to Squarespace’s blog editor but commits directly to your repo.
- AI agents: Describe the change in plain English and the agent makes the edit. “Add a new blog post about our summer hours. Title it…”
Client review workflows
If you build sites for clients, the GitHub workflow is transformative:
- Make changes on a branch.
- Open a pull request.
- Send the client the deploy preview URL.
- They review on the live preview — no “imagine this but with…”
- They approve, you merge, it is live.
Compare this to Squarespace, where showing a client a proposed change means either making it on the live site or trying to describe it in words.
Team editing
Multiple people can work on different branches simultaneously. One person updates blog content while another redesigns the services page. Branches are isolated — changes do not conflict until you are ready to merge them, and Git handles the merge process.
Squarespace-specific migration considerations
Squarespace 7.0 vs 7.1
Check your version at Help → Squarespace Version. Version 7.0 uses named templates (Brine, Bedford, etc.) with template-specific features. Version 7.1 uses a universal section-based design system. The migration complexity differs between them because 7.0 sites may rely on template-specific gallery layouts or index page behaviors that need to be understood and recreated.
Image handling
Squarespace serves images through its own CDN. Those image URLs will stop working when you cancel your subscription. Download every image before canceling. Use the Squarespace media library (Assets panel) or extract image URLs from the XML and download them with a script.
Commerce data
Squarespace Commerce data is not in the XML export. Products need a separate CSV export. If e-commerce is significant to your business, evaluate whether a static site is the right target or whether Shopify (with a static marketing site) makes more sense.
Domain transfer
If your domain is registered through Squarespace, plan for a 5-7 day transfer process to move it to another registrar (Cloudflare, Namecheap, etc.). Update DNS to point to your new hosting provider.
URL redirects
Map your Squarespace URL structure to your new site’s URLs. Set up 301 redirects for any URLs that change. This is essential for preserving search engine rankings and ensuring inbound links continue to work.
The performance upgrade
Moving to a GitHub-deployed static site is not just about workflow — it is also about speed:
| Metric | Squarespace | GitHub-deployed static site |
|---|---|---|
| Mobile Lighthouse | ~31 | 95-100 |
| LCP (mobile) | 8.79s | <0.5s |
| TTFB | 1-2s | <50ms |
| Page weight | 2-5MB | 50-200KB |
DebugBear’s benchmarks rank Squarespace last among major website builders for mobile performance. A static site eliminates the server rendering, template engine JavaScript, and platform overhead. Pages load from a CDN edge location near each visitor — there is nothing to compute.
This performance improvement matters for SEO. Google’s Core Web Vitals directly influence search rankings, and moving from a failing CWV score to a passing one can measurably improve organic traffic.
When to stay on Squarespace
The GitHub workflow is powerful, but it is not for everyone:
- If no one on your team will learn the workflow. Git, markdown, and deploy previews are not difficult, but they require investment. If the site will go unmaintained because the workflow is unfamiliar, that defeats the purpose.
- If you are deeply integrated with Acuity Scheduling. Squarespace owns Acuity and the integration is seamless. You can embed Acuity elsewhere, but the integration will not be as tight.
- If Squarespace Commerce is central to your business. Migrating active e-commerce is a separate, larger project.
- If you genuinely do not need version control or collaboration. If you are a solo operator who makes infrequent, simple edits, Squarespace’s visual editor may be the right tool for the job.
Getting started
Export your Squarespace content. Go to Settings → Advanced → Import/Export → Export. This is non-destructive — your live site is unaffected. Save your custom CSS and code injection blocks. Download your images.
Then create a GitHub repository. Even if you do not migrate today, having a private repo ready means you can start the process whenever you are ready. The export data, your saved customizations, and a fresh repository are all you need to begin — whether you use an AI agent, hire a developer, or build it yourself.
The first commit is always the hardest. Everything after that is just pushing changes.
Automate Everything.
Tired of managing a fleet of fickle browsers? Sick of skipping e2e tests and paying the piper later?
Sign up now for free access to our headless browser fleet…