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

Imagens com largura e altura automáticas causarão um Layout Shift. Aprenda como corrigir isso

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

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

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

Este artigo foca no problema do CSS width: auto. Para o guia completo sobre todas as causas de Layout Shift em imagens e mídias (vídeos, iframes, direção de arte, imagens responsivas, lazy loading, placeholders), veja Como Imagens e Mídias Causam Layout Shift.

Última revisão 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 a largura que o navegador calcula a partir dos seus atributos HTML width e height, o que significa que o navegador não pode mais reservar espaço para a imagem antes que ela carregue. A imagem é renderizada em 0x0 pixels até que o arquivo seja baixado e decodificado, então ela muda para o seu tamanho real. Esse é o seu Layout Shift.

Por que isso acontece

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

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

Isso também é traiçoeiro 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 Layout Shift ocorre. Você, como desenvolvedor, provavelmente nunca o verá.

Como nós o encontramos

Esses problemas são quase impossíveis de detectar em testes de laboratório porque o Lighthouse roda em uma máquina rápida com um cache quente. A maneira de detectá-los é com 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 2025 relata que 62% das páginas mobile ainda têm pelo menos uma imagem sem tamanho definido. Muitas delas são causadas por esse exato padrão CSS: o desenvolvedor definiu largura e altura no HTML, mas uma regra CSS global as substitui com 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 (limitada a 100% do contêiner por max-width), e height: auto calcula a altura correta a partir do aspect ratio. O espaço é reservado antes que a imagem carregue. Sem Layout Shift.

Certifique-se de que suas tags <img> incluam os atributos de largura e altura:

<img src="hero.jpg" width="800" height="450" alt="Descrição">

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ê o vir, 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 imagens hero 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.

Fiz o CoreDash pras minhas próprias auditorias.

Menos de 1KB. Hospedado na UE. Sem banner de cookies. Agora com suporte a MCP.

Testa o CoreDash grátis
Corrija o Layout Shift causado pelo dimensionamento automático de imagensCore Web Vitals Corrija o Layout Shift causado pelo dimensionamento automático de imagens