A WordPress to Webflow migration is a rebuild with a content import, not a transfer. Webflow's own help centre says there is no automated way to convert a site from another platform: you recreate the layouts, styles and CMS structure in Webflow, then bring the content in, usually as CSV files. The steps that decide whether you keep your search traffic are the dull ones: an inventory of every URL, collections designed before import, a 301 redirect map tested before the DNS changes, and the SEO fields carried across. Below are nine steps in the order we run them, a redirect map you can copy, a cutover checklist, and an honest list of what does not migrate cleanly. Webflow facts were checked on its help centre and pricing page on 23 October 2026.
Step 1: Decide that Webflow is the right destination
Do this before anything else, because some sites should not move. Our Webflow vs WordPress comparison covers licence, hosting, editing, custom code and price side by side, so this guide does not repeat it. The short version: Webflow suits a marketing site that a design or marketing team wants to edit visually without plugin upkeep. It is a poor fit for sites whose value lives in plugins.
Three cases deserve a hard look. Memberships: Webflow retired its User Accounts feature on 29 January 2026, so gated content now needs a third-party membership tool. Stores: a WooCommerce shop with a large catalogue, subscriptions or wholesale rules usually belongs on a commerce platform, not on Webflow Ecommerce. Very large or complex content: thousands of posts across many interlinked post types can hit Webflow's CMS limits (step 3).
Step 2: Inventory the WordPress site
You cannot redirect or rebuild what you have not listed. Build one spreadsheet with a tab for each of these:
- URLs. Combine the XML sitemap, a full crawl with a tool such as Screaming Frog or Sitebulb, and the Pages report from Google Search Console for the last 12 months. The crawl finds orphaned pages; Search Console finds URLs that still get traffic but are no longer linked. Include PDFs and images under /wp-content/uploads/ that other sites link to.
- Post types and taxonomies. Posts, pages, every custom post type, categories, tags and custom taxonomies, with item counts.
- Custom fields. Every ACF, Meta Box or Pods field group, the field type and which post types use it.
- Plugins. Every active plugin, what it does on the front end, and what replaces it.
- Traffic and links. Clicks per URL from Search Console and referring domains per URL from your backlink tool. This ranks the redirect work.
The plugin tab is where migrations get underestimated. A typical mapping:
| WordPress plugin type | What it does | Webflow replacement |
|---|---|---|
| SEO plugin (Yoast, Rank Math) | Titles, meta descriptions, canonicals, schema, sitemap | Native SEO settings per page and per CMS template, auto sitemap, custom code for schema |
| Form plugin (Gravity Forms, WPForms) | Forms, conditional logic, notifications, CRM sync | Native Webflow forms, plus Zapier, Make or n8n for routing and logic |
| Page builder (Elementor, Divi) | Layouts | Rebuilt in the Webflow Designer; nothing imports |
| Redirect plugin (Redirection) | 301s | Webflow 301 redirect settings (step 6) |
| Multilingual (WPML, Polylang) | Translations, hreflang | Webflow Localize, a paid add-on |
| Membership (MemberPress, Restrict Content) | Gated content, logins | Third-party membership tool |
| WooCommerce | Store | Webflow Ecommerce or a commerce platform |
| Caching, security, backups | Speed and safety on your own hosting | Handled by Webflow hosting; drop them |
| Search (Relevanssi, SearchWP) | Site search | Webflow site search on Premium, or a third-party search |
Webflow switched off its own automation tool, Logic, in June 2025, so form routing and conditional workflows now run in an outside tool. Our n8n vs Zapier vs Make comparison helps you pick one.
Step 3: Design the CMS collections
Design collections on paper before importing anything. A WordPress post type usually becomes a Webflow Collection; categories, tags and authors become their own Collections linked by reference fields; ACF fields become Collection fields. Then check the result against Webflow's limits.
| Webflow limit (checked 23 October 2026) | Starter | Basic | Premium | Team |
|---|---|---|---|---|
| CMS items | 50 | No CMS | 20,000 | 20,000, more for a fee |
| CMS Collections | 20 | No CMS | 40 | 100 |
| CMS API requests per minute | 60 | None | 120 | Not listed |
Figures are from Webflow's pricing page; Team also lists 100 fields and 20 reference fields per Collection. Webflow's help centre says non-Enterprise plans get up to 10 reference fields per Collection depending on the site plan, and Enterprise up to 20. On the page itself, a Collection list shows up to 100 items unless you paginate, and a page can hold up to 40 Collection lists with nesting up to three levels deep. Plan prices are in our Webflow pricing guide; any site with a blog needs Premium at least, because Basic has no CMS.
Where a WordPress site uses many relationships between post types (products to features to industries to case studies), count the reference fields each Collection needs. That is the limit that most often forces a redesign of the content model.
Step 4: Export from WordPress and import into Webflow
WordPress's Tools > Export screen produces a WXR file, an XML file holding posts, pages, custom post types, comments, custom fields, categories, tags, custom taxonomies and users. Webflow's WordPress migration guide suggests converting that XML to CSV and importing it Collection by Collection. An export plugin that writes CSV directly saves the conversion step and lets you pick columns.
Webflow's CSV import has rules worth knowing before you build the files:
- Each CSV can be up to 4 MB, so split large post types into batches.
- Name and slug values must be under 256 characters. Keep the WordPress slug in the slug column so URLs can stay the same.
- Reference fields match on slug. A plain-text value such as "Jane Austen" is turned into jane-austen and matched; if the item has a custom slug, put the slug in the CSV. Multi-reference values are separated by semicolons.
- Option fields take up to 100 distinct values. Number fields reject values with commas or currency symbols.
- Image fields need a direct URL to an image file. Images imported this way do not get responsive variants, so resize them first. File fields import nothing; upload files by hand.
- Webflow offers to back up the site before each import. Accept it.
Import in dependency order: authors, categories and tags first, then the posts that reference them. Run a test import of ten items, check every field on the published template, and only then import the rest.
For simple blogs there is a shortcut. The WP to Webflow app on Webflow's marketplace, built by Eclipse SRL, is free, reads a live WordPress site and imports posts, images, tags and categories into Collections. Its listing does not mention pages, custom fields or custom post types, so treat it as a blog importer. For large sites, the CMS API at 120 requests a minute on Premium is the scripted route.
Step 5: Clean the rich text and move the images
Post bodies are where imports go wrong quietly. WordPress content carries shortcodes, block-editor comments, page-builder markup, inline styles and embeds. Webflow accepts HTML in rich text fields but may strip elements, classes and attributes it does not support, so a shortcode such as a gallery or a call-to-action button comes through as literal text or disappears. Search the export for square-bracket shortcodes and for page-builder class names, and decide for each whether to convert it to plain HTML, rebuild it as a Webflow component, or drop it.
Images inside the body need the same care. Webflow's import guide covers image fields, but it does not say whether images referenced inside rich text HTML are copied to Webflow. Import a few posts and inspect the image URLs. If they still point at /wp-content/uploads/ on the old server, they will break the day that server is switched off, so move them to Webflow's assets first or keep the old media host running.
Rewrite internal links inside the body to the new URLs at the same time. Redirects will catch old links, but every internal link that goes through a redirect costs a hop.
Step 6: Build and test the redirect map
Every old URL that had traffic, backlinks or an index entry needs a 301 to its closest new equivalent. Google's site-move guidance asks for permanent redirects straight to the final URL, without chains, kept for at least a year. Use this format for the working map:
| Old URL | New URL | Rule type | Clicks, last 12 months | Referring domains | Checked by | Tested on staging |
|---|---|---|---|---|---|---|
| /2023/04/pricing-update/ | /blog/pricing-update | Pattern | 412 | 6 | [Name] | [Date] |
| /services/seo-audits/ | /services/seo | One-to-one | 1,180 | 14 | [Name] | [Date] |
| /category/news/ | /blog | One-to-one | 35 | 1 | [Name] | [Date] |
| /?p=1234 | /blog/launch-notes | One-to-one | 0 | 2 | [Name] | [Date] |
| /wp-content/uploads/2022/05/brochure.pdf | /resources/brochure | One-to-one | 90 | 9 | [Name] | [Date] |
| /author/sam/ | /about | One-to-one | 4 | 0 | [Name] | [Date] |
The rows above are examples. Your real rows come from the inventory in step 2. Sort by clicks and referring domains so the URLs that matter most are checked by a person.
In Webflow, redirects live in Site settings > Publishing > 301 redirects, which needs a paid plan. You can add them one by one or import a CSV of up to 16 MB with two columns, old path and new path. Four details from Webflow's redirect guide catch people out:
- An import replaces every existing redirect. Export the current list first, add your rows to it, then import.
- Patterns use capture groups. Webflow's own example sends
/blogs/(.*)/(.*)to/articles/%1/%2. A rule such as/2023/(.*)/(.*)to/blog/%2can cover a year of date-based WordPress permalinks; test how trailing slashes resolve before you rely on it. Webflow recommends no more than about 1,000 redirect rules in total, so use patterns where you can. - Order matters. Webflow runs redirects oldest first, so add specific rules before broad wildcards that would catch them.
- Some characters must be escaped with % in old paths, including ?, =, & and the hyphen, and a path with a trailing slash before a query string will not match. Localised paths such as /es/old-url need their own rules.
Test before launch. Point a staging copy of the site at the redirect list, run every old URL through a crawler in list mode, and confirm each returns a single 301 to a live 200 page. Fix chains and loops on staging, not in production.
Step 7: Carry the SEO over
- Titles and meta descriptions. Export them from your SEO plugin's fields (they travel in the WXR file as custom fields), import them into plain-text fields, and bind those fields to the SEO title and description on each Collection template. Set static page titles by hand.
- Slugs. Keep them the same wherever you can. An unchanged slug under a new folder still needs a redirect, but it is easy to pattern.
- Canonicals. Set the global canonical URL in Webflow and check any page-level canonicals your SEO plugin set.
- Schema. Rebuild Article, Organization, FAQ or Product markup in custom code on the templates, filled from CMS fields.
- Sitemap and robots.txt. Webflow generates the sitemap automatically; check it lists only pages you want indexed, and copy over any robots.txt rules you rely on.
- Alt text, Open Graph images and hreflang. Import alt text with images where you can, and set Open Graph images on templates. If the site is multilingual, set up Localize and check hreflang before launch.
- A useful 404 page, with search or links to the main sections, for the URLs your map missed.
Step 8: Rebuild forms and integrations
List every form, where its submissions go and what happens next. Native Webflow forms collect submissions and send notification emails; routing to a CRM, a Slack channel or a second system needs an integration or an automation tool. Re-add analytics and tag manager, chat widgets, consent banners, CRM tracking scripts and any third-party embeds, then submit every form on staging and confirm each submission arrives where it should. Comments have no import path in Webflow's CSV field types, so decide whether to move them to a third-party comment tool or archive them.
What does not migrate cleanly
- Plugin functionality. Nothing a plugin does on the front end moves on its own. Each one is rebuilt, replaced with a third-party tool or dropped.
- Complex custom post types. Deep relationships between post types run into reference field limits, and repeater or flexible-content fields in ACF have no direct equivalent in a Webflow Collection.
- Memberships and user accounts. These need a third-party tool since Webflow retired User Accounts.
- E-commerce. WooCommerce orders, customers and subscriptions do not import into Webflow. A store with real volume should be planned as its own migration.
- Files and media. File fields do not import, and media inside post bodies needs checking (step 5).
- Design. Themes and page-builder layouts are rebuilt by hand in the Designer.
Cutover checklist
| When | Task | Done |
|---|---|---|
| 2 weeks before | Content freeze date agreed; final URL inventory exported; redirect map signed off | [ ] |
| 1 week before | Full import on staging; redirects tested in list mode; forms submitted end to end; analytics firing | [ ] |
| 1 week before | DNS TTL lowered; access to the domain registrar and DNS confirmed; old site backed up in full, including the database and uploads | [ ] |
| Launch day | Final delta import of anything published since the freeze; redirects imported; site published; DNS switched | [ ] |
| Launch day | Spot-check the top 50 old URLs by traffic; submit the new sitemap in Search Console; check robots.txt is not blocking the site | [ ] |
| Day 1 to 7 | Watch 404s and server errors daily; fix missed redirects; keep the old server reachable for media until step 5 is confirmed | [ ] |
| Day 30 | Compare clicks and impressions with the 30 days before launch; review indexing; remove temporary workarounds | [ ] |
Step 9: Monitor Search Console after launch
Google says that for a medium-sized site it can take a few weeks or more for the new URLs to replace the old ones, and that rankings may fluctuate while it happens. In the first month, check the Pages report for new "Not found (404)" and redirect errors, the Sitemaps report for how many new URLs are indexed, and the Performance report filtered to your top pages, compared with the same period before launch. Keep the old sitemap for a while so you can watch the old URLs drop out. Use the Change of Address tool only if the domain itself changed; a migration on the same domain does not need it. Keep the redirects for at least a year, and in practice for as long as anyone links to the old URLs.
Doing it yourself, or bringing in help
A small brochure site or a blog with a few hundred posts and few plugins is a reasonable do-it-yourself project with this guide and a test import. The WordPress site keeps running until DNS switches, so the risk is mostly time.
Bring in help when the site has thousands of URLs, several custom post types, forms that must land in a CRM, a membership or store component, or search traffic the business depends on. Our Webflow work includes migrations from WordPress, and a Platform Migration starts at $7,000 fixed, from 4 weeks: data migrated and reconciled, a full redirect map, a rehearsed cutover with a rollback plan and 30 days of post-launch monitoring. If the move is also a redesign, a Webflow Website Build starts at $6,000 fixed. A store that should leave WooCommerce for a commerce platform is a different project; a store build starts at $9,000. Custom code components and integrations after launch can be handled by an embedded engineer at $3,000–$7,500 per engineer per month. We build on WordPress too, so if the inventory shows the site belongs where it is, we will say so.



