How to migrate from Webflow to WordPress
Webflow exports each CMS Collection as a CSV file and, on a paid Workspace plan, the site's HTML, CSS and JavaScript. Neither is a site WordPress can import. The content is carried across, the design is rebuilt, and every old address is redirected.
- By
- WP Ministry
- Published
In short
- Webflow exports CMS content as CSV, one Collection and one locale at a time. Static pages have no content export.
- Code export needs a paid Workspace plan and leaves out CMS content, forms and search. It is a reference for the rebuild, not a WordPress theme.
- Image addresses in the CSV point back at the Webflow site. Copy every image to WordPress before that site is deleted.
- WordPress has no CSV importer of its own. A Collection arrives by hand, through an import plugin or by a script.
- Put the redirects on the WordPress site. Webflow's own 301 rules stop applying once the domain points somewhere else.
- Change the DNS last, and keep the Webflow Site plan until the new site has been checked on your domain.
Webflow has no export that WordPress can import as a site. As of October 2026, its help center describes two exports: each CMS Collection as a CSV file, and, on a paid Workspace plan, the site's HTML, CSS, JavaScript and images as a ZIP file. The CSV carries your content. The ZIP carries how the pages look, with the CMS content, the forms and the search left out.
So this move is content brought across and a design rebuilt, with every old address redirected to its new one. This guide is for WordPress installed at a hosting company you choose.
Should you move?
A WordPress site is files and a database that you hold. You can change its host, its theme or the person who works on it without building it again, and features are added by plugins.
In return, you take on work that Webflow now does for you. Webflow describes its hosting as "a completely managed solution", so that you do not "have to worry about scalability, site downtime, or applying security patches". On WordPress those jobs belong to you or to someone you pay.
Staying on Webflow is the better choice when:
- The design is the point. Webflow's interactions and animations have to be made again, and they may not come out the same.
- Nobody will look after a WordPress site. A WordPress site that nobody updates falls behind. On Webflow, the patches are applied for you.
- The problem is who can edit. Webflow has a content editor role for changing copy, media and CMS content without touching the design. If you depend on one designer for small text changes, that may be the fix.
If cost is the reason, add up both sides first. On WordPress you pay for hosting, for any paid theme or plugin, and for the time of whoever keeps it updated.
What moves and what does not
This table follows Webflow's help center as of October 2026. What a plan includes changes, so check your own account before you rely on a row.
| What | How it leaves Webflow | In WordPress |
|---|---|---|
| CMS Collection items, such as blog posts, team members or projects | A CSV file for each Collection, archived items included | Imported from the CSV. |
| Rich text fields | As HTML inside the CSV | Becomes the body of the post. Check headings, links and embeds. |
| Image and file fields | As addresses that point at the Webflow site, not as files | Each file is downloaded and added to the Media Library. |
| Reference and multi-reference fields | As plain text. A multi-reference field is a list separated by commas | Set again as categories, tags or links. |
| Other languages | The CSV holds only the locale you are viewing, and the code export only the primary locale | WordPress's documentation says it does not support a multilingual site "out-of-the-box". Languages need a plugin or a site each. |
| Static pages | No content export. Their HTML is in the code export | Rebuilt in the block editor. |
| Design, interactions and animations | As HTML, CSS and JavaScript in the code export, on a paid Workspace plan | Rebuilt in a WordPress theme. |
| Forms | Past submissions as a CSV for each form. The forms do not work in exported code | Rebuilt with a form plugin. |
| Site search and password-protected pages | Neither works in exported code | WordPress has a search of its own, and a page can be given a password. Set both up again. |
| User Accounts (memberships) | Webflow ended this feature on January 29, 2026 | See the questions at the end. |
| Ecommerce products, variants and categories | One CSV from the Ecommerce panel | WooCommerce's product importer takes a CSV. You match the columns on its "Column mapping" screen. |
| Ecommerce orders | A CSV from the Orders tab | Kept as a record. WooCommerce's built-in importer is for products only. |
| SEO titles, descriptions and Open Graph settings | No export is described | Entered again. |
| 301 redirects made in Webflow | A CSV export | Rewritten as rules on the WordPress site. |
How long the move takes depends on what you can count: the static pages, each rebuilt by hand; the Collections and how their fields refer to each other; the images; the animations; the addresses that change; and whether there is a second language or a store.
Other builders export different things: see the guides to moving from Wix and moving from Squarespace.
Before you start
- Check what the site is built with. If you inherited the site, the platform detector shows the platform behind its address.
- Keep the Webflow Site plan. You need the live site to copy from, and its images are still loaded from Webflow until you move them.
- Find out which plan you have. Webflow says code export is available on paid Workspace plans, and that a Site plan does not include it. Without it the move still works: you rebuild from the live pages.
- Know who holds the domain. Webflow says it is not a domain registrar, so the DNS records are edited wherever the domain is registered. Make sure you can sign in there.
- Read the order of a move once. The website migration checklist covers what to list first, what to do on the day and what to keep afterwards, on any platform.
Move the site
Step 1: List every page and Collection
Open
/sitemap.xmlon your domain. Webflow generates that file when "Auto-generate sitemap" is on, under Site settings, the SEO tab, Sitemap. Copy every address into a spreadsheet with a column beside it for the new address.A static page with indexing switched off is left out of the sitemap, so compare the list with the Pages panel. Mark each address as a static page or an item in a Collection. For each Collection, write down its fields and its Collection URL.
Step 2: Export each Collection
In Webflow, go to the CMS panel, click the name of the Collection, and click "Export". Webflow says this exports the entire Collection, archived items included.
The file holds only the locale you are viewing. If the site has more than one, switch the locale view and export again for each. Then open each file and read its first row: it names the columns you will map in WordPress.
Step 3: Export the rest of the data
- Form submissions. Site settings, then Forms. Click "View submissions" for a form, then "Export all" on the Submissions tab. Files that visitors uploaded are in the CSV as addresses, and Webflow recommends saving them.
- Redirects. Site settings, then Publishing, then 301 redirects. Click "Export". Webflow sends a link to the file by notification and by email.
- A store. Ecommerce panel, then Products, then "Export" for products, variants and categories. Orders are exported from the Orders tab under the CMS tab.
Step 4: Export the code, if your plan allows it
Open the site in Webflow, go to the Main menu, choose "Code export", click "Prepare ZIP" and download the file.
Webflow says the ZIP holds an .html file for each page, a CSS folder, a JS folder and an images folder with the images from the Assets panel. It leaves out CMS content, Ecommerce, form processing, site search, password protection and every locale but the primary one.
So the export is a record of the design, with the exact sizes, colors and type settings in its CSS. It is not a WordPress theme and cannot be uploaded as one, though someone building a custom theme can work from it. Do not count on it for the images in your Collections: Webflow says CMS content is not included, and the CSV gives those images as addresses.
Step 5: Install WordPress at a temporary address
Set WordPress up at your new host on a temporary address, not yet on your domain. Go to Settings, then Reading, and tick "Discourage search engines from indexing this site". WordPress's documentation says this asks search engines to stay away and does not block access.
Then go to Settings, then Permalinks. A new site starts on "Plain", with addresses like
/?p=123. Choose "Post name", or enter a "Custom Structure". The section on addresses below says which.Step 6: Decide where each Collection goes
WordPress keeps content in post types. Posts and pages are built in.
- A blog Collection becomes posts.
- A Collection of another kind, such as team members or projects, becomes a custom post type. WordPress's documentation recommends defining one in a plugin, not in the theme, so that the content is not lost when the theme changes.
- A Collection used only to group others, such as categories or authors, becomes categories or tags.
Step 7: Import the CSV files
WordPress has no CSV importer of its own. Its Import screen, under Tools, lists importers for Blogger, LiveJournal, Movable Type and TypePad, RSS, Tumblr and WordPress's own export file, and none for CSV or for Webflow. There are three routes.
- By hand. For a few dozen items, make each post, paste the text, and set its slug and date to match the CSV.
- An import plugin. WordPress's documentation on importing names WP All Import for XML and CSV files. Its listing says it imports posts, pages, categories and tags, and puts importing into custom fields and downloading images from addresses in the file among the features of its paid version. Other plugins do the same job. Check what one imports before you rely on it.
- A script. A developer can read the CSV and create each post with WP-CLI's
wp post create, which sets the post type, title, slug, date and content. This suits large Collections and fields that refer to each other.
Whichever you choose, keep each item's slug, and import a few rows first.
Step 8: Move the images onto your own site
Webflow keeps uploaded files on its own content delivery network and gives each one a public address. Open the CSV and look at an image address: the host name at its start is Webflow's, not yours. Webflow says these addresses "point back to the site you exported the Collection from", and that if the site is deleted, "those assets and links break, including images in rich text fields."
So every image is downloaded and added to the WordPress Media Library, and each post is pointed at the new copy. By hand: save the image, upload it, replace it in the post. With WP-CLI, one command downloads an image, adds it to the Media Library and makes it a post's featured image. Use an image address from the CSV and the post's ID in place of
123:Leave off
--featured_imageto attach the image without featuring it. Add--porcelain=urland the command prints only the image's new address, which replaces the old one in the post.bashwp media import "https://cdn.example.com/photo.jpg" --post_id=123 --featured_imageStep 9: Rebuild the static pages and the design
Each static page is made again as a WordPress page. Copy the text from the live site, give the page the slug it had on Webflow, and lay it out with blocks.
The header, the footer and the layout that every post shares belong to the theme. With a block theme, they are edited in the Site Editor, under Appearance, then Editor. A Webflow Collection page is one template for every item in its Collection. Its WordPress counterpart is the theme's template for that post type.
Step 10: Rebuild forms, search and protected pages
Rebuild each form with a form plugin. Send a test entry through each one and see that the mail arrives. Add a search box to the theme. Give each protected page a password again: the status setting in the WordPress editor has "Password protected".
Step 11: Carry the titles and descriptions across
In Webflow these are set page by page in the Pages panel, under Page settings: "SEO settings" holds the "Title tag" and the "Meta description", and "Open Graph settings" holds a title, a description and an image.
A Collection page is different. Its settings are a pattern that fills in each item's title and description from the Collection's fields, so the words are in your CSV, in whichever columns the pattern uses.
WordPress's documentation of a page's settings lists a featured image, an excerpt, a slug, categories and tags among others, and no field for a search description or a sharing image. Those are entered in an SEO plugin. Copy each static page's settings by hand, and map the CSV columns for Collection items.
Addresses and redirects
Links on other sites, bookmarks and search results all point at your Webflow addresses. Webflow's own documentation says what happens to an old address with no redirect: the visitor is "led to a 404 page".
| Kind of page | On Webflow | On WordPress |
|---|---|---|
| Static page | The page's slug, such as /about. A page in a folder has the folder's slug first | The page's slug, such as /about/. A page with a parent has the parent's slug first, as in /about/board-of-directors/ |
| Collection item | The Collection URL, then the item's slug, such as /post/your-blog-post. A Collection page placed in a folder has the folder's slug before both | For posts, set by the permalink structure. For a custom post type, the type's slug, then the item's slug |
| Product or category | A reserved prefix that cannot be renamed, then the item's slug | Copy the exact addresses from your sitemap and map each one |
| Another locale | A subdirectory, as in Webflow's own example /es/old-url | Depends on how the languages are set up |
Match what you can. If your posts sit at /blog/post-title, the custom structure /blog/%postname%/ puts WordPress posts at the same path. Webflow slugs are lowercase, as WordPress slugs are, so a slug can be kept as it is. A Webflow folder becomes a parent page.
Watch the prefix on custom post types. A custom post type's slug defaults to the type's own name, and by default WordPress puts the fixed front part of the permalink structure before it. With /blog/%postname%/, a type called projects is served under /blog/projects/ unless it was registered with with_front set to false. Check the first imported item's address against the old one.
Do not assume the final slash. Webflow's examples are written without a slash at the end, and WordPress's with one. WordPress normally sends one form to the other by itself: see "What WordPress already redirects" in how to set up redirects in WordPress. Request an old address on the new site to be sure.
Carry Webflow's own redirects over. Redirects made in Webflow live under Site settings, then Publishing, then 301 redirects. They are applied by Webflow's hosting. Once your domain points at the new host, Webflow no longer receives those requests and the rules do nothing. So every redirect has to live on the WordPress side: the old ones from the file you exported, and a new one for each address this move changes. Point each old address straight at its final address, not at another redirect.
Rewrite the patterns. Webflow writes a wildcard as (.*) in the old path and %1 in the new one, and puts a % before characters such as - and ?. A WordPress plugin or a web server writes patterns differently, so a rule cannot be pasted across as it is.
The redirect map builder turns your spreadsheet of old and new addresses into 301 rules for Apache or nginx and points out chains, loops and duplicates. The redirects guide above covers the other places a rule can live.
DNS and launch
Check these on the temporary address first.
- Every row of the spreadsheet has a new page or a redirect.
- No image is still loaded from Webflow.
- Every form sends, and its mail arrives.
- You know which DNS records belong to your email. Webflow says it does not provide email hosting, so your mail records were never Webflow's. Leave them alone.
For the images, WP-CLI can search the database for the host name you saw in the CSV. The command prints each row that still holds it, and prints nothing when none do:
wp db search "cdn.example.com"Then make the switch.
Step 1: Give WordPress the real address
Change the site's address from the temporary one to your domain. How to change your WordPress URL covers the steps.
Step 2: Point the domain at the new host
To connect a domain, Webflow has you create an A record for the root, a CNAME record for
wwwwith the valuecdn.webflow.com, and a TXT record named_webflow. Replace the A and CNAME records with the ones your new host gives you. The TXT record can go. Webflow says DNS changes "may take up to 48 hours to propagate", though usually a few hours.Step 3: Check the live site
Untick "Discourage search engines from indexing this site" under Settings, then Reading. Send each form again. Run your old addresses through the redirect checker, which shows each hop and its status code. Each should reach its new page in one hop, with a 301.
Step 4: Then deal with Webflow
Do not unpublish or cancel before the checks pass. Webflow says unpublishing "works immediately". Canceling a Site plan removes the custom domain and unpublishes the site from the domain and from its webflow.io address, at the end of the billing period or at once if you choose. From then on the Webflow site serves no pages, takes no form entries and applies no redirects.
Webflow says existing pages and Collection items stay editable after a downgrade to the free plan, so the design is still there to refer to. Its warning about images is about deleting the site, so do not delete it until you are sure nothing loads from it.
After the move: what is now yours
Webflow did four jobs that are now yours.
- Hosting. The server, its speed and its certificate for HTTPS are between you and your host. Webflow's hosting included the certificate. Check that the new host has issued one.
- Updates. WordPress applies minor core updates by itself, and a site installed on version 5.6 or later applies major ones too. Plugins and themes update automatically only where you turn that on, one by one, with the "Enable auto-updates" link.
- Backups. A WordPress site is a database and a folder of files, and a backup needs both. WordPress's documentation suggests weekly backups for a small site and daily ones for a busy one, with three to five recent copies kept in different places.
- Security. Webflow applied security patches for you. WordPress's own guidance is that older versions are not maintained with security updates, so the updates above are the patches, and someone has to see that they are applied.
The WordPress maintenance checklist sets out what to do every week, month, quarter and year.
If you would rather hand the move over, ask for a free migration assessment. A platform migration is quoted in writing after a free assessment of what moves by itself and what has to be rebuilt.
Common questions
Can I use Webflow's exported code as a WordPress theme?
Not directly. The export is static HTML, CSS and JavaScript, and a WordPress theme is a set of templates that WordPress fills with content. A developer can build a custom theme using the export as the starting point. Without a developer, the export is a reference to rebuild from.
Do the animations come across?
No. Webflow's interactions run on JavaScript that ships with the Webflow site and is written for Webflow's own page structure. On WordPress they are made again in the new theme, so decide first which ones the site needs.
My site used Webflow User Accounts. What happens to the members?
Webflow's help center says it ended User Accounts on January 29, 2026, and that the user data was not moved into the CMS. A site that still has members keeps them in a separate membership tool. Ask that tool what its export holds, and whether passwords are in it. If they are not, members set a new one on the WordPress site.
When can I cancel Webflow?
After the domain points at the new site, the redirects have been checked and no image is loaded from Webflow. Canceling the Site plan unpublishes the site, so every form and redirect still running on Webflow stops then. Keep the site in your account until you are sure you need nothing more from it.
- ResourceWebsite migration checklist: before, during and after the move
- ResourceWebsite redesign SEO checklist: what to record, map and check on a rebuilt site
- Cost guideWordPress migration cost: which job you are being quoted for, and what moves the price
- GuideHow to migrate a website without losing SEO: what Google and Bing document
- GuideHow to migrate a WordPress site to a new host without downtime
- GuideHow to migrate from Shopify to WooCommerce

