Hardt Web Development  ·  SOP Library

Wix & Squarespace
to WordPress Migration

SOP refHWD-SOP-WIX-MIGRATION
CategoryClient delivery
Applies toMigrations from Wix, Squarespace, Weebly, GoDaddy Website Builder, or any non-WordPress platform
See alsoSOP-006 for Genesis to Kadence migrations (WordPress to WordPress)
Prepared byCharles Hardt  ·  charleshardt.com
00

Overview & key differences from WordPress migrations

Wix and Squarespace migrations are fundamentally different from Genesis migrations. There is no database to export.

When migrating from Wix or Squarespace you cannot export and import a database the way you can between WordPress installations. There is no one-click migration tool that transfers content reliably. Everything — text, images, SEO metadata — must be extracted manually or through limited export tools and then rebuilt in WordPress. This is not a technical limitation you can work around; it is the nature of proprietary website builders.

This means a Wix or Squarespace migration is really a new WordPress build that uses the existing site as a content source. The build process follows SOP-003 (Kadence Design Implementation) and this SOP governs the content extraction, redirect mapping, and DNS cutover specific to non-WordPress platforms.

Scope this correctly in the proposal. A Wix migration is not cheaper than a new build — it is often more work because you are extracting content from a proprietary system rather than building from a clean start. The migration add-on fee ($500 in the pricing calculator) reflects the additional redirect mapping, content extraction, and DNS complexity.

01

Pre-migration documentation

Document everything before touching anything. Same principle as SOP-006.

1
Crawl the existing site with Screaming Frog
Run a full Screaming Frog crawl of the live Wix or Squarespace site. Export as CSV. This gives you the complete URL inventory, which is the foundation of your redirect map.

Save as: [sitename]-crawl-premigration-[date].csv

Note: Wix URLs often include dynamic parameters and app-generated paths. Filter out non-content URLs (e.g. Wix app routes, dynamic pages without real content) from the crawl export before building the redirect map.
2
Screenshot every page
Screenshot every page at 1280px desktop and 375px mobile using GoFullPage or a similar tool. Store in the client's Google Drive project folder. These are your content reference and your dispute protection.

Pay particular attention to pages with complex layouts or custom design elements — these need to be intentionally recreated in Kadence, not accidentally simplified.
3
Check Google Search Console for indexed URLs
If the client has Search Console access for the existing site, export the top 25 pages by impressions and top 25 queries by clicks. These are the pages with the most SEO equity — their URLs must either be preserved exactly in the new WordPress site or redirected with care.

If the client does not have Search Console set up, run a site: search in Google (site:theirdomain.com) to get a rough sense of indexed pages.
4
Record baseline SEO metrics
Run PageSpeed Insights on homepage and primary service page. Run WAVE accessibility scan. Note current Google rankings for 5–10 primary search terms. Take screenshots of all. These become the post-launch comparison baseline at the 30-day check-in.

02

Content extraction

Manual extraction is the only reliable method. Plan the time accordingly.

1
Extract text content
For each page, copy the text content into a Google Doc or plain text file. Organise one document per page, labelled with the page name and existing URL.

Squarespace: Squarespace offers a limited XML export (Settings → Advanced → Export) that exports blog posts in WordPress-compatible XML format. This handles blog content only — static pages still require manual extraction.

Wix: No useful export tool exists. All content must be copied manually. Use the Wix editor to view and copy text from each section.
2
Download all images
Right-click and save all images used on the existing site. Organise by page in a local folder structure mirroring the site architecture.

Wix: Images on Wix are served from Wix's CDN at wixstatic.com. You can download them directly from the source URLs. The Wix Media Manager (Dashboard → Media) also allows bulk download.

Squarespace: Images are typically accessible via the Squarespace image block. Right-click to save. Check for retina (@2x) versions in the source code for higher-quality downloads.

