Componente Image de Next.js: sizes, preload e imágenes remotas

Guía del componente Image de Next.js

Next.js Image: sizes, preload, remotePatterns y LCP | We.Inc

Cómo funciona next/image en Next.js 16: width, height y fill, una calculadora de sizes, preload en lugar de priority, remotePatterns, qualities y los anchos srcset por defecto.

Importa Image desde next/image y dale src, alt y, o bien width y height, o bien fill. Añade una cadena sizes siempre que el ancho renderizado cambie con la pantalla, para que el navegador descargue un archivo más pequeño. Para la imagen principal que es tu LCP, usa preload (sustituyó a priority en Next.js 16). Permite hosts externos con images.remotePatterns.

Las props que deciden la velocidad

En Next.js es fácil cometer dos errores con las imágenes: una imagen fill sin sizes, de modo que los teléfonos descargan archivos de escritorio, y una imagen principal que espera a la carga diferida. Esta página explica cada prop con palabras sencillas, te da una calculadora que escribe la cadena sizes para tu diseño y enumera los valores de configuración por defecto que usa Next.js hoy.

Preguntas frecuentes

¿La prop priority está obsoleta?

Sí. Desde Next.js 16 la documentación marca priority como obsoleta en favor de preload, que inserta un enlace de precarga en el head. La documentación también dice que en la mayoría de los casos loading="eager" o fetchPriority="high" es mejor opción, y que preload no debe combinarse con ninguna de esas props.

¿Por qué next/image dice que el hostname no está configurado?

Las imágenes externas deben coincidir con una entrada de images.remotePatterns en next.config. Añade un objeto con protocol, hostname y un pathname como /photos/** y reinicia el servidor de desarrollo. Las solicitudes que no coinciden con ningún patrón reciben una respuesta 400 del optimizador de imágenes.

¿Qué cambia realmente la prop sizes?

Le dice al navegador qué ancho tendrá la imagen en cada punto de corte antes de que cargue el CSS. Con sizes, Next.js también genera un srcset completo basado en anchos (640w, 750w, etc.) en lugar de solo 1x y 2x, así que un teléfono puede elegir un archivo mucho más pequeño.

¿Necesito width y height con fill?

No. fill y width/height son alternativas. Con fill la imagen se estira hasta su padre posicionado, y controlas el recorte con object-fit mediante la prop style o className.

¿Cuánto tiempo se guardan en caché las imágenes optimizadas?

El valor por defecto de minimumCacheTTL es 14400 segundos, es decir, cuatro horas. La duración real es el mayor de dos valores: ese o la cabecera Cache-Control que envía la imagen original. Las imágenes importadas de forma estática reciben una caché inmutable de larga duración porque sus nombres de archivo llevan hash.

Por qué existe el componente

Cómo acertar con el LCP

La configuración que vas a tocar

Todas las props que probablemente usarás

Props de next/image (referencia de Next.js 16)

Valores por defecto de la configuración de imágenes

Ajustes de images en next.config y sus valores por defecto

Ejemplos para copiar

Imagen principal desde una importación estática

La importación da a Next.js las dimensiones reales y un marcador difuminado. preload inicia la descarga desde el head.

Cuadrícula de tarjetas con fill y sizes

Cada tarjeta ocupa un tercio de la página en escritorio, la mitad en tabletas y todo el ancho en teléfonos, y el valor sizes dice exactamente eso.

next.config.ts para un host de imágenes remoto

Solo se permiten archivos HTTPS bajo /uploads/ en un único host. Se admiten dos valores de calidad.

Ancho completo

Mitad en escritorio

Cuadrícula de 2 columnas

Cuadrícula de 3 tarjetas

Cuadrícula de 4 tarjetas

Calculadora de sizes

Elige un diseño y unos puntos de corte para generar el atributo sizes, y luego mira qué ancho srcset por defecto descargaría probablemente una pantalla concreta.

Diseño

Punto de corte de teléfono (px)

Punto de corte de tableta (px)

Ancho de pantalla: {n}px

Densidad de píxeles

A {screen}px el hueco de la imagen mide unos {slot}px de ancho ({vw}vw). Con densidad {dpr}x necesita {need} píxeles de dispositivo, así que lo más probable es que el navegador descargue el candidato de {pick}w.

Copiar

Anchos candidatos por defecto: {list}. Los navegadores pueden elegir otro, por ejemplo cuando ya tienen en caché un archivo más grande.

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio