Optimización de imágenes

Cómo optimizar imágenes para SEO y rendimiento: formatos modernos como WebP y AVIF, compresión, dimensiones correctas y carga diferida (lazy loading) para mejorar Core Web Vitals y LCP.

Publicado por primera vez: 2 jul 2026 · Última actualización: 22 ago 2026 · Avanzado
Idiomas

La optimización de imágenes es una disciplina de velocidad, no una palanca de posicionamiento. Los formatos (WebP, AVIF), la compresión y el dimensionamiento correcto existen para reducir bytes y mejorar el LCP; no hay un impulso directo de posicionamiento por el formato en sí (Mueller lo confirmó tres veces por separado). La regla de mayor valor: nunca apliques carga diferida a tu imagen LCP (generalmente la imagen principal): retrasa la métrica exacta que intentas corregir. Esa imagen debe tener loading="eager" y fetchpriority="high". El atributo nativo loading="lazy" es para imágenes fuera del área visible inicial, no una línea fija «debajo del pliegue». La compresión no tiene una calidad «correcta» universal: prueba por imagen. El tamaño correcto = tamaño del contenedor renderizado × relación de píxeles del dispositivo, y ese tamaño de contenedor se mueve con el diseño responsivo, por lo que se entrega un rango de srcset. Nada de esto garantiza una puntuación aprobatoria en Core Web Vitals, un cambio en el posicionamiento o más tráfico: mide LCP y CLS antes y después. Esta es la guía práctica complementaria al centro de SEO de imágenes, que cubre el qué y el porqué.

TL;DR — La optimización de imágenes es una disciplina de velocidad de página / Core Web Vitals, no un factor directo de posicionamiento. La elección del formato (WebP, AVIF) reduce bytes pero no aporta ningún beneficio SEO — Mueller lo ha dicho de tres maneras distintas; también hay que sopesar la transparencia, la animación, y el soporte actual del navegador, no solo la tasa de compresión. La regla más valiosa: nunca apliques carga diferida a tu imagen LCP (normalmente la imagen principal); eso retrasa la misma métrica que estás optimizando. Dale loading="eager" + fetchpriority="high", aunque las sugerencias de prioridad solo ayudan con un cuello de botella de descubrimiento o tiempo de descarga, no con todos los problemas de LCP. El loading="lazy" nativo es para imágenes fuera del área visible inicial, no para una línea fija «debajo del pliegue». La compresión no tiene una calidad universal correcta: prueba por tipo de imagen. Las dimensiones correctas = tamaño del contenedor renderizado × relación de píxeles del dispositivo, y ese tamaño de contenedor cambia con el diseño responsivo, así que entrega un rango srcset/sizes (un valor sizes incorrecto descarga silenciosamente una imagen sobredimensionada) con un respaldo <picture>. Las imágenes son el elemento LCP más común en la web, por eso este artículo también pertenece a Rendimiento web; pero nada de esto garantiza una puntuación aprobatoria en Core Web Vitals, un cambio de posicionamiento o más tráfico; mide antes y después.

Para qué optimiza la optimización de imágenes (desmonta el mito desde el principio)

Déjame matar el mito más grande antes que nada: el formato de imagen es una palanca de velocidad, no una palanca de posicionamiento. Convertir a WebP o AVIF no mejora directamente el posicionamiento. Te da archivos más pequeños, que te dan una página más rápida, que alimenta Core Web Vitals — y esa es la parte que usan los sistemas de búsqueda. La cadena es real pero indirecta, y colapsarla en “los formatos de nueva generación rankean mejor” es donde la mayoría de las guías de la competencia fallan.

Los documentos de Google son contundentes sobre por qué las imágenes importan para la velocidad: son “often the largest contributor to overall page size, which can make pages slow and expensive to load,” (traducción) «a menudo el mayor contribuyente al tamaño total de la página, lo que puede hacer que las páginas sean lentas y costosas de cargar», y el consejo es “apply the latest image optimization and responsive image techniques to provide a high quality and fast user experience” (traducción) «aplicar las últimas técnicas de optimización de imágenes y de imágenes responsive para proporcionar una experiencia de usuario rápida y de alta calidad» (Google Search Central — Images). Nota el encuadre: experiencia de usuario rápida, no una recompensa de posicionamiento por el formato de archivo.