Before uploading to WordPress, compress all images through Squoosh (squoosh.app) and convert to WebP. This is a natural quality upgrade during migration.
3
Export any form submissions or contacts
Wix: Wix Contacts can be exported from the Contacts section of the Wix dashboard as a CSV. If the client wants to preserve form submission history, export it before the migration.

Squarespace: Squarespace form submissions can be exported from the Forms block analytics. Email the client a copy before migration.

These exports are the client's data — provide them even if they say they do not need them. You cannot retrieve them after the Wix or Squarespace account is cancelled.
4
Identify and document integrations
Document all third-party tools currently connected to the site: booking tools, email newsletter platforms, chat widgets, social media feeds, review widgets, payment processors, and any embedded forms or calendars.

For each integration, confirm: does the tool have a WordPress plugin or embed option? If not, identify the WordPress alternative before building. Never launch a site missing an integration the client depends on.

03

Redirect map

The most SEO-critical deliverable in the migration. Build it before writing a line of code.

Wix and Squarespace use URL structures that differ from WordPress. Wix appends dynamic slugs like /services/chiropractic or uses app-specific patterns. Squarespace URLs are cleaner but still may differ from your WordPress URL structure. Every old URL that changes needs a 301 redirect to its new destination.

Old URL patternNew WordPress URLAction
wixsite.com/norfolkchironorfolkchiropractic.comRedirect all Wix subdomain URLs to the custom domain (this is automatic if the domain was already pointing to Wix)
/services/servicesURL preserved — no redirect needed if slug is identical
/services#chiropractic/services/chiropractic301 redirect — Wix anchor links become WordPress pages
/blog/post-name-12345/blog/post-name301 redirect — Wix adds numeric suffixes to post slugs
/contact-us/contact301 redirect if slug changed for SEO reasons
Redirect implementation: Use the Redirection plugin (free, by John Godley) in WordPress. Import the redirect map CSV after installing the plugin. Test every redirect manually on staging before go-live.

04

WordPress build with extracted content

Follow SOP-003 for the build. These steps are specific to the migration context.

1
Build on a fresh WordPress install — never on the live domain
Install WordPress on Kinsta or Pressable staging. Do not point the client's domain to the new host until the site is complete and approved. The existing Wix or Squarespace site must remain live for patients or donors during the entire build period.

Use a temporary staging URL (Kinsta or Pressable both provide these). Block search engines on the staging environment immediately.
2
Populate content from extracted documents
Work through your extracted content documents page by page. Copy text into the Kadence block editor. Upload images from the extracted and compressed image folder.

Do not copy-paste HTML from Wix or Squarespace source code. Both platforms generate proprietary class names and inline styles that are incompatible with Kadence and will cause rendering issues. Always copy plain text only, then apply formatting in the Kadence editor.
3
Import blog posts if applicable (Squarespace)
If the client has a Squarespace blog with significant content: use WordPress's built-in importer (Tools → Import → WordPress) with the Squarespace XML export. This imports post content and featured images automatically.

After import, review each post: clean up any Squarespace-specific shortcodes or HTML remnants, assign categories, set featured images, and verify Yoast SEO settings on each post. High-traffic posts should have their slugs preserved exactly to maintain rankings.

05

DNS cutover

The domain is currently pointing to Wix or Squarespace. Moving it to WordPress requires a DNS change.

1
Identify where DNS is managed
Wix: If the domain was purchased through Wix, DNS is managed in the Wix domain dashboard. If the domain was purchased elsewhere (GoDaddy, Namecheap), DNS is managed at the registrar and Wix was simply pointed to as a nameserver.

Squarespace: Same pattern — Squarespace domains are managed in Squarespace Domains; external domains are managed at the registrar.

The client must have login access to wherever DNS is managed. Confirm this during onboarding, not the night before launch.
2
Point domain to new host before cancelling old platform
Never cancel the Wix or Squarespace subscription before the DNS transfer is complete and verified. If you cancel the old platform first, the domain has nowhere to point and the site goes offline for all visitors during the propagation window.

