Ir al contenido principal
Bethemesh
GuíaBuenas prácticas

Imágenes responsive: entender srcset y sizes

Entiende srcset, sizes, los descriptores de anchura y densidad, picture, la dirección artística y cómo el navegador elige la imagen responsive adecuada.

Publicado el 31 de agosto de 2026Lectura : 18 minPor Bethemesh Team
Intermedio
Diagrama de una imagen responsive con varias anchuras de origen seleccionadas según el viewport y la densidad de píxeles
Mostrar el contenido
  1. Una imagen fluida no es necesariamente una imagen responsive
  2. ¿Por qué no enviar la imagen más grande a todo el mundo?
  3. ¿Y por qué no enviar siempre la más pequeña?
  4. Preparar las variantes antes de escribir srcset
  5. ¿Cuántas variantes hacen falta?
  6. src sigue siendo importante
  7. Descriptores de anchura: w
  8. ¿Para qué sirve sizes?
  9. Entender vw
  10. Cuándo puede servir sizes="100vw"
  11. El navegador elige
  12. Imagen limitada por un contenedor
  13. El orden de las condiciones de sizes
  14. ¿Tiene que reproducir sizes exactamente el CSS?
  15. Ejemplo de una cuadrícula
  16. Un sizes incorrecto puede arruinar el trabajo
  17. Descriptores de densidad: x
  18. ¿Cuándo utilizar x?
  19. No mezcles w y x en el mismo srcset
  20. ¿Cómo funciona la selección con w?
  21. ¿Por qué un slot de 400 px puede descargar una imagen de 800 px?
  22. ¿Hace falta cubrir exactamente todos los DPR?
  23. Resolución, compresión y formato siguen importando
  24. ¿Para qué sirve <picture>?
  25. <picture> para formatos alternativos
  26. <picture> para dirección artística
  27. Cambio de resolución frente a dirección artística
  28. No utilices <picture> para controlar cada dispositivo
  29. El <img> final es imprescindible
  30. Texto alternativo
  31. Conserva width y height
  32. Generar variantes sin degradarlas
  33. Nombres de archivo previsibles
  34. ¿Qué candidato utilizar en src?
  35. Imágenes hero y LCP
  36. Lazy loading
  37. decoding y fetchpriority
  38. Por qué DevTools puede sorprenderte
  39. Utiliza currentSrc
  40. Prueba varias anchuras y densidades
  41. El problema de la explosión combinatoria
  42. CDN de imágenes y pipelines automáticos
  43. ¿Puede el navegador elegir según el ancho de banda?
  44. ¿srcset garantiza el archivo con menos bytes?
  45. ¿Por qué puede mantenerse una variante grande al reducir la ventana?
  46. Imágenes responsive y SEO
  47. Imágenes responsive y accesibilidad
  48. SVG y comportamiento responsive
  49. Metadatos y privacidad
  50. Caso práctico: hero a ancho completo
  51. Caso práctico: imagen de artículo
  52. Caso práctico: tarjetas de una cuadrícula
  53. Caso práctico: avatar fijo
  54. Caso práctico: recorte móvil
  55. Caso práctico: AVIF + WebP + varias anchuras
  56. ¿Cómo elegir las anchuras de los candidatos?
  57. No amplíes por encima del original
  58. ¿Por qué una imagen puede seguir viéndose borrosa?
  59. ¿Por qué una página puede seguir siendo pesada?
  60. Escribir sizes a partir del layout, paso a paso
  61. Diseñar la escala de candidatos pensando en los bytes
  62. Dirección artística sin perder significado
  63. Depurar una imagen responsive que parece incorrecta
  64. Mantener las imágenes responsive a largo plazo
  65. Errores frecuentes
  66. Checklist antes de publicar
  67. Flujo recomendado con Bethemesh
  68. Lo que debes recordar
  69. Preguntas frecuentes

