Migrar de WordPress a Next.js: guía paso a paso 2026
Migrar un sitio WordPress a Next.js sigue 7 pasos: auditoría del contenido existente, exportación vía WP REST API o plugin, elección de la arquitectura Next.js (app router + exportación estática), rediseño de UI, configuración de las 301 para preservar el SEO, validación en Search Console, despliegue progresivo. Una migración bien hecha mantiene el ranking y divide el TTFB por 10. Sitios OptionWeb: 4-8 semanas según el volumen.
WordPress aún impulsa el 43% de la web mundial en 2026, pero sus límites aparecen rápido: rendimiento mediocre out-of-the-box (TTFB 600-1500ms típico), gran superficie de ataque (43% de los hackeos web apuntan a WordPress según Sucuri 2024), dependencia de plugins, costes ocultos en actualizaciones. Para muchas pymes que acompañamos en OptionWeb, la pregunta ya no es '¿hay que migrar?' sino '¿cómo migrar sin romper el SEO?'. Aquí está el playbook completo aplicado en más de 30 migraciones.
1. Por qué migrar (y cuándo no)
Migrar tiene sentido en 4 casos: rendimiento crítico para el negocio (e-commerce, lead gen agresivo), rediseño mayor ya previsto, equipo técnico que quiere salir del legacy plugin hell, o necesidad de escalar internacionalmente (i18n nativo de Next.js supera a WPML/Polylang).
No migrar si: equipo editorial no técnico sin alternativa CMS, presupuesto < 10 000 €, rediseño solo para 'ser moderno' (motivo real invisible), o sitio con >100 plugins críticos sin equivalente Next.js.
2. Auditoría previa del sitio WordPress
La auditoría es el paso más descuidado y más crítico. Saltarse esta fase = pérdida garantizada de SEO y bugs en producción.
Herramientas para una auditoría completa:
- Screaming Frog SEO Spider — Crawl de todas las URLs (gratis hasta 500 URLs, 159 £/año por encima). Exportación CSV de URLs, status codes, meta tags, H1, enlaces internos.
- Google Search Console — Exportación de las 1000 consultas más eficaces + páginas de aterrizaje. Identifica las URLs que hay que preservar sí o sí.
- Wayback Machine — Snapshot histórico del sitio como referencia de diseño y contenido.
- WordPress phpMyAdmin — Inventario de post types personalizados, meta fields, taxonomías, comentarios.
- Google Analytics 4 — Top 50 páginas por sesiones, comportamiento de usuario, tasa de rebote. Estas páginas tienen que funcionar sí o sí tras la migración.
Entregables de la auditoría: tabla Excel con todas las URLs (antiguas + futuras), lista de plugins críticos con alternativas Next.js, inventario de medios (tamaño total, formatos), lista de integraciones externas (pago, CRM, mailing, chat), boceto de la nueva estructura de URLs.
3. Exportación del contenido
Tres métodos según volumen y complejidad:
| Método | Cuándo usar | Límites |
|---|---|---|
| WP REST API (/wp-json) | Sitio con API abierta, dev técnico | Autenticación, paginación, medios separados |
| Plugin WP All Export | Volumen importante, estructura custom | 59-99 €, curva de aprendizaje |
| Exportación XML nativa WP | Sitio pequeño, contenido estándar | Sin medios, estructura rígida |
| Scraping con Puppeteer | Sitio del que ya no tienes admin | Lento, frágil, legalidad dudosa |
En OptionWeb combinamos WP REST API (contenido estructurado) + un script Node.js que descarga los medios en paralelo. Los artículos se convierten a MDX o JSON según la arquitectura objetivo. Calcular 1-2 días para 500 artículos.
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. Arquitectura Next.js objetivo
Recomendación 2026 para migración WordPress → Next.js: App Router + exportación estática. Ventajas: despliegue en cualquier servidor (sin Node.js), TTFB en milisegundos, inmune a las vulnerabilidades de WordPress, escalabilidad infinita.
/** @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;Estructura de carpetas recomendada:
- app/[lang]/ — Rutas multilingües, page.tsx, [slug]/page.tsx, blog/page.tsx, blog/[slug]/page.tsx
- content/ — JSON o MDX del contenido migrado, con esquema Zod para validación en build
- components/ — Componentes React (sustituyen los bloques Gutenberg)
- public/ — Medios migrados desde wp-content/uploads/
- lib/ — Utilidades (markdown a React, mapa hreflang, etc.)
5. Rediseño UI y componentes
Error #1: intentar clonar el tema WordPress pixel-perfect. Es largo, aburrido y desperdicia la oportunidad.
Enfoque recomendado: partir de los wireframes de cada tipo de página (home, página de servicio, artículo de blog, contacto, etc.), rediseñar con componentes Tailwind o un sistema de diseño propio (shadcn/ui, Radix Themes), añadir animaciones modernas (Framer Motion), pasar a mobile-first.
6. Redirecciones 301 (preservar el SEO)
El punto más crítico de toda migración. Una sola URL importante mal redirigida = pérdida de posiciones en Google. Procedimiento riguroso:
- Listar todas las URLs WordPress (Screaming Frog o Google Analytics)
- Ordenar por tráfico orgánico de los últimos 12 meses (foco en el top 80% del tráfico)
- Mapear cada URL antigua a la nueva URL Next.js
- Configurar las 301 en .htaccess (Apache) o rewrites de Next.js + Cloudflare
- Probar cada mapeo con curl -I o Screaming Frog en modo redirect-check
- Enviar el nuevo sitemap a Search Console el día del despliegue
- Monitorizar las 404 en Search Console durante 4-6 semanas, añadir redirecciones faltantes
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. Despliegue y validación
Plan de despliegue tipo:
| Fase | Duración | Acción |
|---|---|---|
| Pre-despliegue | D-7 | Sitio Next.js completo en staging, auditoría SEO, tests Lighthouse, validación cliente |
| Snapshot WordPress | D-1 | Backup completo WP (BD + ficheros), conservado 3 meses |
| Cambio DNS | D0 medianoche | TTL 300s durante 24h, observación de propagación |
| Envío sitemap | D0+2h | Sitemap.xml enviado a GSC + Bing Webmaster Tools |
| Monitorización intensiva | D0 a D+7 | Errores 404, Search Console, tráfico GA4, alertas Sentry/Datadog |
| Ajustes | D+7 a D+30 | Redirecciones faltantes, optimizaciones CWV |
| Validación final | D+30 a D+60 | Indexación completa verificada, ranking comparado pre/post |
Ganancias medidas tras la migración
Métricas típicas observadas en más de 30 migraciones OptionWeb (sitios pyme 50-500 páginas):
- TTFB — WordPress 600-1500ms → Next.js static 30-80ms (dividido por 10)
- Lighthouse Performance — WordPress 45-65 → Next.js 95-100 en móvil
- Lighthouse SEO — WordPress 85 (a menudo) → Next.js 100/100 sistemático
- Costes de hosting — WordPress compartido 15 €/mes → exportación estática en CDN 5-10 €/mes (Cloudflare Pages, Vercel free, Netlify free)
- Vulnerabilidades — Superficie de ataque dividida por ~50 (sin admin WP, sin BD, sin ejecución PHP)
- Tráfico orgánico — +10 a +30% en 3-6 meses gracias a las ganancias CWV (señales de ranking de Google)
Read next
Next.js vs WordPress en 2026: ¿qué elegir para una PYME belga?
Comparación honesta Next.js vs WordPress para PYMES: costes reales, rendimiento, SEO, mantenimiento, seguridad, flexibilidad. Cuándo elegir uno u otro según tu perfil.
Next.js static export y Core Web Vitals: el playbook 2026
Todas las optimizaciones aplicadas en sitios Next.js static export para alcanzar 95+ PageSpeed móvil: estrategia de fuentes, CSS, LCP, INP, CLS, trampas Framer Motion, hosting.
SEO técnico para un sitio estático Next.js: checklist completa 2026
Todo lo que configurar técnicamente para que un sitio Next.js en static export alcance 100/100 en SEO: metadata, JSON-LD, sitemap, hreflang, robots, Speakable, schemas avanzados.