Sequence:
1. Update A record (or nameservers) to point to Kinsta or Pressable
2. Wait for propagation (15 minutes to 2 hours on most configurations)
3. Verify the WordPress site is live on the custom domain
4. Test redirects on the live domain
5. Only then cancel or downgrade the Wix or Squarespace plan
3
Kinsta custom domain setup
MyKinsta → Sites → select site → Domains → Add domain. Enter the custom domain. Kinsta provides the DNS records to add at the registrar (A record and CNAME for www). Kinsta automatically provisions a free SSL certificate via Let's Encrypt once the DNS propagates.

Wait for Kinsta to confirm the domain is active and SSL is provisioned before sending the client the launch confirmation.
4
Pressable custom domain setup
Pressable dashboard → Sites → select site → Domains → Add domain. Add the primary domain and the www variant. Pressable provides an A record to add at the registrar. SSL is provisioned automatically.

Pressable notes: if the domain was managed by Squarespace and the client purchased it through Squarespace, they need to transfer the domain out of Squarespace to an independent registrar (Namecheap recommended) before pointing DNS to Pressable. Squarespace locks recently transferred domains for 60 days after their annual renewal, which can complicate the timeline. Surface this during onboarding.

06

Post-launch verification

The first 48 hours after a platform migration are the highest-risk period for SEO regression.

Within 30 minutes of confirmed DNS propagation, complete every item from the go-live checklist in SOP-006 Section 08. Additionally, for platform migrations specifically:

1
Test all redirects on the live domain
Visit every redirect in your redirect map using the live domain (not staging). Confirm each old URL resolves to the correct new URL with a 301 status code. Use a browser redirect checker tool or curl for a systematic check:

curl -I https://olddomain.com/old-page-url
Confirm the response shows HTTP/2 301 and the Location header points to the correct new URL.
2
Monitor Search Console for 404 errors
Check Google Search Console daily for the first 7 days post-launch. Search Console → Coverage → Excluded → Not found (404). Any 404 errors appearing here are URLs Google had indexed that are not redirected.

Fix all new 404 errors within 24 hours of discovery. Add a 301 redirect from the 404 URL to the closest relevant page. A spike of 404 errors with no redirects in the first week is the primary cause of post-migration ranking drops.
3
Disavow Wix or Squarespace subdomain backlinks if applicable
If the client was using a Wix subdomain (e.g. username.wixsite.com/sitename) in addition to their custom domain, Google may have indexed both. Once the custom domain is the canonical version, monitor for any Wix subdomain URLs still appearing in Search Console. If they do, request removal through Search Console's URL removal tool, or wait — Wix will typically deindex its own subdomain URLs within a few weeks of the custom domain going live.

07

Platform-specific notes

Quick reference for the most common platform quirks you will encounter.

PlatformKey quirkAction
WixWix slugs have numeric suffixes on dynamic pages and blog postsStrip the suffix in the new WordPress slug. Set up 301 from old Wix slug (with number) to clean WordPress slug.
WixWix app pages (Wix Bookings, Wix Stores) create proprietary URL patternsMap to equivalent WordPress pages. 301 redirect Wix booking URLs to the new booking page.
WixWix images are at wixstatic.com CDN and are not portableDownload all images before migration. They will not transfer automatically.
SquarespaceSquarespace XML export includes blog posts but not static pagesImport blog XML; manually extract static page content.
SquarespaceSquarespace domains have a 60-day lock after renewalCheck domain renewal date during discovery. If lock window is imminent, adjust project timeline or use DNS record change instead of registrar transfer.
SquarespaceSquarespace SEO metadata is stored per-page in the page settingsManually copy title tags and meta descriptions from each Squarespace page settings into Yoast on the WordPress equivalent page.
GoDaddy Website BuilderNo export function existsFull manual extraction required. All content must be copied by hand. Bill accordingly.
WeeblyWeebly offers a basic site export but it is unreliableTreat as manual extraction. Verify every page after any automated export attempt.