Las imágenes responsive resuelven un problema sencillo en apariencia, pero con mecanismos bastante sutiles: un mismo contenido visual puede mostrarse con tamaños y densidades de píxeles muy diferentes. Enviar siempre un archivo enorme desperdicia datos; enviar siempre uno pequeño puede producir una imagen borrosa.

HTML permite que el navegador negocie el recurso adecuado mediante srcset, sizes y, cuando hace falta, <picture>. La clave consiste en describir correctamente el diseño real y ofrecer variantes bien preparadas para que el navegador pueda elegir.

Una imagen fluida no es necesariamente una imagen responsive

Una regla como max-width: 100% permite que la imagen se adapte visualmente a su contenedor. Sin embargo, el navegador puede seguir descargando exactamente el mismo archivo grande en un móvil y en un monitor de escritorio.

Las imágenes responsive añaden una segunda dimensión: la selección del recurso. En lugar de ofrecer un único archivo, declaramos varios candidatos y dejamos que el navegador elija el más apropiado según el espacio de visualización y la densidad de la pantalla.

¿Por qué no enviar la imagen más grande a todo el mundo?

Porque es sencillo, pero costoso. Un teléfono que muestra una imagen con unos pocos cientos de píxeles CSS puede terminar descargando millones de píxeles que nunca va a utilizar.

Eso afecta al ancho de banda, al tiempo de descarga, a la memoria necesaria para decodificar la imagen y, en muchos casos, a métricas de rendimiento como el Largest Contentful Paint.

¿Y por qué no enviar siempre la más pequeña?

Porque esa misma imagen puede mostrarse mucho más grande en escritorio o en una pantalla de alta densidad. Si el recurso de origen es demasiado pequeño, el navegador tendrá que ampliarlo y el resultado puede perder nitidez.

El objetivo no es encontrar el archivo más pequeño en términos absolutos, sino el archivo con una resolución suficiente para el uso real.

Preparar las variantes antes de escribir srcset

Las variantes deben generarse a partir de un original de buena calidad. No tiene sentido crear una versión de 1200 píxeles ampliando una derivada de 600 píxeles: aumentar las dimensiones no recupera el detalle perdido.

Para comprender mejor esta relación, consulta Resolución de imagen y Compresión de imágenes.

¿Cuántas variantes hacen falta?

No existe un número universal. Necesitas suficientes anchuras para evitar saltos enormes entre candidatos, pero no decenas de archivos casi idénticos.

Una serie típica podría ser 480, 768, 1024, 1280 y 1600 píxeles. Debe adaptarse a las dimensiones reales de tus componentes, al tamaño del original y a los dispositivos que quieres cubrir.

src sigue siendo importante

Aunque utilices srcset, el atributo src del elemento <img> sigue teniendo sentido. Sirve como fallback y también puede formar parte del comportamiento de selección del navegador.

Elige un recurso razonable. No apuntes automáticamente al original de máxima resolución.

Descriptores de anchura: w

Con los descriptores w, cada candidato declara su anchura intrínseca real en píxeles:

<img
  src="foto-800.webp"
  srcset="foto-480.webp 480w, foto-800.webp 800w, foto-1200.webp 1200w"
  sizes="(max-width: 700px) 100vw, 700px"
  alt="..."
>

480w significa que el archivo correspondiente tiene 480 píxeles de ancho. No es un breakpoint ni una media query.

Los valores declarados deben coincidir con las dimensiones reales de los archivos. Si declaras 800w para una imagen que en realidad mide 640 píxeles, estás proporcionando información falsa al algoritmo de selección.

¿Para qué sirve sizes?

Cuando se utilizan descriptores w, el navegador necesita estimar cuánto espacio ocupará la imagen en el diseño antes de que todo el layout esté completamente calculado.

sizes describe ese slot de visualización. El navegador combina esa información con la densidad de píxeles del dispositivo y con los candidatos declarados en srcset para seleccionar un archivo apropiado.

Entender vw

100vw representa aproximadamente el ancho completo del viewport. No significa que el archivo tenga 100 píxeles ni que la imagen vaya a ocupar necesariamente toda la pantalla después de aplicar el CSS.