Evidence for this claim Images are often a major contributor to page weight, and Google recommends responsive image and optimization techniques for a fast user experience. Scope: Google Search image guidance about performance; no claim that a particular format directly improves rankings. Confidence: high · Verified: Google Search Central: Google Images SEO

Para el qué/por qué del SEO de imágenes en general — texto alternativo, nombres de archivo, sitemaps de imágenes, datos estructurados y posicionamiento en la búsqueda de imágenes: eso corresponde al centro principal de SEO de imágenes. Este artículo es el cómo canónico: formatos, compresión, dimensiones y estrategia de carga.

Empieza con la regla que todos rompen: nunca apliques carga diferida a tu imagen LCP

Si te llevas una cosa de esta página, que sea esta. El elemento Largest Contentful Paint (LCP) — la cosa más grande pintada en el viewport al cargar — es “either an image or a web font,” (traducción) «o una imagen o una fuente web», según web.dev (Optimize LCP), y en la mayoría de las páginas es una imagen: la principal, la destacada o la foto del producto. web.dev pone la regla tan contundentemente como Google suele expresar cualquier cosa:

“Never lazy-load your LCP image, as that will always lead to unnecessary resource load delay, and will have a negative impact on LCP.” (traducción) «Nunca apliques carga diferida a tu imagen LCP, porque siempre provocará una demora innecesaria en la carga del recurso y perjudicará el LCP».

Evidence for this claim Lazy-loading an LCP image adds resource load delay; web.dev recommends loading it eagerly and considering high fetch priority. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP

Este es el matiz que la mayoría de los consejos de “solo usa lazy loading” pasan por alto por completo. El lazy-loading es genial — para imágenes debajo del pliegue. Aplícalo a la imagen LCP y retrasas activamente la única métrica que intentas mejorar. La guía de lazy-loading de web.dev dice lo mismo desde la otra dirección: “Don’t lazy-load images that are likely to be in-viewport when the page loads, especially LCP images” (traducción) «No cargues con lazy-load imágenes que probablemente estén en el viewport cuando la página cargue, especialmente imágenes LCP» (Browser-level lazy loading).

He argumentado lo mismo en mi artículo sobre LCP en Ahrefs: el elemento más grande “suele ser una imagen destacada o quizás la etiqueta <h1>, y las soluciones se derivan de eso. “Si no necesitas la imagen, la solución más impactante es simplemente deshacerte de ella. Si debes tener la imagen, sugiero optimizar el tamaño y la calidad para mantenerla lo más pequeña posible.” Deberías “cargar de forma diferida cualquier imagen que no necesites de inmediato” — pero la otra cara es una regla estricta que puse en mayúsculas por una razón: “¡No cargues de forma diferida las imágenes que están en la parte superior de la página!”

fetchpriority="high" en la imagen LCP

No cargar de forma diferida la imagen principal es necesario pero no suficiente. Para asegurarte de que la imagen LCP se cargue lo antes posible, indica su prioridad al navegador. De web.dev:

“Puedes indicar al navegador qué recursos son los más importantes usando el atributo fetchpriority… Es una buena idea establecer fetchpriority=\"high\" en un elemento <img> si crees que es probable que sea el elemento LCP de tu página.”

<img src="/hero.webp" alt="…" fetchpriority="high" width="1200" height="675">

En mi artículo sobre LCP describo fetchpriority="high" de la misma manera — “se puede usar en las etiquetas <img> o <link> y le dice a los navegadores que obtengan la imagen temprano” — y lo combino con Early Hints (una respuesta 103) como una forma complementaria de comenzar la descarga antes de que llegue el HTML principal. Así que la receta para LCP es: carga inmediata + fetchpriority="high" (+ Early Hints si tu infraestructura los soporta). Todo lo demás en la página puede cargarse de forma diferida.

Trata fetchpriority y la precarga como herramientas específicas para cuellos de botella, no como una solución garantizada. Ayudan cuando la imagen LCP se descubre o se descarga tarde; no hacen nada por una respuesta lenta del servidor, un recurso que bloquea el renderizado antes de la imagen, o un archivo genuinamente demasiado grande. Confirma cuál es el cuello de botella que realmente tienes (PageSpeed Insights o Lighthouse desglosan LCP en sus subpartes) antes de asumir que una pista de prioridad por sí sola moverá el número.

loading="lazy" nativo — gratis, simple y correcto debajo del pliegue

