Technical Guide
Squarespace to Cloudflare Migration — Complete Guide
A step-by-step guide to migrating your website from Squarespace to Cloudflare Pages. Improve performance, reduce costs, and preserve your SEO rankings.
Why migrate from Squarespace?
Squarespace is excellent for getting started, but growing businesses often hit limitations:
- Performance: Static files served from a CDN edge network are structurally faster than Squarespace's server-rendered pages — no server-side rendering overhead, no database queries on each request
- Cost: Cloudflare is free for most sites; Squarespace starts at $16/month
- Flexibility: Full control over code, integrations, and custom functionality
- SEO: Better Core Web Vitals scores improve search rankings
- Scale: Handle traffic spikes without performance degradation — static assets are cached at edge locations globally
Migration Overview
- Audit current site and document all pages
- Export content from Squarespace
- Set up new site on Cloudflare Pages
- Implement redirects for SEO preservation
- Test thoroughly before cutover
- Update DNS and monitor
Step 1: Pre-Migration Audit
Document your current site
Before touching anything, create a complete inventory:
- All pages and their URLs
- Blog posts and their publication dates
- Images and assets
- Forms and their destinations
- Custom CSS/JavaScript
- Third-party integrations (analytics, chat, etc.)
- SEO metadata (titles, descriptions)
Identify SEO-critical pages
Use Google Analytics and Search Console to identify:
- Top 20 pages by traffic
- Pages with external backlinks
- High-ranking landing pages
These pages need special attention during migration to preserve rankings.
Step 2: Content Export
Export from Squarespace
- Go to Settings → Advanced → Import/Export
- Click Export → WordPress format
- Download the .xml file
Extract images
Squarespace exports don't include images. You'll need to:
- Download all images manually or use a scraping tool
- Optimise images (WebP format, appropriate sizes)
- Upload to your new asset hosting
Handle blog posts
The WordPress export format preserves:
- Post titles and content
- Publication dates
- Categories and tags
- Author information
You'll need to convert this to your new platform's format (Markdown, HTML, etc.).
Step 3: Build on Cloudflare Pages
Choose your approach
Option A: Static site generator (recommended)
- Next.js, Hugo, Jekyll, or 11ty
- Best performance and flexibility
- Requires development knowledge
Option B: Pure HTML/CSS
- Simple and fast
- No build process
- Manual updates required
Set up Cloudflare Pages
- Log into Cloudflare dashboard
- Go to Pages → Create a project
- Connect your Git repository (GitHub/GitLab)
- Configure build settings
- Deploy
Build configuration
For Next.js sites on Cloudflare Pages:
- Build command:
npm run build - Build output directory:
out - Root directory:
/(or your project root)
Step 4: SEO Preservation
Maintain URL structure
Keep URLs identical where possible. If you must change them, implement 301 redirects:
- Squarespace:
/blog/post-title - New site:
/blog/post-title(same)
Implement 301 redirects
In Cloudflare Pages, create a _redirects file:
/old-page /new-page 301 /blog/old-post /blog/new-post 301 /legacy-url /current-url 301
Preserve metadata
Ensure each page maintains:
- Title tags (identical or improved)
- Meta descriptions
- Canonical URLs
- Open Graph tags
- Structured data (Schema.org)
Step 5: Testing
Pre-launch checklist
- ☐ All pages render correctly
- ☐ Images load properly
- ☐ Links work (internal and external)
- ☐ Forms submit correctly
- ☐ Mobile responsiveness verified
- ☐ 301 redirects tested
- ☐ SSL certificate active
- ☐ Analytics tracking installed
- ☐ Core Web Vitals checked
Test redirects
Use tools to verify redirects:
- curl:
curl -I https://yoursite.com/old-page - Browser dev tools Network tab
- Online redirect checkers
Performance testing
Before and after comparison:
- PageSpeed Insights
- GTmetrix
- WebPageTest
Step 6: Go Live
DNS cutover
- Lower TTL on your DNS records (300 seconds) 24 hours before
- Update A/AAAA or CNAME records to point to Cloudflare
- Wait for propagation (usually minutes, up to 48 hours)
- Test from multiple locations
Post-launch monitoring
- Monitor Google Search Console for 404 errors
- Check analytics for traffic drops
- Verify search rankings (give it 1-2 weeks)
- Monitor Core Web Vitals in Search Console
Submit updated sitemap
In Google Search Console:
- Submit new sitemap.xml
- Request reindexing of key pages
- Monitor for crawl errors
What to expect
Why static sites tend to perform better
The performance advantage of static hosting is architectural, not magic:
- No server-side rendering: Squarespace generates each page on request; a static site serves pre-built HTML instantly
- Edge caching: Static files are cached at CDN edge nodes close to the visitor — TTFB drops dramatically compared to a centralised origin server
- No database queries: Each Squarespace page load can trigger multiple database and template-engine operations; static pages have none
- Smaller payload control: You control exactly what JavaScript and CSS ships — no platform overhead
Your actual Lighthouse and Core Web Vitals scores will depend heavily on your images, third-party scripts, and font loading strategy — not just the hosting platform. Run PageSpeed Insights on your current and new site to measure real improvement.
Cost comparison
- Squarespace: $16-49/month (check current pricing on their site)
- Cloudflare Pages: Free tier covers most small sites; paid plans start at $20/month for teams
Note: Cloudflare Pages free tier has limits on build minutes and bandwidth. Review the current limits before assuming zero cost at scale.
Common Issues and Solutions
Issue: Images not displaying
Solution: Check image paths and ensure proper optimisation. For image optimisation, your options depend on your stack:
- Next.js built-in: Use the
<Image>component for automatic resizing and WebP conversion — no extra cost, works well for most sites - Cloudflare Images: Cloudflare's paid image transformation service — useful if you're already on Cloudflare and want URL-based resizing
- Imgix / Cloudinary: Third-party image CDNs with more features — worth it for media-heavy sites or if you need advanced transformations
- sharp (build-time): Process images at build time for zero runtime cost — good for sites with a fixed asset library
Issue: Forms not working
Solution: Static sites need form handling services. Use Formspree, Netlify Forms, or Cloudflare Workers.
Issue: Search rankings dropped
Solution: Temporary drops are normal (1-2 weeks). Ensure all redirects are 301s, not 302s. Submit updated sitemap.
Issue: Blog comments lost
Solution: Export comments separately or use Disqus (exports with site). Consider Giscus (GitHub Discussions) for new comments.
When Cloudflare Pages is NOT the right choice
Cloudflare Pages is a good fit for many sites, but it is not the right answer for everyone. Be honest with yourself before committing to this path:
You need server-side rendering or dynamic logic
Cloudflare Pages is a static hosting platform. If your site generates personalised pages per user, runs complex server-side logic on each request, or needs a traditional backend, you are looking at the wrong tool. Cloudflare Workers can add edge compute, but that is a meaningfully different architecture to build and maintain.
You are invested in another ecosystem
Vercel, Netlify, and Render all offer competing static/edge hosting with their own ecosystems. If your team already uses Vercel's preview deployments, Netlify's form handling, or Render's background workers, migrating to Cloudflare Pages means rebuilding those workflows. The grass is not always greener.
Your site is heavily dynamic or has e-commerce
Squarespace Commerce, WooCommerce, or Shopify handle cart state, inventory, orders, and payments in ways that a static site cannot replicate without significant custom development. A platform built for e-commerce will be cheaper and faster to maintain than a bespoke static site trying to reinvent that wheel.
Your team cannot maintain the new stack
Squarespace lets non-technical staff update content through a visual interface. A static site built with Next.js or Hugo requires either a CMS layer (Contentful, Sanity, Decap) or a developer for every content change. If your team does not have that capacity, you are trading platform cost for ongoing maintenance cost.
SEO risk is unacceptable right now
Migrations always carry SEO risk, even well-executed ones. If your business is in a critical growth phase and organic traffic is a primary revenue channel, the timing may be wrong — not the destination. A botched redirect mapping or missed canonical tag can cost months of ranking recovery.
DIY vs Professional Migration
DIY is suitable if:
- You have technical experience (HTML/CSS/JavaScript)
- Your site is small (< 20 pages)
- No complex integrations or e-commerce
- SEO is not business-critical
Professional help recommended if:
- Large site (> 50 pages) or extensive blog
- Business depends on search rankings
- E-commerce functionality required
- Complex integrations (CRM, booking systems)
- No in-house technical resources
Need help with your migration?
We have hands-on experience migrating legacy systems — including a 20-year-old PHP application for a pharmaceutical client — to modern infrastructure. If your situation is complex, has SEO risk, or involves regulated data, we can help you plan and execute the migration properly.
Discuss your migration