Este detalle es fundamental: el viewport y el contenedor de la imagen no siempre tienen el mismo ancho.

Cuándo puede servir sizes="100vw"

Para una imagen hero que realmente ocupa todo el ancho en móvil, 100vw puede ser una aproximación correcta.

Pero si una imagen de artículo está limitada a un contenedor de 720 píxeles en escritorio, mantener 100vw en todos los tamaños de pantalla puede hacer creer al navegador que necesita un archivo mucho más grande de lo necesario.

El navegador elige

srcset no es una lista de instrucciones rígidas del tipo «en este breakpoint descarga este archivo». Es un conjunto de candidatos.

El navegador conserva la decisión final y puede tener en cuenta la densidad de píxeles, los recursos ya presentes en caché y otros criterios de implementación.

Por eso es mejor describir correctamente el problema que intentar controlar cada descarga de forma manual.

Imagen limitada por un contenedor

Imagina que el cuerpo de un artículo utiliza un ancho equivalente a min(100% - 2rem, 720px).

En pantallas pequeñas, la imagen ocupará casi todo el viewport menos los márgenes. En escritorio, dejará de crecer alrededor de 720 píxeles. sizes debería comunicar ese comportamiento real.

No es necesario copiar literalmente los breakpoints del CSS; lo importante es representar de forma suficientemente precisa el ancho que tendrá la imagen.

El orden de las condiciones de sizes

Las condiciones se evalúan de izquierda a derecha. El navegador utiliza la primera que coincide y el último valor funciona como fallback.

Por tanto, coloca primero las condiciones específicas y termina con el tamaño por defecto.

¿Tiene que reproducir sizes exactamente el CSS?

No. Debe aproximar suficientemente bien la anchura renderizada para que el navegador pueda tomar una buena decisión.

Una expresión ligeramente simplificada pero mantenible suele ser mejor que una fórmula extremadamente compleja que nadie actualizará cuando cambie el diseño.

El problema aparece cuando la estimación es sistemáticamente demasiado grande: entonces se descargan archivos innecesariamente pesados.

Ejemplo de una cuadrícula

Una cuadrícula puede mostrar una tarjeta a ancho completo en móvil, dos columnas en tablet y tres columnas en escritorio.

En ese caso, cada imagen no ocupa 100vw en escritorio: ocupa aproximadamente un tercio del contenedor, descontando los espacios entre columnas.

Declarar 100vw para todas las tarjetas puede anular gran parte de la optimización.

Un sizes incorrecto puede arruinar el trabajo

Puedes tener imágenes perfectamente comprimidas, formatos modernos y una buena lista de candidatos. Si una tarjeta de 320 píxeles declara que ocupa todo un monitor de 1440 píxeles, el navegador puede seleccionar un recurso mucho mayor de lo necesario.

La optimización responsive depende tanto de los archivos como de la descripción correcta del layout.

Descriptores de densidad: x

Cuando el tamaño CSS de la imagen es fijo o muy predecible, los descriptores de densidad pueden resultar más sencillos:

<img
  src="avatar.png"
  srcset="avatar.png 1x, avatar@2x.png 2x"
  width="64"
  height="64"
  alt="..."
>

2x indica un recurso pensado aproximadamente para dos píxeles de origen por cada píxel CSS.

¿Cuándo utilizar x?

Los descriptores de densidad funcionan bien para avatares, iconos o recursos cuyo tamaño visual cambia poco.

Para fotografías y contenidos fluidos que pueden ocupar anchuras muy diferentes, w combinado con sizes suele describir mejor la situación.

No mezcles w y x en el mismo srcset

Elige un modelo de descriptores para cada conjunto de candidatos.

Con w, el navegador ya puede incorporar la densidad del dispositivo al relacionar el ancho del slot con las anchuras intrínsecas disponibles.

¿Cómo funciona la selección con w?

De forma conceptual, el navegador:

  1. estima el ancho de visualización mediante sizes;
  2. tiene en cuenta la densidad de la pantalla;
  3. compara esa necesidad con las anchuras declaradas;
  4. selecciona uno de los candidatos disponibles.

