From WordPress to Next.js: migrating without losing SEO (real case with numbers)
Client migrated from WordPress to Next.js: stable organic traffic, LCP from 4.2s to 0.9s, +35% conversion. 301 redirect plan, schema, performance, what to break and what to never touch.
Legal-tech client with 6 years on WordPress, 340 indexed URLs, decent domain authority (DA 38) and top-10 positions for 28 commercial keywords. Their problem: the site loaded in 4.2s on mobile, the WordPress dashboard was a battlefield of conflicting plugins, and every WooCommerce update broke something. They wanted to migrate to Next.js but were terrified of "losing all the SEO I've built for 6 years".
Result at 8 weeks post-go-live: stable organic traffic (-2% first month, +14% second, +27% third), 0 keywords lost from top 10, LCP from 4.2s to 0.9s on mobile, contact form conversion +35%, hosting bill from €89/mo (shared server + Cloudflare) to €18/mo (Vercel hobby + Supabase). The secret wasn't speed: it was that we DIDN'T break a single URL, schema or canonical tag.
Decision matrix: should you migrate? Migrate IF: (1) your mobile LCP is over 3s and you've exhausted cache plugins. (2) your dev team suffers with every WP/plugin update. (3) you need features WordPress does badly: real-time dashboards, AI/Claude integration, multi-tenant, serious i18n. (4) mobile traffic is growing and Core Web Vitals slow you down. DON'T migrate if: (a) your CMS is operated by marketing without a technical team — you lose visual editorial freedom. (b) you use WooCommerce with 500+ products and very specific plugins. (c) you have editorial content (large blog with non-technical writers) — first look at headless options like Sanity/Payload before going fully static.
The 301 redirect plan (most underrated step): download full sitemap.xml from WordPress + Search Console URLs (the ones receiving clicks). Cross both in a CSV. For each legacy URL write the new one. Four cases: (1) same URL → no redirect needed. (2) URL changes slightly (e.g. /sobre-nosotros/ → /about/) → direct 301. (3) URL disappears without a successor → 301 to parent section, NEVER to home (Google flags it as soft 404). (4) URL disappears without context → 410 Gone, not 404. Implement redirects in next.config.js or, if >100, in a Cloudflare Worker rule that runs before Next.js.
Replicating existing schema.org — what 80% forget: WordPress with Yoast or Rank Math automatically emits Organization, BreadcrumbList, BlogPosting, FAQPage, Person. Your Next.js must emit EXACTLY the same schemas, with the same @id, same URL and same structure. Run Schema.org Validator on 20 representative URLs BEFORE launch and THE DAY AFTER. If a migration loses BlogPosting.dateModified or Organization.@id, Google starts re-evaluating the entire site and you lose 30% traffic for 4-6 weeks.
Need help with your project?
Calculate your budget in 2 minutes with our interactive tool.
Performance: WordPress vs Next.js — the real benchmark from this project: WordPress home with 12 active plugins and WP Rocket cache → LCP 4.2s, CLS 0.18, TTI 6.1s, weight 2.4MB. Next.js home with SSG + ISR + next/image → LCP 0.9s, CLS 0.02, TTI 1.4s, weight 380KB. Those are real numbers measured with PageSpeed in production. The improvement comes from 3 places: (1) WebP/AVIF images generated at build vs WordPress serving 1MB PNGs. (2) JavaScript hydrating per component vs WordPress loading jQuery + 8 plugins on every page. (3) Static HTML cached at CDN vs WordPress generating HTML on-demand per visit.
The 5 things that ALWAYS break (saving you 3 weeks of panic): (1) Images with WP Smush's custom .webp extension break next/image — fix: build-time pipeline with sharp that regenerates EVERYTHING from originals. (2) Shortcodes embedded in posts (Elementor blocks, CF7 forms) — fix: identify the 8-10 most common patterns and create equivalent React components. (3) WooCommerce sessions: if you migrate the catalog to Shopify/Stripe, user sessions are invalidated — communicate 7 days ahead to customers and prepare cart recovery. (4) Schema markup with legacy @id — replicate IDENTICAL for the first 90 days. (5) Hreflang in multi-language sites — Next.js has quirks with i18n in App Router; use explicit <link rel='alternate' hreflang> in each page's metadata.
Real project timeline (6 weeks): W1 — complete audit: sitemap, schema, performance, plugins, external integrations, critical dependencies. Migration CSV approved by client. W2 — Next.js skeleton development: layout, header, footer, typography system, design tokens, first 5 templates. W3 — content migration: systematic scraping of existing WP, conversion to Next.js structure (MDX or JSON), image regeneration in sharp pipeline. W4 — replicate schemas, redirects, integrations (Google Analytics, Tag Manager, forms, CRM). W5 — full staging with temporary domain, exhaustive QA (clients test 100 random URLs), patch final bugs. W6 — DNS swap during low-traffic window (typically Sunday early morning), 72h monitoring, fine-tuning. Legacy WordPress remains 30 days in pre-prod as emergency rollback.
Indicative cost of a real 2026 migration (SprintMarkt pricing): simple corporate site (15-30 URLs, no e-commerce, no multi-language): €4,500-6,500. Site with large blog (100-300 URLs) + multi-language: €7,000-11,000. Corporate site + WooCommerce with 200+ products to Stripe/Lemon Squeezy: €12,000-18,000. Site with client dashboard / custom management panel: €16,000-25,000. All quotes include redirect plan, schema replication, image regeneration, staging testing with 5 client rounds and 60-day post-go-live monitoring.
Frequently Asked Questions
Direct answers to the most common questions on this topic.
What if my site has WooCommerce with 500+ products? Is it still worth it?
Can the client keep publishing content without coding skills?
How long does Google take to recover my rankings after migrating?
And essential plugins like forms, captcha, analytics, SEO? How are they replaced?
Is it worth migrating just for speed if my current site loads in 3s?
How do you handle production while migrating?
Have a project in mind?
Tell us your idea and we'll help make it happen. No-obligation quote.
Related articles
Web design trends 2026: what you need to know to update your website
The 10 most important web design trends of 2026: generative AI, glassmorphism, advanced dark mode, micro-interactions and conversion-centred design.
How much does a website cost in Spain in 2026?
Complete guide to web design and development prices in Spain in 2026. We break down costs by website type, price factors, hidden costs and how to choose the best provider.
How to choose a web development agency in 2026
Practical guide to choosing the right web development agency in 2026. What to look for, what to ask, red flags and comparison between agency, freelancer and in-house team.