Para cada imagen que no esté en el viewport inicial, la carga diferida nativa es la victoria más fácil en rendimiento. web.dev: “Puedes usar el atributo loading para cargar imágenes de forma diferida sin necesidad de escribir código personalizado de carga diferida o usar una biblioteca de JavaScript separada.”

<img src="/below-the-fold.webp" alt="…" loading="lazy" width="800" height="600">

Dos cosas mantienen esto seguro:

  • Básalo en el viewport inicial, no en una línea fija de “debajo del pliegue”. “El pliegue” no es un número fijo de píxeles — se desplaza con el tamaño del viewport y el diseño. La prueba real es si la imagen es probable que sea visible cuando la página se pinta por primera vez. Cualquier cosa que lo sea — y especialmente la imagen LCP — recibe loading="eager" (el valor predeterminado), nunca lazy.
  • Prefiere el atributo nativo sobre los trucos de JavaScript. Los cargadores diferidos de JavaScript que ocultan la URL real en data-src y nunca exponen un src corren el riesgo de no ser indexados en absoluto. El loading="lazy" nativo (o un IntersectionObserver limpio) mantiene el src visible para los rastreadores. El hub principal de SEO de imágenes cubre esa advertencia de indexación en detalle.

Formatos modernos: WebP vs. AVIF vs. JPEG/PNG

Los formatos son donde más importa desmentir mitos, así que seamos precisos sobre lo que cada uno te dá — que son bytes, no rankings.

  • WebP“a menudo tiene mejor compresión que JPEG, PNG o GIF, ofreciendo tanto compresión con pérdida como sin pérdida” (web.dev — Rendimiento de imágenes). Aproximadamente 25–35 % más pequeño que JPEG con soporte casi universal en navegadores. El valor predeterminado seguro para fotos hoy en día.
  • AVIF“soporta tanto compresión con pérdida como sin pérdida, y las pruebas han mostrado un ahorro de más del 50 % en comparación con JPEG en algunos casos.” Compresión de primera clase, soporte ligeramente menos universal, así que combínalo con un respaldo WebP o JPEG.
  • JPEG — el respaldo universal para fotografías.
  • PNG — cuando necesitas transparencia o gráficos con bordes nítidos.
  • SVG — logotipos e iconos: vectorial, escala infinitamente, diminuto.

El formato que elijas también depende de lo que la imagen necesita hacer, no solo de cuál comprime más: la transparencia, la animación y la consistencia con la que un navegador o herramienta admite esa combinación específica influyen en la elección junto con el ahorro de tamaño bruto anterior: comprueba la compatibilidad actual de la función exacta que necesitas, especialmente para cualquier cosa animada, antes de comprometerte con un formato como defecto.

Google Search admite “BMP, GIF, JPEG, PNG, WebP, SVG y AVIF” referenciados en un src de <img>. Sirve el formato moderno con una alternativa elegante usando <picture>:

<picture>
  <source srcset="/photo.avif" type="image/avif">
  <source srcset="/photo.webp" type="image/webp">
  <img src="/photo.jpg" alt="…" width="1200" height="800" loading="lazy">
</picture>

El <img src> al final es tu red de seguridad: los navegadores y rastreadores más antiguos recurren a él, y es la URL que Google realmente indexa.

¿El formato afecta al ranking? (No, y Mueller lo ha dicho de tres maneras)

Este es el único hilo de desmentidos que vale la pena seguir en todo el tema. Tres declaraciones separadas e independientes en el tiempo de John Mueller llegan a la misma conclusión: el formato afecta a la mecánica de rastreo/indexación y al peso de la página, nunca directamente al ranking:

  1. AVIF no da un impulso SEO. Después de que Google añadiera soporte nativo para AVIF, Mueller confirmó que no hay “impulso SEO” por usar AVIF sobre otros formatos admitidos (cobertura de SE Roundtable).
  2. WebP está “bien”. “WebP images are fine for Image Search” (traducción) «Las imágenes WebP están bien para la Búsqueda de Imágenes» — “bien”, notablemente, no “mejor” (cobertura de SE Roundtable).
  3. Las peculiaridades de indexación de WebP no son específicas del formato. Cuando la gente vio archivos WebP mostrados como “Rastreado – actualmente no indexado” en GSC, el punto de Mueller era que los archivos de imagen no se indexan como páginas HTML, y no creía que el fenómeno se limitara a WebP en absoluto (cobertura de SEJ).
