Webflow's pricing changed again in 2025. Your client's site is on Webflow Business at $49/month and they want it on WordPress — on hosting they control, with plugins they can manage, without a monthly platform fee. You've seen this request ten times. Here's the honest version of how a Webflow-to-WordPress migration goes, what breaks, and how to keep it from becoming a month-long project.
Why people migrate from Webflow to WordPress
Three reasons dominate in 2026:
- Cost at scale. Webflow's CMS limits and workspace pricing add up fast for growing teams. WordPress hosting at Kinsta or WP Engine is cheaper once you're past the basic plan.
- Plugin ecosystem. WooCommerce, ACF, WPML, Gravity Forms — WordPress plugins have a 20-year head start. Webflow's native capabilities for complex data are still limited.
- Client preference. Many clients learned WordPress first and don't want to learn a new CMS. Editors familiar with Gutenberg or Elementor produce content faster in WordPress.
What actually breaks in a Webflow-to-WordPress migration
Most migration guides gloss over this part. Let's be specific.
Webflow interactions
Webflow's Interactions system (IX2) generates proprietary JavaScript that runs off Webflow's own runtime. When you export your site, you get the HTML and CSS — but the interaction animations reference Webflow's CDN-hosted runtime scripts. In WordPress, those scripts are either unavailable (if you've moved fully off Webflow) or create a hard CDN dependency.
Workaround: capture the fully rendered page (post-JavaScript execution) rather than the Webflow export. The CSS output from IX2 interactions gets baked into the computed styles.
CSS variables and generated class names
Webflow generates class names like .div-block-247 and uses CSS custom properties for breakpoints. These work fine in isolation but clash with WordPress's own styles. WordPress loads a base stylesheet that sets typography and spacing on naked elements — p, h1, a, ul — and these override Webflow-generated styles if you haven't disabled them.
The fix: use theme.json to disable WordPress's default block styles and set your own base via the Webflow-generated CSS. Or use all: unset on the theme's root wrapper and re-scope everything.
Webflow's slug structure
If your Webflow CMS used collections (blog posts, team members, case studies), those URLs need to be preserved in WordPress or you'll lose ranking. Webflow uses /blog/post-name; WordPress defaults to /?p=123 unless you configure pretty permalinks. Match the structure exactly and set up 301 redirects for anything that changed.
Custom fonts via Webflow hosting
Webflow hosts fonts on its own CDN. When you move away, those font URLs break. Either switch to Google Fonts, upload font files to your WordPress theme's assets/fonts/ directory, or reference a font CDN that doesn't depend on your Webflow account.
The three approaches
Option A: Manual export + WordPress theme assembly
Export your Webflow site (Site Settings → Export Code). You'll get a zip with HTML files, CSS, and JS. Then follow the HTML to WordPress theme conversion process: split HTML into WordPress template files, enqueue CSS and JS via functions.php, and test.
Time: 8–20 hours. Webflow exports are not clean HTML. They contain Webflow-specific attributes, the IX2 runtime dependency, and CSS with Webflow's naming conventions. Budget more time than you'd expect.
Option B: Elementor recreation
Open Elementor on a fresh WordPress install, recreate your Webflow design section by section using Elementor's visual builder. This is the "nuclear option" — you lose the original code but get a fully editable, Elementor-native result.
Time: 15–40 hours for a complex site. Better fidelity than a rushed migration, but you're rebuilding, not migrating.
Option C: URL-based automated capture
Tools like StaticToWP bypass the Webflow export entirely. Paste the live Webflow URL, and the tool renders the page in a real browser environment — executing IX2 interactions, loading fonts, applying all computed styles — then packages the result as a WordPress theme zip.
Because it captures the rendered output rather than the source export, Webflow-specific runtime dependencies don't matter. The CSS is captured in its final computed form. Fonts are referenced from their actual CDN URLs (and can be bundled locally). The IX2 animation keyframes that get injected into <style> tags at runtime are captured as static CSS.
Time: under 60 seconds. The resulting theme is self-contained — no Webflow CDN dependencies.
Step-by-step: automated Webflow to WordPress migration
- Make sure your Webflow site is published and publicly accessible.
- Go to StaticToWP and paste your Webflow URL.
- Wait 30–60 seconds while the page is rendered and packaged.
- Download the
wp-theme.zip. - In WordPress: Appearance → Themes → Add New → Upload Theme, upload the zip, activate.
- Go to Settings → Reading, set "Your homepage displays" to "A static page", select any page as the homepage.
- Visit your WordPress site — your Webflow design renders pixel-perfect.
For CMS content (blog posts, team members): export from Webflow as CSV and import to WordPress via WP All Import. The WordPress theme's index.php, single.php, and archive.php are all included in the theme zip and use the inner page layout that inherits your design's typography and color cascade.
SEO considerations for Webflow to WordPress migration
Don't publish the WordPress site until these are done:
- Permalink structure: Settings → Permalinks → Post name (matches most Webflow URL patterns).
- Redirects: Install Redirection plugin. Map any URLs that changed (even if you think they didn't — Webflow sometimes appended trailing slashes).
- Meta tags: Install Yoast or Rank Math and re-enter meta titles and descriptions. Don't rely on the static HTML title tags from the Webflow export.
- Sitemap: Submit the new WordPress XML sitemap to Google Search Console. Deindex the old Webflow sitemap.
- Canonical tags: Ensure
rel="canonical"points to your WordPress URLs, not the old Webflow domain.
What you'll never lose with URL-based conversion
The specific wins over a manual Webflow export:
- Every CSS rule including Webflow's generated
.w-utility classes — captured in computed form - Custom fonts (referenced by absolute CDN URL or bundled locally)
- Animation keyframes from IX2 interactions
- Third-party embeds (Lottie players, video embeds) — included as-is
- Form fields and their visual styling (note: form submission logic needs a WordPress forms plugin)
- Responsive breakpoints — Webflow's generated media queries are captured verbatim
When not to use automated conversion
If your Webflow CMS has hundreds of collection items that need to be queryable in WordPress (via custom post types and WP_Query), automated conversion of the front-end won't replace the data migration. You'll need the theme plus a proper data import. The automated approach handles design; content migration is a separate step.
Also: if your Webflow site uses Webflow Logic (their native backend automation), you'll need to replicate that logic in WordPress — typically with a combination of WPForms, Zapier connectors, or custom PHP.