Everything moves, in order, to where it's going next.
Wix to WordPress Migration: Content, Products and Redirects
There is no button that turns a Wix site into a WordPress site. Wix sites run only on Wix, and the parts that do export come out as separate spreadsheets, each in Wix’s own format. Moving a Wix site to WordPress means rebuilding the design, bringing each kind of content across by its own route, and redirecting every old address that changes so visitors and search engines land on the right page.
This guide works through a Wix site one item at a time: which file Wix gives you for it, if any, where it ends up in WordPress, and which parts you rebuild or re-enter by hand. It assumes you’ve already decided to move. If you haven’t, Outgrown Squarespace or Wix? Signs and What Moving Involves covers whether to move, compares what Wix and Squarespace export, and gives a general checklist for leaving either platform. Do You Own Your Wix Website? Wix vs. WordPress Ownership covers what Wix’s terms let you take with you.
The Wix details below come from the Wix Help Center and Wix’s developer documentation, and the WordPress and WooCommerce details from their official documentation, all checked on October 9, 2026. Wix updates its products regularly, so confirm the linked pages before you start.
Wix to WordPress migration: key facts
| Question | Answer |
|---|---|
| Can you export a whole Wix site to WordPress? | No. Wix says its architecture “does not support external hosting,” and it has no WordPress export. The design and pages are rebuilt. |
| What can you export as files? | Products, orders, contacts, CMS collections, form submissions, the booking list and your redirect list, each as a CSV file. |
| What has no export? | Pages, blog posts, the member list and Wix Bookings service settings. There’s no way to download the whole media library in one go. |
| How do Wix blog posts move? | Copy a small blog by hand. For a larger one, a developer reads the posts through Wix’s Blog API and converts them to a WordPress import file. |
| How do Wix products move? | The Wix product CSV is reshaped into WooCommerce’s columns, then loaded with WooCommerce’s built-in importer. Digital products don’t export and are set up again. |
| Do members come with you? | No. Wix doesn’t allow the member list to be exported, so members register again on the new site. |
| Can you keep the same URLs? | Often, for blog posts and products: WordPress and WooCommerce permalink settings can reproduce Wix’s /post/ and /product-page/ paths. Anything that changes needs a 301 redirect on the WordPress site. |
| What happens to the domain and email? | Transfer the domain away from Wix or point its DNS records to the new host. After a transfer, re-add the MX records that business email depends on. |
What moves from Wix to WordPress, item by item
| Wix item | What Wix gives you | Where it goes in WordPress | What you rebuild or re-enter |
|---|---|---|---|
| Pages and design | Nothing; there is no page export | Pages built in the block editor or your theme | Layout, styles, menus and page text |
| Blog posts | No export; posts can be read through the Blog API | Posts, with categories and tags | Small blogs: everything, by hand. Larger blogs: a converted import file built by a developer |
| CMS collections | CSV of every item and field, hidden and system fields too | Custom post types registered in a plugin, with custom fields | The dynamic page templates; the data is imported |
| Store products | CSV, up to 5,000 rows per file | WooCommerce products | Digital products, and any column the importer can’t map |
| Orders | CSV; purchase times are in UTC | Kept as records; WooCommerce’s built-in importer handles products only | Past orders stay in the spreadsheet unless a developer imports them |
| Contacts | CSV, up to 50,000 at a time | Your email marketing tool or CRM | Email lists and segments in the new tool |
| Members | No export | WordPress user accounts | Members sign up again |
| Media | Selected files, one folder at a time; no single download of the whole library | The WordPress media library | Free Wix and Shutterstock images, which can’t be downloaded |
| Forms | Submissions export as CSV | A WordPress form plugin | Every form and its notification emails |
| Bookings | The booking list exports as CSV | A WordPress booking plugin or an outside booking service | Services, staff, hours and prices |
| Redirects | CSV of the redirects you’ve added | A redirect plugin or server rules on the new site | Redirects for every URL that changes in the move |
| Domain and email | Transfer code, or DNS settings you can edit | Your WordPress host’s DNS settings | MX records for business email |
The sections below take each row in turn.
Before you start: list every Wix URL
Before exporting anything, record every address on the old site. Google’s guide to site moves with URL changes recommends mapping each old URL to its new one before the move, starting with the pages that get the most traffic.
Wix publishes the list for you. Every Wix site has a sitemap index at /sitemap.xml on its domain, and Wix’s sitemap guide lists the separate sitemaps inside it, including /pages-sitemap.xml, /blog-posts-sitemap.xml, /blog-categories-sitemap.xml and /store-products-sitemap.xml. Copy every URL into a spreadsheet, add a column for the new address, and add a column for monthly visits from your analytics or Google Search Console.
Knowing Wix’s URL patterns makes the new column quicker to fill in:
| Wix page type | Default Wix URL | Source |
|---|---|---|
| Blog post | /post/{post slug} | URL structure in SEO settings |
| Blog category | /blog/categories/{category slug} | Updating the URL of a blog category |
| Store product | /product-page/{product slug} | URL structure in SEO settings |
| Store category | /category/{category name} | About product categories |
| CMS dynamic list page | /{collection-name} | Creating unique dynamic page URLs |
| CMS dynamic item page | /{collection-name}/{primary-field} | Creating unique dynamic page URLs |
These are defaults. Wix lets owners change the blog and product prefixes in SEO settings, and each dynamic page has its own editable URL structure, so check a few real URLs from your sitemap against the table.
Do Wix pages transfer to WordPress?
No. Neither the pages nor the design can be exported from Wix, so each page is rebuilt in WordPress, usually in the block editor with a theme that sets the overall look. With nothing to import, this is manual work, and on a site with many pages it can be the largest part of the move.
Wix’s ordinary pages sit at the top level of the domain, such as /about or /contact, and WordPress pages do the same. If you give each WordPress page the same slug as its Wix page, those addresses won’t change and need no redirects.
How do you move a Wix blog to WordPress?
Wix has no blog export, so you either copy the posts by hand or have a developer pull them out through Wix’s Blog API and convert them into a file WordPress can import. Wix’s Help Center says: “Currently, it is not possible to export blog posts to other platforms.” The page is a feature request, so there is no date for a change.
Copy the posts by hand. For a blog of a few dozen posts, this can cost less than paying for a conversion. Paste each post into the WordPress editor, re-upload its images, and set the publish date, category, tags and slug to match the Wix post.
Have a developer convert the posts through the Blog API. Wix’s Blog API gives programmatic access to a site’s posts, categories and tags. A developer would typically:
- Create a Wix API key with permission to read the blog. Wix’s docs describe API keys as the method for server-to-server scripting.
- Read every published post with List Posts or Query Posts, which return up to 100 posts per request, asking for the post’s rich content, URL and SEO data. Each post includes its title, slug, excerpt, first-published date, category and tag IDs, and cover image.
- Read the category and tag names with List Categories and Query Tags.
- Convert each post’s body to HTML. Wix stores rich content as a Ricos document, and its Ricos Documents API turns a Ricos document into HTML, which is what WordPress stores.
- Write the results into a WXR file (WordPress eXtended RSS), the XML format WordPress uses for its own exports, and import it.
The import uses the official WordPress Importer, which you reach from Tools > Import > WordPress. It reads a WXR file and creates the posts, pages and other post types in it, along with their authors, comments, custom fields, categories and tags, and it can download attachments from the URLs listed in the file, which is how images still hosted on Wix can be copied into the WordPress media library. Two cautions from the plugin’s own page: very large files can run into the host’s PHP memory limit, in which case the file is split into smaller ones, and as of October 9, 2026 its directory listing warns that it hasn’t been tested against the three most recent major WordPress releases. Run the import on a staging site first and check the results.
Plan for some cleanup either way. Embedded videos, galleries, buttons and other Wix-specific blocks may not convert cleanly, and post comments aren’t part of these calls. Spot-check the posts with the most traffic first.
Keep blog post URLs the same
WordPress lets you choose the URL pattern for posts under Settings > Permalinks. A custom structure of /post/%postname%/ produces addresses in the same form as Wix’s default /post/{post slug}, so posts imported with their original slugs keep their URLs. The same screen has a category base setting, which sets the prefix for category archive URLs. If you keep different URL patterns, each post needs a redirect.
How do you move Wix CMS collections to WordPress?
Export each collection as a CSV file, then import it into a custom post type that a plugin registers in WordPress. Wix’s CMS stores structured content, such as staff profiles, property listings, menus or portfolios, in collections, and shows each item on a dynamic page. Wix’s collection export can include every item and field, hidden and system fields among them.
In WordPress, the equivalent of a collection is a custom post type, with the collection’s columns stored as custom fields. WordPress’s plugin handbook advises putting custom post types in a plugin instead of the theme, so the content stays available after a theme change. Plugin, Theme or functions.php? Where WordPress Code Belongs explains why that matters.
This is where a developer is usually needed. The work is:
- Mapping. Decide which CSV column becomes the title, which becomes the main content, which become custom fields, and which become categories or tags. Fields that reference other collections need special care.
- A plugin that registers the post types. The plugin can also set each post type’s URL slug to match the Wix collection name, so
/{collection-name}/{item}addresses survive the move. - The import itself. A script or import plugin reads the CSV and creates one WordPress entry per row. WP-CLI, WordPress’s command-line tool, can do this on the server with
wp post create. - Templates. The Wix dynamic page layouts are rebuilt as WordPress templates for the new post types.
Check image columns in the export before planning the import. If they point to files on Wix’s servers, the import has to copy those files into WordPress while the Wix site is still live.
Wix Harmony, Wix’s newer AI editor, doesn’t include the CMS yet, so a site built in Harmony usually has no collections to move. Wix Harmony and Custom Code: What a Developer Can Add Later covers how Harmony differs from the Wix Editor.
How do you move a Wix store to WooCommerce?
Export the product list from Wix as CSV, reshape it to WooCommerce’s columns, and load it with WooCommerce’s built-in importer. WooCommerce, a free, open-source commerce plugin for WordPress, has its CSV importer under Products > All Products > Import.
Exporting Wix products
Wix exports your product list as CSV with “up to 5,000 rows per CSV file,” so a large catalog comes out in several files. Wix also says: “Exporting digital products is not currently supported.” Downloads such as e-books, courses or audio files are set up again by hand in WooCommerce, which has its own downloadable product type.
Reshaping the CSV for WooCommerce
The two platforms use different columns, so the Wix file can’t go straight into WooCommerce. According to Wix’s product import guide, which describes the same file format:
- A
handleIdcolumn ties each variant row to its product, and afieldTypecolumn marks each row as a Product or a Variant. - Product images go in a
productImageUrlcolumn, up to 15 per product, separated by semicolons.
WooCommerce’s import schema expects different conventions:
- A product with options is a
variableproduct, and each option is a row of typevariationwhose Parent column names the parent’s SKU or ID. - Images are a comma-separated list of URLs in the Images column, and “The first image is the featured image.”
- Attributes, such as Size or Color, go in numbered attribute name and value columns, and the names and values on each variation must match the parent’s.
For a store of simple products with no options, reshaping the file is spreadsheet work an owner can do. Products with variants take more care, and a developer or a test import on a staging site is the safer route.
Importing products into WooCommerce
When you run the importer, WooCommerce matches the columns it recognizes and shows a column mapping screen, where you can map the rest by hand or skip them. Columns it doesn’t recognize aren’t imported unless you map them. A few limits from WooCommerce’s documentation:
- Images must be reachable at their URLs, and WooCommerce copies them into the media library. Links that go through a redirect, as some cloud storage links do, aren’t supported.
- The built-in importer can’t set alt text on product images, so add it afterward for accessibility and search.
- Large imports depend on the server’s memory, upload size and time limits. WooCommerce recommends a backup, a small test import on a staging site, and splitting the file into smaller batches.
Keep product URLs the same
WooCommerce’s permalink settings, under Settings > Permalinks, include a Custom base for product URLs. Setting it to product-page produces addresses in the same form as Wix’s /product-page/{product slug}. The same screen sets the product category base, which defaults to product-category. WooCommerce notes that the product base and the category bases must not clash, so if you set a store category base to match Wix’s /category/ pattern, make sure the blog’s category base uses something else.
What happens to Wix orders, contacts and members?
Orders and contacts export as CSV files. Members can’t be exported, so they sign up again on the new site.
Orders. Wix exports orders as CSV, and the purchase times in the file are in Coordinated Universal Time (UTC). WooCommerce’s built-in CSV tool covers products, not orders, so the simplest option is to keep the Wix order export as the record of past sales. If customers need to see their order history on the new site, a developer can import it, but that is a separate job worth pricing before you commit to it.
Contacts. Wix exports contacts, up to 50,000 at a time, as a regular, Google or Outlook CSV file. Use the regular format if you need fields such as email subscription status, which Wix says the Google format doesn’t support. Contacts go into whatever email marketing tool or CRM the new site uses, not into WordPress user accounts.
Members. Wix’s Help Center says: “Although it is possible to export your contact list and import it to another site, due to privacy concerns, it is not possible to export and import your member list.” Passwords can’t move either. Members also appear in your contacts, so you can email them before launch to explain the change and give them the new sign-up link. A developer can pre-create accounts from a list (WP-CLI’s wp user import-csv command does this), but members would still set new passwords, and creating accounts for people without asking may conflict with your privacy policy, so check that first.
Pricing plans, paid memberships and member-only pages are rebuilt with a WordPress membership plugin. Decide how existing subscribers will be billed after the move before you announce it.
How do you move Wix media to WordPress?
Download your media from Wix folder by folder, and let the blog and product imports copy the images they use. Wix’s Media Manager lets you select and download several files within a folder, but “Currently, you cannot bulk download all your media files at once.” Board folders can’t be downloaded in bulk either. And “Only images and videos that you have uploaded can be downloaded. Free Wix and Shutterstock media cannot be downloaded.” Any free Wix or Shutterstock image on the site has to be replaced or licensed separately.
Media reaches WordPress by three routes:
- Blog images can come across with the blog import, when the WordPress Importer downloads the attachments listed in the WXR file.
- Product images come across with the WooCommerce import, from the image URLs in the CSV.
- Everything else is downloaded folder by folder from the Media Manager and uploaded to the WordPress media library.
The first two depend on files still being online at Wix, so finish both imports before the Wix site goes offline. Then check that no page on the new site still loads images from a Wix address.
What happens to Wix forms and bookings?
Both are rebuilt in WordPress. Past form submissions and the booking list export as CSV files, but the forms and booking services themselves don’t export.
Forms. Each form is rebuilt in a WordPress form plugin, including its fields, confirmation message and notification emails. Past entries can be kept: Wix’s submissions table exports to CSV, with dates and times in UTC.
Bookings. The Wix Bookings booking list exports to CSV. Wix notes that the list loads in sections, so scroll to the bottom before exporting to include every booking. Service settings can’t be moved: “Currently, it’s not possible to export or import the configuration of services in Wix Bookings,” according to Wix’s feature request page. Services, durations, prices, staff and availability are entered again in a WordPress booking plugin or an outside booking service.
Plan the switch around upcoming appointments. Export the booking list close to launch, enter future bookings in the new system, and stop taking bookings on Wix once the new system is live.
How do you set up redirects from Wix to WordPress?
Export Wix’s redirect list, map every URL that changes to its new address, and add 301 redirects on the WordPress site. A 301 redirect tells browsers and search engines that a page has moved permanently. Wix’s redirects run on Wix’s servers, so they stop applying once the domain points to WordPress.
There are two sets of redirects to carry over:
- The redirects you already have on Wix. Wix lets you export your redirect list as a CSV file with two columns: the old URL and the URL it redirects to. Update the second column wherever that destination is changing too, so each old URL points straight to its final WordPress address.
- Every URL that changes in the move. Take these from the spreadsheet you built from the sitemap. URLs you kept the same, such as pages with matching slugs and posts or products under matching permalinks, don’t need one.
Google’s site move guide adds three rules worth following:
- Use permanent redirects (301 or 308) on the server where possible.
- Avoid chains. Redirect each old URL directly to its final address, not through a series of hops.
- Don’t send everything to the home page. Pointing many old URLs at one unrelated page confuses visitors, and Google may count it as a soft 404. Redirect each page to its closest replacement.
Google also recommends keeping redirects “for as long as possible, generally at least 1 year.”
Where to add redirects in WordPress
- A redirect plugin. Redirection, a free plugin in the WordPress.org directory with more than 2 million active installations, manages 301 redirects from the dashboard and logs 404 errors. It can import and export redirects as CSV, so the Wix export and your spreadsheet can be loaded in bulk once the columns match what the plugin expects. Owners can add or change redirects later without a developer.
- Server rules. Your host may support redirect rules in the web server’s configuration. Setting them up usually needs a developer or the host’s support team.
- Code in a plugin. For patterns, such as an entire Wix URL prefix that changes, a developer can write the rule once in a small plugin using WordPress’s own
wp_safe_redirect()function, which only redirects to allowed hosts, such as the site itself. Its default status is 302, a temporary redirect, so the code has to ask for 301 explicitly.
For a few dozen redirects, entering them by hand in a plugin is fine. For hundreds, or for URL patterns, a developer can build the rules from the spreadsheet and test them all at once. Drupal 7 End of Life: Migrating to Current Drupal or WordPress describes the same redirect and WP-CLI work from a different starting platform.
How do you move a Wix domain and business email?
How you handle the domain depends on where it’s registered.
If you bought the domain from Wix, you have two options:
- Transfer it away. You request an EPP code, also called a transfer authorization code, which Wix emails to the registrant contact on the domain, and you give it to the new registrar. Per Wix’s transfer guide, “You cannot transfer a domain within 60 days of purchase,” and changing the registrant contact information locks transfers for 60 days. After the transfer, Wix disconnects the site and DNS is managed at the new provider.
- Keep it at Wix and point it elsewhere. Wix lets you connect a Wix domain to an external site by editing its DNS records, usually an A record and a CNAME record your WordPress host gives you. “It is not possible to change the name servers of a Wix domain,” so ask your host for record values rather than name servers.
If the domain is registered elsewhere and connected to Wix, change its DNS records at your registrar to point to the WordPress host.
Business email. Email on your domain depends on its MX records, not on the website. Wix’s transfer guide says: “You need to add the MX records again after the transfer in order for the business email to work.” Before changing anything, write down every DNS record the domain has, including MX and TXT records, and recreate them wherever the DNS ends up. If email stops working after the switch, check the MX records first.
Wix to WordPress migration steps, in order
The general checklist in Outgrown Squarespace or Wix? applies to any move. For Wix specifically, this order keeps the old site running until the new one is checked:
- Inventory. Build the URL spreadsheet from the Wix sitemaps, and export the existing redirect list.
- Export the data. Products, orders, contacts, CMS collections, form submissions and the booking list, all as CSV. Note which media is free Wix or Shutterstock media that can’t be downloaded.
- Set up WordPress on a staging site. Set the post and WooCommerce permalinks before importing anything, so imported content gets the right URLs from the start.
- Build the structure. The theme, the plugin that registers custom post types, and the plugins for the store, forms, bookings and redirects.
- Import. Blog posts, CMS collections and products, while the Wix site is still online so images can be copied.
- Rebuild. Pages, menus, forms, booking services and member pages.
- Redirects. Enter or generate every redirect from the spreadsheet.
- Check. Run the pre-launch check below on the staging site.
- Switch. Change the DNS during a quiet period, recreate MX records, and confirm email works.
- Watch, then cancel. Monitor for errors for several weeks. Cancel the Wix plan only once the new site has been stable and nothing still loads from Wix.
Canceling a Wix Premium plan leaves any domain, app or business email subscription in the account active; Wix’s cancellation guide lists those as separate cancellations.
Pre-launch check for a Wix to WordPress move
Counts. Compare the numbers on both sites:
| Item | Where to count on Wix | Where to count on WordPress |
|---|---|---|
| Pages | Pages sitemap | Pages screen |
| Blog posts, categories and tags | Blog dashboard, blog sitemaps | Posts, Categories and Tags screens |
| Products and variants | Products CSV rows | Products screen, each product’s Variations tab |
| CMS items | Rows in each collection CSV | Each custom post type’s screen |
| Images | Media Manager folders | Media library |
Redirects. Test every redirect from the spreadsheet, not just a sample. Each old URL should return a 301 and land on the right page in one step. Start with the pages that bring the most traffic.
Functions. Submit every form and confirm the notification arrives. Place a test order. Make a test booking. Register as a new member. Send and receive email on the domain.
Search. Remove any noindex setting or robots.txt block used to keep the staging site out of search results; Google’s guide lists forgetting this among the common mistakes in a site move. Check that each page has its title and meta description, and submit the new sitemap in Google Search Console.
After launch, watch for 404 errors. Check Google Search Console’s indexing reports for crawl errors, and check the 404 log in your redirect plugin if it keeps one, as Redirection does. Add a redirect for each missing URL that had traffic or links. Google says most pages on a small or medium site are processed within a few weeks of a move, and that search visibility can rise and fall while that happens.
When does a Wix to WordPress move need a developer?
Much of a Wix to WordPress move is work an owner can do: rebuilding pages, copying a small blog, reshaping a simple product CSV, downloading media and rebuilding forms. A developer is usually needed for:
- Blog API conversion, for blogs too large to copy by hand.
- CMS collection mapping, including the plugin that registers the custom post types and the import script.
- Products with variants, if the CSV reshaping gets complicated.
- Bulk or pattern-based redirects, and testing them all before launch.
- Order history or member accounts, if you decide to bring them across.
Ask for a written list of what will be imported automatically, what will be rebuilt by hand, and what won’t move at all. That list also makes quotes easier to compare.
Next step: planning your Wix to WordPress move
Start with the URL spreadsheet and a count of everything in the table at the top of this guide. Together they show how big the move is and which parts need a developer. If you’d like help, see custom WordPress plugins and themes. The process and pricing are published, and you can get in touch to talk through your Wix site and what it needs on WordPress.