Qué hacen srcset y sizes
srcset le da al navegador una lista de versiones de la misma imagen con su ancho real
(800x450.jpg 800w). sizes le dice qué ancho va a ocupar la imagen en la página según el tamaño
de la pantalla. Con las dos cosas, y sabiendo la densidad de píxeles de la pantalla, el navegador elige el fichero más
pequeño que se vea nítido. Lo decide antes de maquetar la página, por eso necesita que
sizes se lo digas tú.
Cómo elegir los anchos
- Cubre desde el móvil hasta el doble del ancho máximo que ocupa la imagen, para pantallas de alta densidad.
- Entre cuatro y seis anchos bastan: más versiones apenas ahorran bytes y complican la caché.
- Saltos de unos 300–400 px funcionan bien:
480, 800, 1200, 1600para una columna de 800 px.
img con srcset o picture
Si solo cambias el tamaño, basta con <img srcset sizes>. <picture> hace falta para
ofrecer formatos que no todos los navegadores entienden: cada <source> lleva un type y el
navegador usa el primero que sabe leer, así que AVIF va antes que WebP y el JPG del <img> queda como
respaldo. También sirve para la «dirección de arte»: recortes distintos según la pantalla, con media.
Detalles que se olvidan
widthyheight: con ellos el navegador reserva el hueco antes de que llegue la imagen y la página no salta (CLS). Basta con que tengan la proporción correcta.loading="lazy"en todo lo que no se ve al cargar. Nunca en la imagen principal de la parte de arriba: ahí retrasa el LCP.- El
altdescribe la imagen; si es decorativa, va vacío (alt=""), no se omite.
Las URLs del código son del generador de ximg.es y cada imagen lleva escrito su ancho, así que puedes pegar el HTML en tu maqueta y ver a simple vista qué versión carga en cada pantalla. Cuando tengas las fotos reales, cambia solo las URLs.