Los detalles exactos pertenecen al navegador y pueden incluir heurísticas adicionales.

¿Por qué un slot de 400 px puede descargar una imagen de 800 px?

Porque en una pantalla con DPR 2, una imagen mostrada a 400 píxeles CSS puede necesitar aproximadamente 800 píxeles físicos de origen para conservar una buena nitidez.

Por eso comparar únicamente el ancho CSS con el ancho del archivo puede llevar a conclusiones erróneas.

¿Hace falta cubrir exactamente todos los DPR?

No. La calidad visual y el coste de red deben equilibrarse.

Una fotografía puede seguir viéndose perfectamente con una densidad algo inferior a la teórica. No necesitas crear una variante para cada combinación posible de anchura y DPR.

Resolución, compresión y formato siguen importando

El HTML responsive no puede corregir derivados mal preparados.

Debes redimensionar correctamente, comprimir con criterio y elegir formatos adecuados. Consulta también Comparación de formatos de imagen.

¿Para qué sirve <picture>?

<picture> permite declarar varios elementos <source> antes de un <img> final.

Es especialmente útil para dos necesidades distintas:

  • ofrecer formatos alternativos;
  • realizar dirección artística.

No necesitas <picture> simplemente para utilizar srcset.

<picture> para formatos alternativos

Puedes ofrecer AVIF, después WebP y finalmente un formato de fallback.

Cada <source> puede contener su propio srcset. El navegador determina primero qué fuente puede utilizar y después selecciona el candidato apropiado dentro de ella.

<picture> para dirección artística

La dirección artística consiste en proporcionar una composición realmente distinta según el contexto.

Por ejemplo, una fotografía panorámica para escritorio puede sustituirse en móvil por un recorte vertical que mantenga visible al sujeto principal.

No se trata únicamente de reducir el archivo: cambia el encuadre.

Cambio de resolución frente a dirección artística

El cambio de resolución mantiene el mismo contenido visual y modifica principalmente el número de píxeles.

La dirección artística modifica el encuadre, la composición o incluso la ilustración. Conviene mantener ambos objetivos separados mentalmente y en el código.

No utilices <picture> para controlar cada dispositivo

Las imágenes responsive están diseñadas precisamente para que el navegador pueda elegir.

Crear una fuente específica para cada teléfono o resolución conocida produce un marcado frágil, difícil de mantener y rápidamente obsoleto.

El <img> final es imprescindible

Dentro de <picture>, el elemento <img> final sigue siendo esencial.

Aporta el fallback, el texto alternativo, las dimensiones intrínsecas, los atributos de carga y el elemento semántico que representa la imagen.

Los elementos <source> no sustituyen esa función.

Texto alternativo

Las variantes responsive que transmiten la misma información comparten el atributo alt del <img> final.

No pongas alt en <source>.

Si los diferentes recortes cambian tanto el contenido que necesitarían textos alternativos contradictorios, probablemente las variantes ya no sean semánticamente equivalentes.

Conserva width y height

Declarar las dimensiones intrínsecas ayuda al navegador a reservar espacio antes de descargar la imagen y reduce los cambios de layout.

Si todos los candidatos comparten la misma relación de aspecto, utiliza dimensiones coherentes con esa proporción. El CSS puede seguir escalando la imagen.

Puedes utilizar la calculadora de relación de aspecto para comprobar las proporciones de tus variantes.

Generar variantes sin degradarlas

Genera cada anchura desde el original o desde una fuente de calidad suficiente.

Evita encadenar varias recomprasiones con pérdida. Una imagen JPEG exportada, redimensionada, vuelta a exportar y recomprimida repetidamente acumula degradación.

Nombres de archivo previsibles

Puedes utilizar nombres como:

hero-480.webp
hero-800.webp
hero-1200.webp

o dejar que tu pipeline de build genere nombres con hash.

En ambos casos, el descriptor del HTML debe corresponder a la anchura intrínseca real.

