Cómo optimizar imágenes
El componente <Image>
de Next.js extiende el elemento HTML <img>
para proporcionar:
- Optimización de tamaño: Sirve automáticamente imágenes del tamaño correcto para cada dispositivo, usando formatos modernos como WebP.
- Estabilidad visual: Previene automáticamente el desplazamiento de diseño (layout shift) mientras las imágenes se cargan.
- Carga más rápida de páginas: Solo carga imágenes cuando entran en el viewport usando carga diferida (lazy loading) nativa del navegador, con placeholders opcionales de desenfoque (blur-up).
- Flexibilidad de recursos: Redimensiona imágenes bajo demanda, incluso imágenes almacenadas en servidores remotos.
Para comenzar a usar <Image>
, impórtelo desde next/image
y renderícelo dentro de su componente.
La propiedad src
puede ser una imagen local o remota.
🎥 Video: Aprenda más sobre cómo usar
next/image
→ YouTube (9 minutos).
Imágenes locales
Puede almacenar archivos estáticos, como imágenes y fuentes, en una carpeta llamada public
en el directorio raíz. Los archivos dentro de public
pueden ser referenciados por su código comenzando desde la URL base (/
).

Imágenes importadas estáticamente
También puede importar y usar archivos de imagen locales. Next.js determinará automáticamente el width
y height
intrínsecos de su imagen basándose en el archivo importado. Estos valores se usan para determinar la proporción de la imagen y prevenir Desplazamiento Acumulativo de Diseño (Cumulative Layout Shift) mientras su imagen se carga.
En este caso, Next.js espera que el archivo app/profile.png
esté disponible.
Imágenes remotas
Para usar una imagen remota, puede proporcionar una cadena URL para la propiedad src
.
Dado que Next.js no tiene acceso a archivos remotos durante el proceso de construcción, deberá proporcionar manualmente las propiedades width
, height
y opcionalmente blurDataURL
. El width
y height
se usan para inferir la proporción correcta de la imagen y evitar desplazamientos de diseño al cargar la imagen.
Para permitir de forma segura imágenes de servidores remotos, debe definir una lista de patrones de URL admitidos en next.config.js
. Sea lo más específico posible para prevenir usos maliciosos. Por ejemplo, la siguiente configuración solo permitirá imágenes de un bucket específico de AWS S3: