Lista de verificación para producción

Antes de llevar su aplicación Next.js a producción, hay algunas optimizaciones y patrones que debería considerar implementar para obtener la mejor experiencia de usuario, rendimiento y seguridad.

Esta página proporciona mejores prácticas que puede usar como referencia durante el desarrollo de su aplicación, antes de pasar a producción y después del despliegue, así como las optimizaciones automáticas de Next.js que debe conocer.

Optimizaciones automáticas

Estas optimizaciones de Next.js están habilitadas por defecto y no requieren configuración:

  • Componentes del servidor (Server Components): Next.js usa Componentes del Servidor por defecto. Estos se ejecutan en el servidor y no requieren JavaScript para renderizarse en el cliente, por lo que no impactan el tamaño de tus paquetes JavaScript del lado del cliente. Puedes usar Componentes del Cliente (Client Components) cuando necesites interactividad.
  • División de código (Code-splitting): Los Componentes del Servidor permiten la división automática de código por segmentos de ruta. También puedes considerar la carga diferida (lazy loading) de Componentes del Cliente y bibliotecas de terceros cuando sea apropiado.
  • Precarga (Prefetching): Cuando un enlace a una nueva ruta entra en el viewport del usuario, Next.js precarga la ruta en segundo plano, haciendo que la navegación sea casi instantánea. Puedes desactivar la precarga cuando sea necesario.
  • Renderizado estático (Static Rendering): Next.js renderiza estáticamente Componentes del Servidor y del Cliente en el servidor durante el build y almacena en caché el resultado para mejorar el rendimiento. Puedes optar por el Renderizado dinámico (Dynamic Rendering) para rutas específicas cuando sea apropiado.
  • Almacenamiento en caché (Caching): Next.js almacena en caché solicitudes de datos, resultados renderizados de componentes, activos estáticos y más, para reducir las solicitudes de red a tu servidor, base de datos y servicios backend. Puedes desactivar el caché cuando sea apropiado.

Estos valores por defecto buscan mejorar el rendimiento de tu aplicación y reducir el costo y cantidad de datos transferidos en cada solicitud de red.

Durante el desarrollo

Mientras construyes tu aplicación, recomendamos usar las siguientes características para garantizar el mejor rendimiento y experiencia de usuario:

Enrutamiento y renderizado

Nota importante: El prerenderizado parcial (Partial Prerendering) (Experimental) permitirá que partes de una ruta sean dinámicas sin activar el renderizado dinámico para toda la ruta.

Obtención de datos y caché

UI y accesibilidad

Seguridad

Metadatos y SEO

Seguridad de tipos

  • TypeScript y Plugin TS: Usa TypeScript para mayor seguridad de tipos y detección temprana de errores.

Antes de pasar a producción

Ejecuta next build localmente para detectar errores de compilación, luego next start para medir el rendimiento en un entorno similar a producción.

Core Web Vitals

  • Lighthouse: Ejecútalo en modo incógnito para evaluar la experiencia del usuario. Combínalo con datos reales (como Core Web Vitals).

Análisis de paquetes

Usa el plugin @next/bundle-analyzer para analizar el tamaño de tus paquetes JavaScript. También considera estas herramientas:

Después del despliegue

Para despliegues en Vercel, recomendamos:

Nota importante:

Para mejores prácticas completas en despliegues Vercel, incluyendo estrategias para mejorar el rendimiento, consulta la Lista de verificación para producción de Vercel.

Seguir estas recomendaciones te ayudará a construir una aplicación más rápida, confiable y segura para tus usuarios.