¿Qué candidato utilizar en src?

Escoge una variante intermedia razonable que funcione cuando srcset no se tenga en cuenta.

No conviertas automáticamente el original de máxima resolución en el fallback.

Imágenes hero y LCP

Una imagen hero suele convertirse en el Largest Contentful Paint de la página.

Si es el elemento LCP, normalmente no debe utilizar loading="lazy". Debe poder descubrirse pronto, tener un marcado responsive correcto y, en casos justificados, puede beneficiarse de fetchpriority="high".

No marques muchas imágenes como prioritarias: si todo es prioritario, nada lo es.

Lazy loading

loading="lazy" es útil para imágenes situadas por debajo del primer viewport.

No es una estrategia de selección de resolución y no sustituye a srcset. Lazy loading y responsive images resuelven problemas distintos.

decoding y fetchpriority

decoding="async" puede ser apropiado para muchas imágenes no críticas.

fetchpriority proporciona una indicación sobre la prioridad de red, pero no corrige un sizes erróneo ni un recurso sobredimensionado.

Por qué DevTools puede sorprenderte

Los navegadores reutilizan recursos en caché. Si ya han descargado una variante grande, reducir la ventana no significa necesariamente que vuelvan a descargar una versión pequeña.

Por eso una prueba realizada únicamente redimensionando el viewport puede parecer incoherente.

Utiliza recargas limpias y revisa currentSrc.

Utiliza currentSrc

La propiedad img.currentSrc permite saber qué recurso ha seleccionado realmente el navegador.

Combínala con:

  • el ancho renderizado;
  • el ancho intrínseco;
  • el DPR;
  • el tamaño transferido en Network.

Así podrás comprobar si sizes representa correctamente el layout.

Prueba varias anchuras y densidades

Una configuración responsive debe verificarse en varios escenarios:

  • móvil estrecho;
  • móvil grande;
  • tablet;
  • escritorio;
  • diferentes densidades de píxeles.

Comprueba tanto la nitidez como los bytes transferidos.

El problema de la explosión combinatoria

Cinco anchuras multiplicadas por tres formatos y varios recortes pueden generar decenas de archivos para una sola imagen.

La automatización facilita el proceso, pero no elimina el coste de almacenamiento, build y mantenimiento.

Genera únicamente las combinaciones que aporten un beneficio real.

CDN de imágenes y pipelines automáticos

Una CDN de imágenes puede crear variantes de anchura y formato bajo demanda.

Un sitio estático puede generarlas durante el build.

Ambos enfoques son válidos si conservan un original fiable y reglas de transformación deterministas.

¿Puede el navegador elegir según el ancho de banda?

Los navegadores pueden utilizar heurísticas e información del entorno, pero no conviene diseñar la estrategia suponiendo una promesa exacta basada en la velocidad de conexión.

Tu responsabilidad es ofrecer candidatos sensatos y una descripción precisa del slot.

¿srcset garantiza el archivo con menos bytes?

No.

La selección se basa principalmente en la adecuación del candidato, no en comparar el peso de todos los archivos disponibles.

Dos imágenes de 800 píxeles pueden pesar cantidades muy diferentes según su contenido, formato y nivel de compresión.

¿Por qué puede mantenerse una variante grande al reducir la ventana?

Una vez descargada una imagen de alta resolución, el navegador suele preferir reutilizarla en lugar de descargar otra más pequeña para ahorrar bytes que ya se han transferido.

Cuando analices el algoritmo de selección, prueba desde una carga en frío.

Imágenes responsive y SEO

La entrega responsive puede mejorar el rendimiento sin ocultar el significado de la imagen.

Mantén:

  • un alt pertinente;
  • HTML correcto;
  • recursos accesibles para los rastreadores;
  • URLs estables cuando corresponda;
  • dimensiones coherentes.

Las mejoras de rendimiento contribuyen a la calidad global de la página, pero las imágenes responsive no son un truco SEO por sí mismas.

Imágenes responsive y accesibilidad

