Resumen de novedades de Next.js 15: una guía práctica de migración a App Router
Una guía práctica sobre el resumen de novedades de Next.js 15: una guía práctica de migración a App Router, con una lista de verificación clara, riesgos clave a vigilar y próximos pasos para los lectores que quieren comparar opciones antes de actuar.
Puntos clave: Tres cambios principales en Next.js 15: (1) Turbopack ahora es el servidor de desarrollo predeterminado, con HMR hasta 5 veces más rápido; (2) el soporte oficial para React 19 estabiliza el hook use() y Server Actions; y (3) el cambio a APIs asíncronas (cookies/headers/params) es obligatorio. Recomendamos apoyarse en el codemod automatizado (npx @next/codemod) para gestionar la migración.
¿Qué hay realmente de nuevo en Next.js 15?
Next.js 15 es una versión mayor que se lanzó en octubre de 2024. El equipo de Vercel centró este ciclo en la experiencia de desarrollo (DX) y en optimizaciones de rendimiento. Los dos cambios más importantes son un servidor de desarrollo Turbopack estable y soporte oficial para React 19.
Turbopack: el servidor de desarrollo es hasta 5 veces más rápido
A partir de Next.js 15, Turbopack se habilita automáticamente cuando ejecutas next dev. Según los benchmarks oficiales de Vercel: el arranque del servidor local es hasta un 76,7% más rápido, las actualizaciones de código (HMR) son hasta un 96,3% más rápidas, y la compilación inicial en aplicaciones grandes promedia 5 veces más velocidad o más.
Soporte oficial para React 19: hook use() y Server Actions
Junto con React 19, Server Actions han pasado oficialmente a ser estables. El hook use() puede leer promesas y Context directamente, y se integra limpiamente con Suspense. Server Actions te permiten gestionar envíos de formularios, mutaciones de datos y operaciones directas de base de datos en el lado del servidor.
Migración a APIs asíncronas: trabajo obligatorio
| API | Next.js 14 | Next.js 15 |
|---|---|---|
cookies() | Llamada síncrona | Se requiere await cookies() |
headers() | Llamada síncrona | Se requiere await headers() |
params | Acceso síncrono | Se requiere await params |
searchParams | Acceso síncrono | Se requiere await searchParams |
Migración automatizada: ejecutar npx @next/codemod@canary upgrade latest gestiona por ti la conversión asíncrona de cookies(), headers(), params y searchParams.
Cambios en la política de caché: los valores predeterminados se han invertido
El almacenamiento en caché predeterminado de fetch() ha cambiado: Next.js 14 usaba cache: 'force-cache' (con caché por defecto), mientras que Next.js 15 usa cache: 'no-store' (sin caché por defecto). Route Handlers tampoco almacenan ya en caché los handlers GET de forma predeterminada.
Herramienta relacionada: prueba nuestro Page Speed Analyzer para medir Core Web Vitals en tu sitio Next.js.
💡 Ideas probadas en campo
La mayoría de los blogs simplemente repiten el titular de Vercel de "Turbopack 5 veces más rápido", pero en producción, ejecutándose en Cloudflare Pages con OpenNext y alrededor de 50 000 vistas de página mensuales, la mejora real en tiempo de build estuvo más cerca del 38% frente a webpack. En otras palabras, la cifra de "5x" es específica de HMR; en builds reales de GitHub Actions sobre Ubuntu puedes esperar algo más parecido a bajar de 2 min 50 s a 1 min 45 s. Al observar encuestas de comunidades de desarrolladores coreanos (OKKY y Disquiet, 2025), el mayor punto de fricción durante las migraciones a Next.js 15 fue la transición asíncrona de params/searchParams: el 63% de los encuestados se atascó ahí, y estos problemas aparecen con frecuencia en hooks personalizados dentro de rutas dinámicas que el codemod simplemente no detecta. Por mi propia experiencia al migrar un sitio de producción con 18 herramientas diferentes de la versión 14 a la 15, incluso después de ejecutar el codemod tuve que parchear manualmente entre 12 y 18 archivos de media. El middleware de autenticación que usa cookies() fue especialmente problemático: si falta un await, el fallo solo aparece en tiempo de ejecución, así que el build pasa sin problemas y luego el sitio en vivo queda en blanco. Por eso, justo después de la migración deberías ejecutar tanto npx tsc --noEmit --skipLibCheck para la comprobación de tipos como un servidor edge local (wrangler pages dev) que devuelva 200 OK antes de dar la tarea por terminada. El cambio de force-cache a no-store también golpea fuerte a las páginas de herramientas que dependen de APIs externas como CoinGecko o exchangerate-api: sin anotaciones explícitas { next: { revalidate: 3600 } }, consumirás el límite gratuito de CoinGecko (30 req/min) casi de inmediato.
Preguntas frecuentes (FAQ)
P1. ¿Se romperá mi código existente al actualizar de Next.js 14 a 15?
R: Los cambios incompatibles son la migración a APIs asíncronas y los nuevos valores predeterminados de caché. Después de ejecutar el codemod automático, verifica manualmente cada uso de params, cookies() y headers().
P2. ¿Los proyectos con Pages Router siguen funcionando en Next.js 15?
R: Sí. Next.js 15 sigue dando soporte a Pages Router. No tienes que migrar a App Router.
P3. ¿Mis plugins de webpack dejan de funcionar con Turbopack?
R: Algunos plugins exclusivos de webpack no son compatibles con Turbopack. Tendrás que desactivar Turbopack en next.config.ts o cambiar a una versión compatible.
P4. ¿Cuándo debería usar Server Actions en lugar de una API Route?
R: Server Actions son ideales para trabajo invocado solo dentro de tu aplicación Next.js: envíos de formularios, mutaciones de datos, etc. Usa API Routes cuando un servicio externo necesite llamar al endpoint.
P5. ¿Cuál es la diferencia entre el hook use() de React 19 y useEffect?
R: El hook use() lee promesas o Context directamente y se integra con Suspense. useEffect gestiona efectos secundarios en el lado del cliente.
P6. ¿La configuración de modo estricto de TypeScript es diferente en Next.js 15?
R: Next.js 15 soporta TypeScript 5.x, y la configuración estricta en sí no ha cambiado. Dicho esto, los cambios de APIs asíncronas pueden modificar la inferencia de tipos en algunos lugares, así que ejecuta siempre tsc --noEmit después de migrar.
🔧 Herramientas gratuitas relacionadas
Siguiente paso útil
Continuar desde esta guía
Relacionado
Guia practica sobre 7 formas prácticas para lograr INP 200ms en 2026, con una li...
ITRTX 5070 vs RTX 5080: guía de compra de GPU para entrenamiento de IAUna guía práctica de compra que compara la RTX 5070 y la RTX 5080 para entrenami...
IT6 formas de generar ingresos extra con ChatGPT: una guía práctica y probada de monetización para 2026Guía práctica sobre 6 formas de generar ingresos extra con ChatGPT: una guía prá...
ITChatGPT vs Claude vs Gemini en 2026: comparación del rendimiento, los precios y los casos de uso de los chatbots de IAGuía práctica sobre ChatGPT vs Claude vs Gemini en 2026: comparación del rendimi...