Corrija o Layout Shift causado por dimensionamento automático de imagens

Imagens com width auto e height auto causarão um Layout Shift. Aprenda como corrigir isso

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-03-05

Corrija o Layout Shift causado por dimensionamento automático de imagens

Existe um padrão CSS comum que destruirá a sua pontuação de Cumulative Layout Shift com uma única linha de código. Eu já vi isso em dezenas de sites, e causa um Layout Shift mesmo quando você definiu explicitamente o width e o height em suas imagens. Nem mesmo definir a propriedade CSS aspect-ratio corrigirá o problema.

Revisado pela última vez por Arjen Karel em março de 2026

O problema

Aqui está o CSS que causa o problema. Ele é comumente usado para imagens responsivas:

<style>
img {
    width: auto;
    height: auto;
    max-width: 100%;
}
</style>

A declaração width: auto é o problema. Ela substitui o width que o navegador calcula a partir dos seus atributos HTML width e height, o que significa que o navegador não consegue mais reservar espaço para a imagem antes que ela carregue. A imagem é renderizada com 0x0 pixels até que o arquivo seja baixado e decodificado, e então salta para o seu tamanho original. Esse é o seu Layout Shift.

Por que isso acontece

Desde 2019, os navegadores modernos mapeiam os atributos HTML width e height para uma dica de apresentação interna de aspect-ratio. Essa dica tem zero de especificidade CSS. Qualquer regra CSS do autor a supera, mesmo um simples img { width: auto; }. Quando o CSS define width: auto, o navegador perde a informação necessária para calcular a altura reservada a partir do aspect ratio. Ambas as dimensões tornam-se desconhecidas até que a imagem carregue.

É por isso que definir aspect-ratio no CSS também não corrige o problema. Com width: auto, o navegador resolve o width para 0 no caso de uma imagem não carregada. Um aspect ratio calculado a partir de um width 0 ainda produz um height 0. A reserva de espaço só funciona quando o navegador tem pelo menos uma dimensão conhecida com a qual trabalhar.

Isso também é sorrateiro porque causa um Layout Shift apenas para visitantes de primeira viagem. Se você já tem a imagem no cache do seu navegador, as dimensões intrínsecas estão disponíveis imediatamente e nenhum shift ocorre. Você, como desenvolvedor, provavelmente nunca verá isso acontecer.

Como descobrimos isso

Esses problemas são quase impossíveis de detectar em testes de laboratório porque o Lighthouse é executado em uma máquina rápida com um cache quente. A maneira de detectá-los é com o Real User Monitoring. O RUM rastreia os Core Web Vitals para visitantes reais em dispositivos reais e reporta as pontuações reais de CLS de volta para você, incluindo shifts que só acontecem em primeiras visitas em conexões lentas.

O Web Almanac de 2025 relata que 62% das páginas mobile ainda têm pelo menos uma imagem sem dimensões definidas. Muitas delas são causadas por este exato padrão CSS: o desenvolvedor definiu width e height no HTML, mas uma regra CSS global os substitui por auto.

A correção

Remova width: auto. Mantenha height: auto e max-width: 100%. Este é o padrão recomendado pelo web.dev para imagens responsivas que não causam Layout Shifts:

<style>
img {
    height: auto;
    max-width: 100%;
}
</style>

Com este CSS, o navegador usa o atributo HTML width para determinar a largura da imagem (limitado a 100% do contêiner pelo max-width), e height: auto calcula a altura correta a partir do aspect ratio. O espaço é reservado antes que a imagem carregue. Nenhum Layout Shift.

Certifique-se de que suas tags <img> incluam os atributos width e height:

<img src="hero.jpg" width="800" height="450" alt="Description">

Faça um favor a si mesmo: clique com o botão direito em qualquer imagem do seu site, escolha "Inspecionar Elemento" e verifique os estilos computados em busca de width: auto. Se você encontrar, agora já sabe o que fazer.

Dica: Para mais técnicas de otimização de imagens, veja como otimizar imagens para os Core Web Vitals e como corrigir hero images lentas.

About the author

Arjen Karel is a web performance consultant and the creator of CoreDash, a Real User Monitoring platform that tracks Core Web Vitals data across hundreds of sites. He also built the Core Web Vitals Visualizer Chrome extension. He has helped clients achieve passing Core Web Vitals scores on over 925,000 mobile URLs.

17 years of fixing PageSpeed.

I have optimized platforms for some of the largest publishers and e-commerce sites in Europe. I provide the strategy, the code, and the RUM verification. Usually in 1 to 2 sprints.

View Services
Corrija o Layout Shift causado por dimensionamento automático de imagensCore Web Vitals Corrija o Layout Shift causado por dimensionamento automático de imagens