Todos los candidatos deberían transmitir información equivalente, salvo que la dirección artística adapte deliberadamente el encuadre.

Asegúrate de que un recorte móvil no elimine una parte esencial de un diagrama, una captura de pantalla o una fotografía informativa.

SVG y comportamiento responsive

Un SVG vectorial puro suele necesitar una única fuente porque puede escalar sin depender de una resolución raster fija.

En ese caso, un viewBox correcto y el CSS de dimensionado suelen ser más importantes que srcset.

Consulta Formato SVG.

Metadatos y privacidad

Al generar variantes puedes copiar EXIF, GPS u otros metadatos en todos los derivados.

Define una política de metadatos para los archivos públicos y aplícala de forma consistente. Consulta Metadatos de imagen y privacidad.

Caso práctico: hero a ancho completo

Para una hero responsive:

  1. genera varias anchuras grandes;
  2. utiliza descriptores w;
  3. escribe sizes según el espacio real;
  4. evita lazy loading si es el LCP;
  5. declara las dimensiones;
  6. prueba el resultado con una conexión limitada.

Caso práctico: imagen de artículo

Si la columna del artículo está limitada a unos 720 píxeles, crea candidatos adaptados a móviles y a ese ancho de columna.

Una variante de 1440 píxeles puede seguir siendo útil para pantallas de alta densidad, pero no debería descargarse por defecto en todos los escritorios.

Caso práctico: tarjetas de una cuadrícula

Describe el ancho de cada tarjeta en cada breakpoint.

El error más habitual consiste en declarar el ancho del viewport cuando en realidad dos o tres tarjetas comparten la misma fila.

Caso práctico: avatar fijo

Un avatar de 64 × 64 píxeles es un buen candidato para 1x y 2x.

Los descriptores w aportan menos valor cuando el slot CSS es prácticamente fijo.

Caso práctico: recorte móvil

Utiliza <picture> y condiciones media para proporcionar un recorte diferente cuando la composición lo requiera.

No lo hagas simplemente para entregar una copia más pequeña de la misma imagen: para eso ya existe srcset.

Caso práctico: AVIF + WebP + varias anchuras

Cada fuente de formato puede declarar la misma escala de anchuras.

El navegador identifica primero un formato compatible y después selecciona el candidato adecuado.

Conserva siempre el <img> final como fallback.

¿Cómo elegir las anchuras de los candidatos?

Parte de los tamaños reales de visualización y de los rangos de densidad útiles.

Evita crear variantes tan próximas entre sí que rara vez cambien la decisión del navegador.

También conviene medir su peso. Si 640w pesa 55 KB y 720w pesa 58 KB, conservar ambas puede aportar poco. Si el salto siguiente es 1200w y 160 KB, una anchura intermedia puede tener mucho más sentido.

No amplíes por encima del original

Crear una variante de 2400 píxeles desde una fuente de 1200 píxeles no añade detalle.

Detén la escala en la resolución útil del original, salvo que dispongas de un master de mayor resolución.

¿Por qué una imagen puede seguir viéndose borrosa?

Hay varias causas posibles:

  • el candidato seleccionado es demasiado pequeño para el slot y el DPR;
  • el original ya carece de detalle;
  • el CSS amplía la imagen;
  • la compresión ha eliminado demasiado detalle.

Comprueba currentSrc, las dimensiones naturales y el tamaño renderizado antes de culpar a srcset.

¿Por qué una página puede seguir siendo pesada?

Las causas habituales incluyen:

  • sizes demasiado optimista;
  • demasiadas imágenes visibles al cargar;
  • candidatos máximos excesivos;
  • calidad de compresión demasiado alta;
  • formatos poco eficientes;
  • recursos decorativos innecesarios.

El marcado responsive forma parte de un sistema de optimización más amplio.

Escribir sizes a partir del layout, paso a paso

Una forma fiable de construir sizes consiste en ignorar al principio los nombres de los archivos y observar únicamente el CSS.

Pregúntate cuánto mide realmente el slot en cada rango de viewport.

