Migreren van WordPress naar Next.js: stappenplan 2026
Een WordPress-site naar Next.js migreren volgt 7 stappen: audit van bestaande content, export via WP REST API of plugin, keuze van Next.js-architectuur (app router + static export), redesign, 301's instellen om SEO te bewaren, validatie via Search Console, gefaseerde uitrol. Een goed uitgevoerde migratie behoudt de ranking en deelt de TTFB door 10. OptionWeb-sites: 4-8 weken afhankelijk van het volume.
WordPress draait in 2026 nog 43% van het web, maar de grenzen tonen zich snel: matige out-of-the-box prestaties (TTFB 600-1500ms), groot aanvalsoppervlak (43% van de webhacks volgens Sucuri 2024 viseren WordPress), plugin-afhankelijkheid, verborgen kosten in updates. Voor veel KMO's die we bij OptionWeb begeleiden is de vraag niet meer 'moeten we migreren?' maar 'hoe migreren zonder de SEO te breken?'. Dit is het volledige draaiboek toegepast op 30+ migraties.
1. Waarom migreren (en wanneer niet)
Migreren heeft zin in 4 gevallen: business-kritieke prestaties (e-commerce, agressieve lead gen), toch al geplande grote redesign, technisch team dat uit de legacy plugin hell wil, of internationale schaalbaarheid (native i18n in Next.js verslaat WPML/Polylang).
Niet migreren als: niet-technisch redactieteam zonder CMS-alternatief, budget < €10.000, redesign gewoon om 'modern te zijn' (echte reden onzichtbaar), of site met >100 kritieke plugins zonder Next.js-equivalent.
2. Voorafgaande audit van de WordPress-site
De audit is de meest verwaarloosde en meest kritieke stap. Deze fase overslaan = gegarandeerd SEO-verlies en bugs in productie.
Tools voor een volledige audit:
- Screaming Frog SEO Spider — Crawl van alle URL's (gratis tot 500 URL's, £159/jaar daarboven). CSV-export van URL's, statuscodes, meta tags, H1, interne links.
- Google Search Console — Export van de 1000 best presterende queries + landingspagina's. Identificeert URL's die absoluut behouden moeten blijven.
- Wayback Machine — Historische snapshot voor referentie van design en content.
- WordPress phpMyAdmin — Inventaris van custom post types, meta fields, taxonomieën, comments.
- Google Analytics 4 — Top 50 pagina's per sessie, gebruikersgedrag, bounce rate. Deze pagina's moeten absoluut werken na migratie.
Audit-deliverables: Excel-tabel met alle URL's (oud + nieuw), lijst van kritieke plugins met Next.js-alternatieven, media-inventaris (totaalgrootte, formaten), lijst van externe integraties (betaling, CRM, mailing, chat), schets van de nieuwe URL-structuur.
3. Content exporteren
Drie methoden afhankelijk van volume en complexiteit:
| Methode | Wanneer gebruiken | Beperkingen |
|---|---|---|
| WP REST API (/wp-json) | Site met open API, technische dev | Authenticatie, paginatie, media apart |
| Plugin WP All Export | Groot volume, custom structuur | €59-99, leercurve |
| Native WP XML-export | Kleine site, standaardcontent | Geen media, starre structuur |
| Scrape via Puppeteer | Site waarvan je geen admin meer hebt | Traag, fragiel, juridisch grijs |
Bij OptionWeb combineren we WP REST API (gestructureerde content) + een Node.js-script dat media parallel downloadt. Artikelen worden naar MDX of JSON omgezet volgens doelarchitectuur. Reken 1-2 dagen voor 500 artikelen.
import fs from 'node:fs/promises';
import path from 'node:path';
const WP_API = 'https://votre-site.com/wp-json/wp/v2';
async function fetchAllPosts() {
const allPosts = [];
let page = 1;
while (true) {
const res = await fetch(`${WP_API}/posts?per_page=100&page=${page}&_embed`);
if (!res.ok) break;
const posts = await res.json();
if (posts.length === 0) break;
allPosts.push(...posts);
page++;
}
return allPosts;
}
const posts = await fetchAllPosts();
await fs.writeFile('content/posts.json', JSON.stringify(posts, null, 2));4. Doelarchitectuur Next.js
Aanbeveling 2026 voor een migratie WordPress → Next.js: App Router + static export. Voordelen: deploy op elke server (geen Node.js nodig), TTFB in milliseconden, immuun voor WordPress-lekken, oneindige schaalbaarheid.
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'export',
images: { unoptimized: true },
trailingSlash: true,
i18n: undefined, // gérer via app/[lang]/ pour static export
};
export default nextConfig;Aanbevolen mappenstructuur:
- app/[lang]/ — Meertalige routes, page.tsx, [slug]/page.tsx, blog/page.tsx, blog/[slug]/page.tsx
- content/ — JSON of MDX van gemigreerde content, met Zod-schema voor build-validatie
- components/ — React-componenten (vervangen Gutenberg-blokken)
- public/ — Media gemigreerd uit wp-content/uploads/
- lib/ — Utilities (markdown naar React, hreflang-map enz.)
5. UI-redesign en componenten
Fout #1: het WordPress-thema pixel-perfect proberen klonen. Lang, saai, en je mist de kans.
Aanbevolen aanpak: vertrek van wireframes per paginatype (homepage, dienstpagina, blogartikel, contact enz.), herontwerp met Tailwind-componenten of eigen design system (shadcn/ui, Radix Themes), voeg moderne animaties toe (Framer Motion), ga mobile-first.
6. 301-redirects (SEO behouden)
Het meest kritieke punt van elke migratie. Eén belangrijke URL fout omgeleid = verloren Google-posities. Strikte procedure:
- Lijst alle WordPress-URL's op (Screaming Frog of Google Analytics)
- Sorteer op organisch verkeer over 12 maanden (focus op top 80% van het verkeer)
- Map elke oude URL naar de nieuwe Next.js-URL
- Configureer 301's in .htaccess (Apache) of Next.js rewrites + Cloudflare
- Test elke mapping met curl -I of Screaming Frog in redirect-check-modus
- Dien de nieuwe sitemap in bij Search Console op de dag van de uitrol
- Monitor 404's in Search Console gedurende 4-6 weken en voeg ontbrekende redirects toe
RewriteEngine On
# Redirections 301 anciennes URLs WordPress
Redirect 301 /?p=123 /fr/article-titre-canonique/
Redirect 301 /category/seo /fr/blog/?cat=seo
Redirect 301 /author/admin /fr/equipe/
# Pattern WordPress permalinks date-based
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/([^/]+)/?$ /fr/blog/$4/ [R=301,L]7. Deployment en validatie
Typisch deployment-plan:
| Fase | Duur | Actie |
|---|---|---|
| Pre-deployment | D-7 | Volledige Next.js-site in staging, SEO-audit, Lighthouse-tests, klantvalidatie |
| WordPress-snapshot | D-1 | Volledige WP-backup (DB + bestanden), 3 maanden bewaard |
| DNS-switch | D0 middernacht | TTL 300s gedurende 24u, propagatie observeren |
| Sitemap indienen | D0+2u | Sitemap.xml ingediend bij GSC + Bing Webmaster Tools |
| Intensieve monitoring | D0 tot D+7 | 404-fouten, Search Console, GA4-verkeer, Sentry/Datadog-alerts |
| Bijsturing | D+7 tot D+30 | Ontbrekende redirects, CWV-optimalisaties |
| Eindvalidatie | D+30 tot D+60 | Volledige indexering geverifieerd, ranking pre/post vergeleken |
Gemeten winst na migratie
Typische cijfers over 30+ OptionWeb-migraties (KMO-sites, 50-500 pagina's):
- TTFB — WordPress 600-1500ms → Next.js static 30-80ms (gedeeld door 10)
- Lighthouse Performance — WordPress 45-65 → Next.js 95-100 op mobiel
- Lighthouse SEO — WordPress 85 (vaak) → Next.js systematisch 100/100
- Hostingkosten — Gedeelde WordPress €15/maand → static export op CDN €5-10/maand (Cloudflare Pages, Vercel free, Netlify free)
- Veiligheidslekken — Aanvalsoppervlak gedeeld door ~50 (geen WP-admin, geen DB, geen PHP-uitvoering)
- Organisch verkeer — +10 tot +30% over 3-6 maanden dankzij CWV-winst (Google ranking-signalen)
Read next
Next.js vs WordPress in 2026: wat kiezen voor een Belgische kmo?
Eerlijke vergelijking Next.js vs WordPress voor kmo's: echte kosten, prestaties, SEO, onderhoud, beveiliging, flexibiliteit. Wanneer welke keuze maken afhankelijk van je profiel.
Next.js static export en Core Web Vitals: het 2026 playbook
Alle optimalisaties toegepast op Next.js static export sites om 95+ PageSpeed mobiel te halen: font-strategie, CSS, LCP, INP, CLS, Framer Motion valkuilen, hosting.
Technische SEO voor een statische Next.js-site: volledige checklist 2026
Alles wat technisch geconfigureerd moet worden opdat een Next.js static export site 100/100 SEO haalt: metadata, JSON-LD, sitemap, hreflang, robots, Speakable, geavanceerde schema's.
