DevelopmentMay 25, 2026·18 min read

From WordPress to Next.js without losing SEO: the complete technical guide (2026)

WordPress → Next.js migration guide written by a team that builds in Next.js daily: 301 redirect plan, schema replication, performance, what to break and what to never touch.

SM
SprintMarkt
Web Development Team

The fear is always the same: "I've spent years building my SEO on WordPress — what if I lose it all migrating to Next.js?". It's a reasonable fear — a badly executed migration breaks URLs, loses schemas and drops rankings. But it's also 100% avoidable: SEO loss in a migration never comes from the new technology, it comes from the details that break along the way. This guide is the complete list of those details.

Where we speak from: at SprintMarkt we build in Next.js daily — our own website (sprintmarkt.com) is a Next.js site with App Router, static export and two-language i18n, and we operate and optimize it ourselves. We know where it shines (speed, total control of technical SEO, zero conflicting plugins) and where it hurts (the framework quirks you'll see below). Everything that follows is the procedure we'd apply to your migration, not theory.

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.

Calculate budget

Performance: why Next.js wins (and why it's not automatic): the structural advantage 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. But beware: Next.js doesn't save you from your own mistakes — on our own site we found (with PageSpeed, measuring for real) a 23MB video loading in a homepage section and logos served at 10x their render size. Speed isn't the framework: it's the discipline of measuring. ALWAYS audit with PageSpeed before and after migrating, with real numbers, not feelings.

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.

Realistic migration 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 2026 migration (SprintMarkt rates): 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?

Depends on target stack. Migrating from WooCommerce to Shopify is reasonable if your store is standard (physical products, size/color, common payments). Migrating to Next.js + Stripe/Lemon Squeezy + Sanity is better if you sell something non-standard (complex subscriptions, marketplaces, configurators). For stores with 500+ products and stable operations, it usually pays to stay on WooCommerce + optimize hosting + aggressive CDN — migration ROI may be lower than cost.

Can the client keep publishing content without coding skills?

Yes, with a headless CMS. Options we use at SprintMarkt: (1) Sanity Studio — Notion-like visual interface, free up to 3 users + 10K docs, ideal for blogs and catalogs. (2) Payload CMS — open source, self-hosted, perfect if you want full control. (3) Contentful — more expensive but with granular permissions for large teams. (4) Notion as CMS via API — "low-tech" solution when client already uses Notion. The choice depends on editorial team size and content type.

How long does Google take to recover my rankings after migrating?

If you do it right (correct 301 redirects, replicated schema, preserved URLs, new sitemap submitted), you don't lose positions — they may even improve due to Core Web Vitals gains. If you break something, recovery takes 4-12 weeks depending on severity. Metrics to monitor during the first 60 days: Search Console coverage (404 errors, soft 404), Core Web Vitals, impressions per URL, average position. Any significant deviation → immediate review.

And essential plugins like forms, captcha, analytics, SEO? How are they replaced?

Typical mapping: Yoast/Rank Math → Next.js metadata API + manual JsonLd. CF7/WPForms → React Hook Form + own server-side endpoint (more control and privacy). reCAPTCHA → Cloudflare Turnstile (free, better privacy). Google Analytics → next/third-parties + GA4 (with consent banner). Smush/ShortPixel → sharp + next/image (at build). WP Rocket → not needed, Next.js caches by default. Yoast Local SEO → manual schema.org LocalBusiness + Google Business Profile. Mailchimp for WP → direct server-side integration with Mailchimp/Brevo API.

Is it worth migrating just for speed if my current site loads in 3s?

Probably NOT. For 3s on mobile there are €0-500 optimizations that get you to 1.5-2s without changing stack: well-configured WP Rocket, mass image conversion to WebP, removal of inactive plugins, Cloudflare Free as CDN + cache rules. Migrate when you're persistently above 4s AND have another structural reason (feature WordPress can't deliver, dev team friction, complex integrations). Speed alone rarely justifies migration cost.

How do you handle production while migrating?

Three options by safety order: (1) Recommended — staging.domain.com with HTTP basic auth for 4-6 weeks, all QA there, controlled DNS swap on Sunday early morning. (2) Sub-paths — /v2/ on production with noindex until launch, then path rewrite. (3) New domain (next.domain.com) until validation, then canonical and 301. We never migrate to direct production — SEO risk doesn't compensate the 2-3 days "saved".
#Next.js#WordPress#Migración#SEO técnico#Core Web Vitals#Headless CMS#React
Share:

Have a project in mind?

Tell us your idea and we'll help make it happen. No-obligation quote.

Presupuesto sin compromiso

Have a project in mind?en mente?

Tell us your idea and we'll help you make it happen. No-obligation quote.

Respuesta en 24h
100% confidencial
Sin compromiso