Si un artículo móvil ocupa casi todo el ancho menos 32 píxeles de padding, una estimación puede ser calc(100vw - 32px). Si en escritorio la columna deja de crecer a 720 píxeles, el valor final puede ser 720px.

Para una cuadrícula, calcula el ancho de la tarjeta y no el de la página. Si dos tarjetas comparten un contenedor de 900 píxeles con un gap de 24 píxeles, cada imagen ronda los 438 píxeles, no los 900.

No necesitas reproducir cada cálculo del layout con precisión matemática. Una aproximación estable y fácil de mantener suele ser suficiente.

Cuando cambie el diseño, revisa también sizes. Una declaración correcta para dos columnas puede quedar sobredimensionada cuando el componente pasa a tres.

Diseñar la escala de candidatos pensando en los bytes

El navegador no selecciona comparando el peso de cada candidato, pero tú sí deberías analizar ese peso al diseñar la escala.

Mide fotografías, capturas e ilustraciones representativas. El tamaño de archivo no crece de forma perfectamente proporcional al número de píxeles.

También recuerda que formato y anchura interactúan. AVIF, WebP y JPEG de la misma resolución pueden tener costes muy distintos.

Si mantienes varias familias de formatos, ajusta la calidad de cada una en lugar de aplicar ciegamente un único preset.

Dirección artística sin perder significado

Un recorte móvil debe conservar la información que hacía útil a la imagen original.

Si una fotografía de escritorio muestra a una persona utilizando un producto y el recorte móvil conserva únicamente su rostro, el significado puede haber cambiado.

La dirección artística no es solo una optimización técnica: es una decisión editorial.

Para imágenes decorativas existe más libertad. Para diagramas, capturas o fotografías que sirven como evidencia, conserva la información esencial o replantea la presentación móvil.

Depurar una imagen responsive que parece incorrecta

Empieza comprobando:

  1. currentSrc;
  2. el ancho CSS renderizado;
  3. naturalWidth;
  4. el DPR del dispositivo.

Si el ancho natural es mucho menor que el ancho renderizado multiplicado por el DPR, la falta de nitidez es esperable.

Después revisa sizes. El navegador puede estar seleccionando exactamente lo que le has pedido, aunque no sea lo que pretendías.

Comprueba la condición activa y recuerda que el orden importa.

A continuación, prueba con caché fría. Finalmente, verifica que cada descriptor w coincide con la anchura real del archivo.

Mantener las imágenes responsive a largo plazo

Trata la configuración responsive como parte de la API del componente.

Cuando tu framework lo permita, centraliza las escalas de anchura y patrones sizes habituales. Documenta qué componentes son:

  • full width;
  • limitados por contenedor;
  • basados en cuadrícula;
  • de tamaño fijo.

Los tests automáticos pueden verificar que los candidatos generados existen y que sus anchuras declaradas coinciden con sus metadatos.

El objetivo no es crear el srcset más sofisticado posible, sino ofrecer al navegador un conjunto pequeño, fiable y coherente con el layout real.

Errores frecuentes

Evita especialmente estos errores:

  • confundir el ancho del viewport con el del contenedor;
  • utilizar x para imágenes muy fluidas;
  • declarar valores w que no coinciden con los archivos;
  • utilizar sizes como si fuera una media query de descarga;
  • mezclar w y x en el mismo conjunto;
  • olvidar el <img> final dentro de <picture>;
  • colocar alt en <source>;
  • aplicar lazy loading a la imagen LCP;
  • generar variantes ampliando derivados pequeños;
  • mantener sizes="100vw" para imágenes que en escritorio ocupan solo una fracción del viewport.

Checklist antes de publicar

Antes de poner una implementación responsive en producción:

  • verifica la anchura real de cada candidato;
  • comprueba que todos mantienen la relación de aspecto prevista;
  • revisa compresión y formato;
  • compara sizes con el CSS real;
  • conserva un alt adecuado;
  • declara width y height;
  • prueba currentSrc en varios viewports y DPR;
  • inspecciona los bytes transferidos;
  • repite las pruebas con caché fría.

