How to migrate from Wix to Shopify, step by step
Wix is the hardest mainstream platform to leave, because it holds more of your data than it lets you export. This is the whole move — what the dashboard gives you, what needs the API, and the order that keeps your store selling throughout — with the documentation behind every step.
Written for someone doing this themselves. Every step links to the documentation it came from, so you can check it rather than trust us. If you would rather not do it, we will quote it.
The checklist
Every step, in the order it has to happen.
Before you touch anything2
Wix dashboard → Catalog, Orders, Customers & Leads, Blog, CMS, Bookings, Members
Watch out: Digital (downloadable) products are excluded from the product export entirely — a store selling downloads has no dashboard export path at all.
Wix dashboard → Media → Site Files, folder by folder
Watch out: There is no "download everything" button — Site Files come down folder by folder. Do it now, not after cutover, while every image URL still resolves.
Get your data out3
Catalog → Store Products → Products → More Actions → Export
Watch out: Wix documents a 5,000-row cap per export CSV. Over that, export in filtered batches — and remember each variant is its own row.
Customers & Leads → Contacts → Import/Export → Export · Orders → Export
Watch out: Only the site owner can export contacts — a collaborator cannot. And order timestamps are written in UTC, so reports shift unless you offset them.
Wix dashboard → API keys, then www.wixapis.com
Watch out: The products API returns no variant data from its query endpoint — variants come one product at a time, so a large catalogue means thousands of calls.
Build in parallel5
Any spreadsheet tool; save as UTF-8 CSV
Watch out: Wix exports weight in kilograms; Shopify expects grams. Multiply by 1,000, and strip spaces, accents and periods from handles. Treat Shopify’s published mapping table with suspicion — parts of it lag the current Wix export format.
Shopify admin → Products → Import
Watch out: An import cannot be cancelled once started, there is no import history, and the file caps at 15 MB. Run it against a development store first, and untick "publish to all sales channels".
Shopify admin → Customers → Import
Watch out: Passwords cannot migrate. Imported customers cannot log in until they accept an invite, and Shopify has no official bulk-invite tool — plan the invite wave, don’t discover it at launch.
Shopify admin → Apps
Watch out: If you stage blog imports in Excel, cells silently truncate at 32,767 characters — long articles lose their tail. Use CSV for body HTML.
Online Store → Themes · Apps → Shopify Flow · Settings → Customer accounts
Watch out: Any Wix Automation that called an external webhook needs Shopify’s HTTP action, which is restricted to Grow, Advanced and Plus plans — check before promising parity.
Keep your rankings2
SEO & GEO → Tools and settings → URL Redirect Manager → Export
Watch out: You cannot reconstruct the URL inventory after the Wix site goes dark — crawl it now. Existing Wix redirects stop working the moment DNS moves.
Content → Menus → URL redirects → Import
Watch out: Shopify refuses redirects from paths starting /shop — which is exactly where a Wix store lives. That one path needs theme-level handling; no 301 can exist for it.
Cut over1
Wix → Domains → Manage DNS Records · Shopify → Settings → Domains
Watch out: Point DNS; do not transfer the registration mid-migration. A transfer can take 20 days, trips ICANN’s 60-day lock if contacts were edited, and dropping the Wix DNS zone kills MX records — screenshot every DNS record first.
After the switch1
Shopify → Online Store → Preferences · Wix → Premium Subscriptions
Watch out: Site plan, domain and business email are separate Wix subscriptions — cancelling one does not cancel the others, and cancelling too early takes down what you still depend on.
What does not come with you
Every migration guide that promises everything moves is selling something. These are the things that genuinely do not, and what to do instead.
Your page designs
Wix pages are proprietary Editor documents with no export format; Shopify renders Liquid themes.
Instead: Screenshot every Wix page first as the visual spec, then rebuild on a Shopify theme.
Customer passwords
Passwords are encrypted outside Shopify and cannot be moved by any export.
Instead: Import customers, then send account invites. Shopify has no bulk-invite tool, so plan a third-party app or batched sends.
Product reviews
Wix Reviews has no export at all — the help page for it is a feature request.
Instead: Re-key the best reviews into Judge.me, Loox or Yotpo, and start collecting fresh ones at launch.
Blog posts (via the dashboard)
Wix states plainly that blog posts cannot be exported from the dashboard.
Instead: Pull posts through the Wix Blog API (100 per request) and import with Matrixify, or copy-paste a small blog.
Digital / downloadable products
Wix excludes digital products from the product CSV export entirely.
Instead: Download the files from the Media Manager and re-create the products in Shopify by hand.
The site members list
Wix blocks member-list export on privacy grounds; contacts are a separate list that does export.
Instead: Export Contacts instead, and accept that member-only gating is rebuilt from zero.
Wix Bookings services
Wix confirms service configurations cannot be exported — not even between two Wix sites.
Instead: Export the booking and staff reports as CSV for history, then rebuild services in a Shopify booking app.
SEO metadata in bulk
Wix has no CSV export of page titles and descriptions.
Instead: Crawl the live site with an SEO crawler before cutover, and re-key what matters.
Your URLs, mapped.
Wix and Shopify disagree about URL shapes, so every old address needs a 301 to its new home. This is the mapping.
| Wix | Shopify | Note |
|---|---|---|
| /product-page/linen-throw | /products/linen-throw | Handles allow letters, numbers and dashes only — strip accents and periods. |
| /category/bedding | /collections/bedding | |
| /shop | /collections/all | Shopify blocks redirects from /shop — this one needs theme-level handling. |
| /post/how-we-weave | /blogs/news/how-we-weave | Substitute your actual Shopify blog handle. |
| /blog | /blogs/news | |
| /about-us | /pages/about-us | Wix serves static pages at the root; Shopify forces the /pages/ prefix, so every one needs a row. |
| /account/my-orders | /account/orders | |
| /#!blog/c1p1z | (not redirectable server-side) | Nothing after # reaches a server, so no 301 can see it — legacy hashbang URLs need client-side JS. |
| /product-page/linen-throw?variant=… | /products/linen-throw | Wix variant params do not map to Shopify variant ids; send them to the base product. |
Your apps, matched.
- Wix StoresShopify products (built in)
Shopify's free Store Migration app moves products and customers, but caps at 3 options per product and uses the highest price where Wix priced by location.
- Wix BookingsThird-party booking apps
No first-party Shopify booking product, and Wix cannot export service configs — services are rebuilt in an app like Sesami or BookThatApp.
- Wix Members AreaShopify customer accounts
The member list is not exportable; export Contacts instead and rebuild gated content with theme logic or an app.
- Wix AutomationsShopify Flow
No export from Wix — rebuild each trigger/action pair by hand. The webhook action needs Grow, Advanced or Plus.
- Wix Email MarketingShopify email tools
Subscriber consent must be re-declared through the customer import; history does not move.
- Wix FormsShopify Forms
Existing form submissions stay behind; only synced contacts move.
- Wix ChatShopify Inbox
Chat history does not transfer.
- Wix BlogShopify blogs
Wix has no blog export and Shopify no native blog import: the move goes through the Wix API plus Matrixify.
- Wix Pricing PlansShopify Subscriptions
Active recurring plans cannot migrate; subscribers re-subscribe on Shopify.
- Wix ReviewsJudge.me / Loox / Yotpo
Wix cannot export reviews at all — they are re-entered or collected fresh.
- Velo codeNo equivalent
Velo code runs only on Wix hosting. This is a rewrite (metafields, Functions or a custom app), and should be scoped separately.
- Wix CMS collectionsShopify metaobjects
Collection data exports to CSV, so the content moves even though dynamic-page routing is rebuilt.
What goes wrong.
Your old shop page 404s forever after launch
Why: Wix stores live at /shop, and Shopify refuses to create redirects from any path starting /shop (also /cart, /orders, /services, /apps).
Avoid it: Check how much traffic lands on /shop before cutover, and handle it in the theme rather than promising a 301 that cannot exist.
Years of old redirects vanish on cutover day
Why: Wix 301 redirects only work while Wix serves your custom domain; the moment DNS points at Shopify, every Wix-side redirect stops.
Avoid it: Export the Wix redirect list and re-create the whole chain in Shopify before the DNS change.
Some redirects never take effect
Why: Shopify only accepts a redirect from a URL that currently 404s, and rejects the rest of the row silently in bulk imports.
Avoid it: Check the import result report line by line rather than assuming a clean upload.
Every returning customer is locked out on day one
Why: Passwords cannot migrate, and imported customers are placeholders until they accept an invite.
Avoid it: Plan the invite wave before launch; Shopify has no official bulk-invite tool.
Shipping rates come out a thousand times wrong
Why: Wix exports weight in kilograms; Shopify's grams column expects grams.
Avoid it: Multiply the weight column by 1,000 in the reshape, then spot-check calculated shipping on three products.
A bad import cannot be undone
Why: Product CSV imports cannot be cancelled once started and leave no import history to roll back.
Avoid it: Run every import against a development store first, and keep the pre-import export as your rollback.
Product images 404 after Wix is retired
Why: Shopify fetches images from the URLs in your CSV at import time; if Wix-hosted media disappears first, the images never land.
Avoid it: Confirm every image renders in Shopify admin before cancelling the Wix plan.
Company email dies the day the domain moves
Why: Transferring a domain away from Wix drops the DNS zone, including MX records; ICANN's 60-day lock can also stall the transfer entirely.
Avoid it: Screenshot every DNS record first, point DNS at Shopify rather than transferring during the migration, and never edit WHOIS contacts beforehand.
Or hand the whole list to someone who has done it.
Send your store URL and you get back a fixed price and a plan for your store specifically: SKU count, which apps have Shopify equivalents, the redirect plan, and the risks we can see.
Get my free migration plan