Estas declaraciones de representantes se citan a través de cobertura secundaria verbatim (SE Roundtable, Search Engine Journal) de horas de oficina y publicaciones sociales en lugar de una página primaria con enlace profundo; son las mismas citas utilizadas en el centro de SEO de imágenes principal, mantenidas consistentes aquí. La pieza de SEJ parafrasea/resume a Mueller en lugar de citarlo en bloque.

Compresión y calidad: no hay un ajuste “correcto” universal

El consejo malo más común en las guías de imágenes es una sola viñeta de “comprimir al 80%”. web.dev es claro en que no existe tal número mágico:

“When compressing, there isn’t a universal setting suitable for all cases. The recommended approach would be to experiment with different compression levels until you find a good compromise between image quality and file size.” (traducción) «Al comprimir no hay un ajuste universal adecuado para todos los casos. Lo recomendable es probar distintos niveles de compresión hasta encontrar un buen equilibrio entre calidad de imagen y tamaño de archivo».

En la práctica: prueba por tipo de imagen. Las fotografías toleran bien la compresión con pérdida agresiva; los gráficos, logotipos y capturas de pantalla con texto muestran artefactos rápidamente y a menudo quieren sin pérdida o un ajuste de calidad más alto. En lugar de confiar en un solo control deslizante, exporta la misma imagen a dos o tres niveles de calidad y míralos a tamaño de visualización: el más pequeño que no puedas distinguir visualmente del original es tu respuesta. Eso es un flujo de trabajo real, no “pásalo por TinyPNG y espera”.

Dimensiones correctas: tamaño del contenedor × relación de píxeles del dispositivo

“Solo hazlo más pequeño” no es la regla: coincidir con el tamaño renderizado × la relación de píxeles del dispositivo (DPR) lo es. De web.dev:

“An image displayed in a 500 pixel by 500 pixel container would be optimally sized at 500 pixels by 500 pixels.” (traducción) «Una imagen mostrada en un contenedor de 500 píxeles por 500 píxeles tendría un tamaño óptimo de 500 píxeles por 500 píxeles.»

“If the device has a DPR of 2 and the image is displayed in a 500 pixel by 500 pixel container, then a square 1000 pixel image… is now the optimal size.” (traducción) «Si el dispositivo tiene un DPR de 2 y la imagen se muestra en un contenedor de 500 por 500 píxeles, entonces una imagen cuadrada de 1000 píxeles es el tamaño óptimo».

Así que un contenedor de 500×500 en una pantalla de 2× (clase Retina) quiere una fuente de 1 000×1 000. Ve más grande que eso y desperdicias bytes sin ganancia perceptible; ve más pequeño y se ve suave en pantallas de alto DPR. Por eso sirves una gama de tamaños y dejas que el navegador elija, usando srcset + sizes:

<img
  src="/photo-800.webp"
  srcset="/photo-400.webp 400w, /photo-800.webp 800w, /photo-1600.webp 1600w"
  sizes="(max-width: 600px) 100vw, 500px"
  alt="…" width="800" height="600" loading="lazy">

El navegador lee el ancho del contenedor (sizes) y su propio DPR, y luego elige el candidato correcto de srcset — la versión de entrega responsiva de las matemáticas de DPR anteriores. Google recomienda <picture> o srcset para imágenes responsivas y dice que hay que “always specify a fallback URL using the src attribute.” (traducción) «especificar siempre una URL de respaldo mediante el atributo src».

Si te equivocas con sizes, nada te lo advierte. Si el valor que declaras no coincide con el ancho real al que se renderiza la imagen — un error común después de un cambio de diseño o CSS — el navegador no tiene forma de saberlo y simplemente elige un candidato basándose en el número inexacto que le diste, lo que normalmente significa que descarga un archivo más grande de lo que el diseño necesita. Eso deshace silenciosamente el trabajo de formato y compresión anterior. La única forma fiable de detectarlo: abre el panel de Red de DevTools, busca la solicitud de la imagen y compara las dimensiones del archivo entregado con el ancho real renderizado del contenedor.

Ese ejemplo de 500×500 anterior es ilustrativo, no un número para todo el sitio que debas codificar de forma fija — la misma imagen principal puede renderizarse a un ancho diferente en móvil que en escritorio, por lo que el “tamaño del contenedor” se mueve con tu diseño responsivo en lugar de permanecer fijo. Es exactamente por eso que entregas un rango de srcset en lugar de exportar un tamaño “óptimo” y dar por terminado el trabajo.