Flujo recomendado con Bethemesh

Empieza desde un master de buena calidad.

Utiliza el redimensionador de imágenes para crear las anchuras necesarias, la calculadora de relación de aspecto para conservar proporciones coherentes y el conversor y compresor de imágenes para preparar los formatos y niveles de compresión adecuados.

Después escribe srcset y sizes a partir de las dimensiones que realmente has generado y del layout que realmente utiliza tu página.

Lo que debes recordar

srcset proporciona candidatos. sizes describe el espacio de visualización cuando utilizas descriptores de anchura. El navegador toma la decisión final.

Utiliza:

  • w para imágenes fluidas;
  • x para recursos de tamaño fijo o predecible;
  • <picture> para formatos alternativos o dirección artística.

Y recuerda que una buena estrategia responsive no depende únicamente del HTML: necesita originales correctos, redimensionado, compresión, formatos adecuados y pruebas en condiciones reales.

Preguntas frecuentes

¿Basta con srcset sin sizes?
Con descriptores w, omitir sizes conduce a una estimación basada en el viewport que puede ser incorrecta para imágenes limitadas por un contenedor.

¿Puedo mezclar w y x?
No dentro del mismo conjunto de candidatos.

¿Necesito <picture> para utilizar WebP?
Puede ser útil para ofrecer formatos alternativos, aunque la política de compatibilidad de tu proyecto puede permitir soluciones más simples.

¿Debo aplicar lazy loading a la hero?
Normalmente no si es la imagen LCP.

¿Cómo sé qué archivo ha cargado el navegador?
Comprueba currentSrc y el panel Network de las herramientas de desarrollo.

¿Tengo que crear una variante para cada breakpoint CSS?
No. Las anchuras deben responder a los tamaños reales del slot y a diferencias útiles de resolución, no a una copia mecánica de todos los breakpoints.

¿Es obligatorio utilizar <picture> con srcset?
No. Un <img> con srcset y sizes es suficiente para la mayoría de los casos de cambio de resolución.

¿Una imagen responsive mejora automáticamente Core Web Vitals?
No automáticamente. Puede reducir transferencias innecesarias y ayudar al LCP, pero un sizes incorrecto, una mala compresión o una prioridad de carga inadecuada pueden seguir perjudicando el rendimiento.

Herramientas relacionadas

Imágenes y diseño gráfico

Redimensionar una imagen

Redimensiona una imagen definiendo con precisión su anchura y altura antes de descargarla.

100 % localDestacado
Usar esta herramienta
Imágenes y diseño gráfico

Convertir y comprimir una imagen

Convierte una imagen a PNG, JPEG o WebP y ajusta la calidad antes de descargarla.

100 % localDestacado
Usar esta herramienta

Fuentes y referencias

  1. 1.MDN Web Docs — Responsive images
  2. 2.HTML Living Standard — The picture element

Colección

Imágenes para la Web

  1. 01¿Cómo se construye una imagen digital?
  2. 02¿Qué resolución elegir para una imagen?
  3. 03RGB, HEX o HSL: ¿qué notación elegir?
  4. 04¿Cómo crear una paleta de colores a partir de una imagen?
  5. 05Contraste WCAG: ¿cómo hacer accesibles los colores?
  6. 06PNG, JPEG, WebP o AVIF: ¿qué formato elegir?
  7. 07¿Cómo comprimir una imagen sin perder calidad?
  8. 08SVG: comprender el formato vectorial
  9. 09Imágenes responsive: entender srcset y sizes
  10. 10Metadatos de imagen y privacidad: EXIF, GPS y datos ocultos
  11. 11Optimizar imágenes para la Web sin perder calidad
  12. 12Optimizar imágenes para mejorar el rendimiento web
  13. 13Optimizar un archivo SVG sin alterar su apariencia
  14. 14WebP, AVIF, JPEG XL: ¿qué formatos de imagen elegir en 2026?

¿Te ha resultado útil este artículo?