Migrer de WordPress vers Next.js : guide étape par étape 2026
Migrer un site WordPress vers Next.js suit 7 étapes : audit du contenu existant, export via WP REST API ou plugin, choix de l'architecture Next.js (app router + static export), refonte design, mise en place des 301 pour préserver le SEO, validation Search Console, déploiement progressif. Une migration bien menée maintient le ranking et divise le TTFB par 10. Sites OptionWeb : 4-8 semaines selon volume.
WordPress propulse encore 43% du web mondial en 2026, mais ses limites apparaissent vite : performance médiocre out-of-the-box (TTFB 600-1500ms typique), surface d'attaque élevée (43% des hacks web ciblent WordPress selon Sucuri 2024), dépendance aux plugins, coûts cachés en mises à jour. Pour beaucoup de PME que nous accompagnons chez OptionWeb, la question n'est plus 'faut-il migrer ?' mais 'comment migrer sans casser le SEO ?'. Pour la décision en amont, voir notre comparatif détaillé Next.js vs WordPress en 2026. Voici le playbook complet appliqué sur 30+ migrations.
1. Pourquoi migrer (et quand ne pas le faire)
Migrer fait sens dans 4 cas : performance critique pour le business (e-commerce, lead gen agressif), refonte design majeure prévue de toute façon, équipe technique qui veut sortir du legacy plugin hell, ou besoin de scaler internationalement (i18n natif Next.js bat WPML/Polylang).
Ne pas migrer si : équipe éditoriale non-tech sans alternative CMS, budget < 10 000 €, refonte juste pour 'être moderne' (vraie raison invisible), ou site avec >100 plugins critiques qui n'ont pas d'équivalent Next.js.
2. Audit préalable du site WordPress
L'audit est l'étape la plus négligée et la plus critique. Sauter cette phase = perte garantie de SEO et bugs en production.
Outils pour l'audit complet :
- Screaming Frog SEO Spider — Crawl de toutes les URLs (gratuit jusqu'à 500 URLs, 159 £/an au-delà). Export CSV des URLs, status codes, meta tags, H1, internal links.
- Google Search Console — Export des 1000 requêtes les plus performantes + pages de destination. Identifie les URLs à préserver absolument.
- Wayback Machine — Snapshot historique du site pour références de design et contenu.
- WordPress phpMyAdmin — Inventaire des post types custom, meta fields, taxonomies, comments.
- Google Analytics 4 — Top 50 pages par sessions, comportement utilisateur, taux de rebond. Ces pages doivent absolument fonctionner après migration.
Livrables de l'audit : tableau Excel avec toutes les URLs (anciennes + futures), liste des plugins critiques avec alternatives Next.js, inventaire des médias (taille totale, formats), liste des intégrations externes (paiement, CRM, mailing, chat), maquette de la nouvelle structure d'URLs.
3. Export du contenu
Trois méthodes selon le volume et la complexité :
| Méthode | Quand utiliser | Limites |
|---|---|---|
| WP REST API (/wp-json) | Site avec API ouverte, dev technique | Authentification, pagination, médias séparés |
| Plugin WP All Export | Volume important, structure custom | 59-99 €, courbe d'apprentissage |
| Export XML natif WP | Petit site, contenu standard | Pas de médias, structure rigide |
| Scrape via Puppeteer | Site dont vous n'avez plus l'admin | Lent, fragile, légalité douteuse |
Pour OptionWeb, on combine WP REST API (contenu structuré) + script Node.js de download des médias en parallèle. Les articles sont convertis en MDX ou JSON selon l'architecture cible. Compter 1-2 jours pour 500 articles.
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. Architecture Next.js cible
Recommandation 2026 pour migration WordPress → Next.js : App Router + static export. Avantages : déploiement sur tout serveur (pas de Node.js requis), TTFB en quelques ms, immune aux failles WordPress, scalabilité infinie.
/** @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;Structure de dossier recommandée :
- app/[lang]/ — Routes multilingues, page.tsx, [slug]/page.tsx, blog/page.tsx, blog/[slug]/page.tsx
- content/ — JSON ou MDX du contenu migré, avec Zod schema pour validation au build
- components/ — Composants React (replace gutenberg blocks)
- public/ — Médias migrés depuis wp-content/uploads/
- lib/ — Utilities (markdown to React, hreflang map, etc.)
5. Refonte UI et composants
Erreur #1 : tenter de cloner le thème WordPress pixel-perfect. C'est long, ennuyeux, et passe à côté de l'opportunité.
Approche recommandée : repartir des wireframes de chaque page type (homepage, page service, article blog, contact, etc.), redesigner avec composants Tailwind ou design system custom (shadcn/ui, Radix Themes), ajouter les animations modernes (Framer Motion), passer en mobile-first.
6. Redirections 301 (préserver le SEO)
Le point le plus critique de toute migration. Une seule URL importante mal redirigée = perte de positions Google. Procédure rigoureuse :
- Lister toutes les URLs WordPress (Screaming Frog ou Google Analytics)
- Trier par trafic organique sur 12 mois (focus sur top 80% du trafic)
- Mapper chaque ancienne URL vers la nouvelle URL Next.js
- Configurer les 301 dans .htaccess (Apache) ou rewrites Next.js + Cloudflare
- Tester chaque mapping avec curl -I ou Screaming Frog en mode redirect-check
- Soumettre le nouveau sitemap à Search Console le jour J du déploiement
- Monitorer les 404 dans Search Console pendant 4-6 semaines, ajouter redirections manquantes
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. Déploiement et validation
Plan de déploiement type :
| Phase | Durée | Action |
|---|---|---|
| Pré-déploiement | J-7 | Site Next.js complet en staging, audit SEO, tests Lighthouse, validation client |
| Snapshot WordPress | J-1 | Backup complet WP (DB + files), conservé 3 mois |
| Bascule DNS | J0 minuit | TTL 300s pendant 24h, observation propagation |
| Soumission sitemap | J0+2h | Sitemap.xml soumis à GSC + Bing Webmaster Tools |
| Monitoring intensif | J0 à J+7 | 404 errors, Search Console, GA4 trafic, alertes Sentry/Datadog |
| Ajustements | J+7 à J+30 | Redirections manquantes, optimisations CWV |
| Validation finale | J+30 à J+60 | Indexation complète vérifiée, ranking comparé pré/post |
Gains mesurés après migration
Métriques typiques observées sur 30+ migrations OptionWeb (sites PME 50-500 pages) :
- TTFB — WordPress 600-1500ms → Next.js static 30-80ms (divisé par 10)
- Lighthouse Performance — WordPress 45-65 → Next.js 95-100 sur mobile
- Lighthouse SEO — WordPress 85 (souvent) → Next.js 100/100 systématique
- Coûts hébergement — WordPress mutualisé 15 €/mois → static export sur CDN 5-10 €/mois (Cloudflare Pages, Vercel free, Netlify free)
- Failles sécurité — Surface d'attaque divisée par ~50 (pas d'admin WP, pas de DB, pas d'exécution PHP)
- Trafic organique — +10 à +30% sur 3-6 mois grâce aux gains CWV (signaux ranking Google). Pour optimiser les Core Web Vitals après migration, voir notre playbook CWV Next.js.
À lire ensuite
Next.js vs WordPress en 2026 : que choisir pour une PME belge ?
Comparaison honnête Next.js vs WordPress pour une PME : coûts réels, performance, SEO, maintenance, sécurité, flexibilité. Quand choisir l'un ou l'autre selon votre profil.
Next.js static export et Core Web Vitals : le playbook 2026
Toutes les optimisations appliquées sur les sites Next.js static export pour atteindre 95+ PageSpeed mobile : stratégie font, CSS, LCP, INP, CLS, pièges Framer Motion, hosting.
SEO technique d'un site statique Next.js : checklist complète 2026
Tout ce qu'il faut configurer techniquement pour qu'un site Next.js en static export atteigne 100/100 en SEO : metadata, JSON-LD, sitemap, hreflang, robots, Speakable, schémas avancés.