Por qué todo esto se relaciona con Core Web Vitals

El hilo conductor que conecta cada técnica anterior es LCP. Las imágenes son el elemento LCP más común en la web, y LCP es una de las tres Core Web Vitals. El objetivo de Google: “LCP should occur within 2.5 seconds” (traducción) «LCP debería ocurrir dentro de 2,5 segundos» en el percentil 75 de las cargas de página en móvil y escritorio (web.dev — Vitals). Core Web Vitals “apply to all web pages, should be measured by all site owners, and will be surfaced across all Google tools.” (traducción) «se aplican a todas las páginas web, deberían ser medidas por todos los propietarios de sitios y se mostrarán en todas las herramientas de Google».

Así que la optimización de imágenes no es un factor de clasificación discreto — es un contribuyente a una señal de experiencia de página (Core Web Vitals) que los sistemas de clasificación sí utilizan. Esa distinción es el marco preciso, y es por eso que este artículo vive tanto en el clúster de SEO de Imágenes como en el clúster de Rendimiento Web. Para profundizar en la métrica en sí, consulta Core Web Vitals y LCP en Rendimiento Web.

Una advertencia más que vale la pena expresar claramente: ninguna de las correcciones en esta página garantiza nada. Los bytes de imagen son solo un componente posible de LCP — el propio desglose de web.dev de las subpartes de LCP incluye cosas como el tiempo de respuesta del servidor y los recursos que bloquean el renderizado antes de la imagen, ninguno de los cuales el formato o la compresión tocan — y las dimensiones de la imagen son solo una entrada en CLS, no una garantía de una puntuación particular. Reducir una imagen principal puede ayudar de forma medible, no hacer nada, o (si otra cosa es el verdadero cuello de botella) apenas mover el número. Optimizar imágenes tampoco garantiza por sí mismo una evaluación aprobatoria de Core Web Vitals, un cambio en la clasificación, más tráfico, más conversiones o una cita en la búsqueda con IA — esos dependen de mucho más que los bytes de imagen. Trata cada corrección de imagen como una hipótesis, no como un hecho consumado: mide LCP y CLS antes y después, en el laboratorio y en el campo, y deja que esos datos — no la suposición de que la optimización “funcionó” — te digan si movió algo.

Errores comunes de implementación

  • Las imágenes de fondo CSS no se indexan. A veces los desarrolladores cambian un <img> por una background-image por conveniencia de diseño. Google “puede encontrar imágenes en el atributo src del elemento <img> (incluso cuando es hijo de otros elementos, como el elemento <picture>)” pero “no indexa imágenes CSS.” Si quieres que la imagen aparezca en la búsqueda de imágenes, mantenla en un <img>. (Esto está relacionado con el rendimiento, pero el error es lo bastante común como para señalarlo.)
  • No renombres en masa archivos existentes para un “refresco” de rendimiento/SEO. Mueller ha dicho que los sistemas de Google tardan “mucho tiempo” en reprocesar imágenes renombradas y el efecto es mínimo si tu contexto ya es bueno: el hub principal de SEO de imágenes lo cubre en detalle.
  • Faltan width/height. Siempre establece width y height intrínsecos (o aspect-ratio en CSS) para que el navegador pueda reservar espacio antes de que la imagen se cargue; esto reduce el desplazamiento de diseño causado por imágenes, pero es solo una entrada entre varias en el CLS, no una garantía de una puntuación concreta.

Receta rápida

  • Imagen hero / LCP: formato moderno, tamaño correcto, loading="eager", fetchpriority="high".
  • Todo lo que esté por debajo del pliegue: loading="lazy".
  • Sirve WebP/AVIF con un respaldo src en <picture>.
  • Ajusta el tamaño al contenedor × DPR; entrega un rango de srcset con sizes.
  • Comprime según el tipo de imagen: prueba 2–3 niveles de calidad, no confíes en un solo control deslizante.
  • Siempre establece width/height.

Para el resto del SEO de imágenes — texto alternativo, nombres de archivo, sitemaps de imágenes, datos estructurados y clasificación en la búsqueda de imágenes — vuelve al hub de SEO de imágenes.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.