Imágenes en HTML: buenas prácticas de rendimiento y accesibilidad
📚 Contenido de la guía ⌃
- 1. Antes de optimizar, decide para qué sirve la imagen
- 2. Anatomía de un img que carga rápido y no mueve todo
- 3. Tamaño, relación de aspecto y el miedo al CLS
- 4. Formatos de imagen: el archivo también es una decisión de rendimiento
- 5. Imágenes responsivas: no envíes 1200px a un móvil de 360px
- 6. picture: cuando cambias la imagen según el contexto
- 7. Lazy loading: carga las imágenes cuando sean necesarias
- 8. Accesibilidad: el alt no describe píxeles, describe intención
- 9. ¿img o background-image?
- Checklist rápido antes de subir una imagen a producción
Las imágenes son, casi siempre, el recurso que más pesa en una página web. También son
de lo que más ayuda a explicar ideas y vender productos. Esta guía reúne las buenas
prácticas mínimas que deberías aplicar en todos tus proyectos: desde cómo guardar el archivo,
hasta cómo escribir el img para que cargue rápido y se entienda con lectores de pantalla.
Vamos a ver las imágenes como un sistema de tres piezas que trabajan juntas: el archivo que subes, el HTML que escribes y la experiencia de la persona que visita tu sitio. Cada figura de la guía resume visualmente una parte de ese sistema.
1. Antes de optimizar, decide para qué sirve la imagen
No todas las imágenes son iguales. Algunas son puro adorno, otras explican una idea
clave y otras son parte de la interfaz (iconos de menú, botones de cerrar, etc.).
Saber qué tipo de imagen tienes te ayuda a decidir el alt, el formato
y hasta si deberías usar un fondo CSS en lugar de un <img>.
- Decorativas: no añaden información nueva. Fondos, texturas, adornos.
- Informativas: explican o refuerzan una idea (diagramas, gráficos, capturas).
- Funcionales / UI: iconos que disparan acciones (botones, menús, estados).
- Complejas: gráficos con muchos detalles que necesitan explicación extra.
En la siguiente figura tienes una clasificación visual de estos tipos para que tomes la decisión correcta antes de escribir una sola etiqueta.
2. Anatomía de un img que carga rápido y no mueve todo
La mayoría de problemas de rendimiento con imágenes no viene del backend,
sino de un img mal escrito. Si cuidas estos atributos, ya vas muy por delante:
- src: la URL optimizada (formato y tamaño correctos).
- alt: el significado de la imagen (o vacío si es decorativa).
- width / height: reservan espacio y reducen Cumulative Layout Shift (CLS).
- loading="lazy": carga diferida para imágenes fuera del viewport.
- decoding="async": le da margen al navegador para pintar sin bloquear.
La siguiente figura es un mapa visual de estos atributos alrededor de un mismo
img.
img normal en uno saludable.
<img
class="imagen-responsiva"
src="https://tucodigocotidiano.yarumaltech.com/files/portatil_800.avif"
alt="Desarrolladora escribiendo código en un portátil sobre un escritorio ordenado."
width="1200"
height="630"
loading="lazy"
decoding="async"
/>
3. Tamaño, relación de aspecto y el miedo al CLS
Cuando no indicas width y height, el navegador no sabe cuánto
ocupa la imagen hasta que la descarga. Eso provoca “saltos” de layout que afectan
la métrica CLS (Cumulative Layout Shift).
Truco moderno: puedes usar width y height reales de la imagen,
y dejar que el navegador calcule automáticamente la relación de aspecto. Incluso puedes
usar aspect-ratio en CSS para reservar el espacio antes de que cargue.
<style>
.hero-imagen {
max-width: 100%;
height: auto;
display: block;
margin-inline: auto;
}
</style>
<img
class="hero-imagen"
src="/files/hero_blog_1200.jpg"
alt="Cabecera del blog con interfaz limpia y código en pantalla."
width="1200"
height="600"
loading="lazy"
decoding="async"
/>
4. Formatos de imagen: el archivo también es una decisión de rendimiento
No es lo mismo una foto que un icono vectorial. Elegir el formato correcto puede reducir el peso a la mitad sin perder calidad visible.
- JPEG / JPG: fotos, degradados suaves, sin necesidad de transparencia fina.
- PNG: iconos con pocos colores, transparencia nítida, capturas de pantalla.
- SVG: logos e ilustraciones vectoriales, escalables sin perder nitidez.
- WebP / AVIF: versiones modernas, menos peso para fotos e ilustraciones.
La siguiente figura resume los usos recomendados para cada formato.
5. Imágenes responsivas: no envíes 1200px a un móvil de 360px
Con srcset y sizes puedes ofrecer varias versiones de la misma
imagen y dejar que el navegador elija cuál descargar según el tamaño real de la
pantalla y del layout.
La idea es simple:
- srcset: lista de archivos con su anchura intrínseca (400w, 800w, 1200w…).
- sizes: “si el viewport mide tanto, la imagen ocupa aproximadamente X”.
La figura siguiente representa la misma imagen en móvil, tablet y escritorio, con pesos distintos según el dispositivo.
<img
class="imagen-responsiva"
src="https://tucodigocotidiano.yarumaltech.com/files/hero_800.jpg"
srcset="
https://tucodigocotidiano.yarumaltech.com/files/hero_400.jpg 400w,
https://tucodigocotidiano.yarumaltech.com/files/hero_800.jpg 800w,
https://tucodigocotidiano.yarumaltech.com/files/hero_1200.jpg 1200w
"
sizes="
(max-width: 640px) 92vw,
(max-width: 1024px) 80vw,
720px
"
alt="Misma escena adaptada a móvil, tablet y escritorio."
width="1200"
height="630"
loading="lazy"
decoding="async"
/>
Comentarios y Valoraciones
No hay comentarios aún. ¡Sé el primero en opinar!