A WordPress-to-Webflow migration takes 2–6 weeks depending on site size, and the biggest risk isn’t the build — it’s losing your existing SEO rankings. This guide covers the full process: content audit, URL mapping, CMS setup, redirect configuration, and testing. Skip any step and you’ll pay for it in lost traffic.
When migration makes sense — and when it doesn’t
Move to Webflow if:
- Your WordPress site has performance problems you can’t solve with hosting upgrades and plugin cleanup (PageSpeed under 60, TTFB over 800ms)
- You’re spending significant time on WordPress maintenance — plugin updates, security patches, database optimization
- Your design team is bottlenecked by theme limitations and you want visual control without custom PHP development
- You’re rebuilding the site anyway and don’t need WordPress-specific functionality (WooCommerce, membership systems, complex multilingual setups)
Stay on WordPress if:
- You run an e-commerce store with 500+ products (WooCommerce is far more mature than Webflow’s e-commerce)
- You need full Arabic/English bilingual support with RTL — WordPress handles this better through WPML or Polylang
- You rely heavily on WordPress-specific integrations (LMS plugins, booking systems, custom post type workflows)
- Your content team publishes daily and depends on the WordPress editor
Being honest about this saves everyone time and money.
Step 1: Audit your current WordPress site
Before touching Webflow, document everything on your existing site.
Content inventory:
- Total number of pages (static + blog posts + custom post types)
- Which pages actually get traffic (check Google Analytics — many WordPress sites have dozens of pages with zero visits)
- Media files that need migrating (images, PDFs, videos)
- Forms and their destinations (contact forms, newsletter signups, lead magnets)
- Third-party integrations (CRM connections, payment processors, analytics tools)
URL mapping:
Create a spreadsheet with every URL on your current site and its planned equivalent on Webflow. This is the single most important document in the migration.
| WordPress URL | Webflow URL | Type | Notes |
|---|---|---|---|
/about-us/ | /about | Static page | Remove trailing slash |
/blog/2024/03/seo-tips/ | /blog/seo-tips | CMS item | Flatten date structure |
/services/web-design/ | /services/web-design | Static page | Keep path |
/wp-content/uploads/guide.pdf | /assets/guide.pdf | Asset | Re-upload to Webflow |
Check your backlink profile. Run your domain through Ahrefs or Google Search Console to identify which pages have external links pointing to them. These pages must have redirects — losing backlinked pages means losing domain authority.
Step 2: Set up your Webflow CMS structure
Map your WordPress content types to Webflow CMS collections.
Common mappings:
| WordPress | Webflow CMS |
|---|---|
| Posts | Blog collection |
| Pages | Static pages (not CMS) |
| Categories | Category collection (referenced) |
| Tags | Tag collection (referenced) or multi-select |
| Custom Post Types | Custom CMS collections |
| Media Library | Webflow Asset Manager |
Key CMS decisions to make early:
- Slug format: Webflow auto-generates slugs from the Name field. Set up your naming convention before importing content.
- SEO fields: Add custom fields for meta title, meta description, and OG image on every collection. Webflow’s built-in SEO fields work, but custom fields give you more control.
- Rich text vs. structured fields: If your WordPress posts use ACF (Advanced Custom Fields) for structured layouts, consider using Webflow’s component fields or separate CMS fields instead of dumping everything into Rich Text.
Step 3: Build the Webflow site
This is the design and development phase. The specifics depend on your project, but these points are universal:
- Build the blog template first. It’s the most complex CMS-driven page and exposes structure problems early.
- Set up dynamic meta titles and descriptions on collection templates using CMS fields. Don’t leave them as static text.
- Configure Open Graph tags for social sharing — title, description, image.
- Build mobile-first. UAE traffic is over 60% mobile — if the mobile version doesn’t work perfectly, the desktop version is irrelevant.
Step 4: Migrate your content
There are three approaches, and the right one depends on how much content you have.
For small sites (under 50 pages): Copy and paste manually. Tedious but gives you the cleanest result. Use this as an opportunity to edit and improve content during migration.
For medium sites (50–200 pages): Export WordPress content to CSV (using WP All Export or the built-in WordPress export tool), clean the data in a spreadsheet, then import into Webflow CMS using Webflow’s CSV import feature.
CSV import tips:
- Clean HTML tags from content before importing — Webflow’s Rich Text field handles basic formatting but chokes on WordPress’s auto-generated markup
- Map image URLs to a separate column and re-upload images to Webflow’s CDN after import
- Test with 5–10 items before importing the full dataset
For large sites (200+ pages): Consider a migration tool like Udesly or a custom script that uses Webflow’s CMS API to push content programmatically. This is where hiring a Webflow development team often pays for itself — the time savings on a 500-page migration can be significant.
Step 5: Set up 301 redirects
This is the step most migrations get wrong, and it’s the one that causes the most damage.
Every old WordPress URL must redirect to its new Webflow equivalent using a 301 (permanent) redirect. Without this, Google sees your old pages as dead links and your new pages as brand-new content with zero authority.
In Webflow: Go to Project Settings → Hosting → 301 Redirects. You can add redirects individually or bulk-import via CSV.
Common redirect patterns:
| Old WordPress pattern | Webflow redirect |
|---|---|
/blog/2024/03/post-name/ | /blog/post-name |
/category/seo/ | /blog?category=seo or /blog |
/tag/dubai/ | (redirect to relevant page or blog index) |
/wp-content/uploads/file.pdf | /assets/file.pdf |
/?p=123 (old numeric URLs) | /blog/actual-post-name |
/feed/ | (remove or redirect to blog) |
Don’t forget:
- WordPress generates dozens of system URLs (
/wp-admin/,/wp-login.php,/xmlrpc.php,/wp-json/) — redirect the public-facing ones and ignore the rest - Check for trailing slash differences —
/about/vs/aboutcan cause redirect loops if not handled - Test every redirect before going live using Screaming Frog or a browser redirect checker
Step 6: Configure SEO settings
Before launch, verify every SEO element on your Webflow site:
- Sitemap: Auto-generated at
/sitemap.xml. Exclude utility pages (thank-you, password-protected, staging pages). - Meta titles and descriptions: Check every static page and test the CMS template with live collection items.
- Heading hierarchy: One H1 per page, proper H2 → H3 nesting. Common Webflow mistake — designers use heading tags for visual sizing.
- Image alt text: Must be populated on every image. Webflow doesn’t auto-generate alt text.
- Structured data: Add JSON-LD for Organization, LocalBusiness, and Article schema via custom code.
- Canonical URLs: Webflow auto-sets these, but verify they point to the correct URLs.
- Robots.txt: Check that your staging subdomain is blocked and your production domain is open.
Step 7: Test everything before launch
Pre-launch checklist:
| Test | Tool | Pass criteria |
|---|---|---|
| All redirects resolve correctly | Screaming Frog | Zero 404s from old URLs |
| PageSpeed mobile score | PageSpeed Insights | 80+ (aim for 90+) |
| All forms submit correctly | Manual testing | Submissions arrive in inbox/CRM |
| CMS items display properly | Visual review | No broken layouts, missing images |
| Mobile layout on iOS and Android | Real devices | No overflow, readable text, tappable buttons |
| SSL certificate active | Browser check | Padlock icon, no mixed content warnings |
| Analytics tracking fires | Google Tag Assistant | Pageviews recording correctly |
| Search Console connected | Google Search Console | Sitemap submitted, no errors |
Run this checklist twice — once on the staging domain and once immediately after pointing your production domain to Webflow.
Step 8: Launch and monitor
Launch day:
- Point your domain’s DNS to Webflow’s hosting
- Force SSL in Webflow’s hosting settings
- Submit the new sitemap in Google Search Console
- Monitor the Redirects tab for any 404 errors over the first 48 hours
First 30 days:
- Check Google Search Console weekly for crawl errors, dropped pages, or indexing issues
- Compare organic traffic week-over-week against pre-migration baselines
- Monitor Core Web Vitals — your scores should improve over WordPress, but verify
Expect a short dip. Even with perfect redirects, Google takes 2–4 weeks to recrawl and reassess your site. A temporary 10–15% fluctuation in organic traffic is normal. If you see a drop exceeding 30%, check your redirects first — missed redirects are the cause 90% of the time.
Migration timeline: what to expect
| Site size | Timeline | Typical cost (AED) |
|---|---|---|
| Small (under 20 pages, no blog) | 1–2 weeks | 8,000–15,000 |
| Medium (20–100 pages, blog with CMS) | 3–4 weeks | 15,000–35,000 |
| Large (100+ pages, complex CMS, integrations) | 4–8 weeks | 35,000–80,000+ |
These ranges assume a professional migration with SEO preservation. DIY migrations are cheaper upfront but often cost more in lost traffic and post-launch fixes.
Your next step
If you’re considering a migration, start with Step 1: audit your current site. Specifically:
- Check your traffic. Open Google Analytics and identify which pages actually receive organic visits. These are the pages you absolutely cannot lose during migration.
- Export your URL list. Use Screaming Frog (free for up to 500 URLs) to crawl your WordPress site and generate a complete URL inventory.
- Estimate your scope. Count your pages, blog posts, and custom post types. This determines your timeline and budget.
If the migration scope is larger than you expected, or if you have significant organic traffic you can’t afford to lose, talk to a team that’s done this before. A botched migration can take months to recover from — and some lost rankings never come back.