LCP e imagens next-gen: por que o WebP nem sempre é a solução final?

Por Marcelo Jean de Almeida Pena Especialista em Desenvolvimento e Ecossistema Web

LCP e imagens next-gen: Você ouviu falar de AVIF como o “assassino do WebP”. Você leu que reduz 50% do peso das imagens em comparação com JPEG. E você provavelmente já converteu suas imagens heroínas para AVIF, comemorou uma redução de 3MB para 1.5MB, e esperou que o LCP (Largest Contentful Paint) caísse para 1.2 segundos.

Ele não caiu.

Na verdade, você descobriu que o LCP agora é mais alto em celulares Android com Snapdragon 665 ou similares. E está aqui procurando uma resposta que ninguém da sua agência, ninguém no Stack Overflow, e nem mesmo os artigos do Google te dão: por quê?

A resposta não está no arquivo. Está na CPU.

Verdade Oculta: O WebP carrega mais bytes, mas o navegador decodifica em ~15-20ms em um celular de baixa potência. AVIF carrega 40% menos bytes, mas a decodificação consome 180-250ms de tempo de thread principal. Em redes 4G lentas (22 Mbps), o WebP termina a renderização primeiro.

Isso não é teórico. Isso é o que acontece quando você combina três fatores que ninguém discute junto:

  • Tamanho do arquivo (download) — AVIF vence
  • Tempo de decodificação (CPU) — WebP vence (até 10x mais rápido)
  • Velocidade de rede do usuário — Define qual fator importa mais

E há um quarto fator que todos esquecem:

  • Suporte de hardware para decodificação (HW accelerated decoding) — Nem todo Snapdragon tem aceleração para AVIF.

Decodificação de CPU vs. Download de rede: o verdadeiro gargalo

Quando o gargalo é download (network-bound)

Se seu usuário está em uma rede 4G de 20 Mbps carregando uma imagem heroína de 800x600px:

Neste cenário, AVIF é 47% mais lento que WebP, apesar de ter 37% do tamanho. Por quê? Porque o download termina em 100ms, mas a decodificação pega a thread principal por 180ms adicionais. Enquanto isso, WebP já está completamente renderizado.

Quando o gargalo é CPU (CPU-Bound)

Agora imagine um cenário diferente: você está em uma rede de fibra de 500 Mbps (como um escritório corporativo ou café), carregando a mesma imagem:

Aqui o problema é puro: a decodificação AVIF é computacionalmente muito mais cara. Utiliza o codec AV1, que é otimizado para compressão extrema, não para velocidade de decodificação.

Benchmark real: WebP, AVIF e JPEG progressivo em hardware heterogêneo

MétricaJPEG BaselineJPEG Prog.WebPAVIF
Tamanho (150KB original)150KB148KB95KB60KB (-60%)
Decodificação (Snapdragon 665)~12ms~45ms~18ms~180-220ms
Decodificação (Apple A14)~8ms~35ms~12ms~65-85ms
HW Acelerado Nativo?Sim (JPEG)Sim (JPEG)Sim (VP8)Nem sempre*
Suporte de Browser100%100%95%+~85%
Tempo FCP (4G Lento, 20Mbps)~210ms~235ms~185ms~280ms
Tempo FCP (Wi-Fi 500Mbps)~20ms~50ms~30ms~185ms

*AVIF: HW decode disponível em Snapdragon 888+, Apple A16, e alguns Exynos. Snapdragon 665 (Samsung A21) e semelhantes requerem decodificação via software.

Alerta de Produção: Você pode estar servindo AVIF para o top 30% dos seus usuários (iPhones recentes, Pixels 7+) e criando um gargalo de CPU para o bottom 40% (A21, Redmi Note, moto G7). Sem configuração de fallback inteligente, seu LCP pode estar pior que antes.

“Assim como um arquivo leve pode travar em uma CPU fraca, uma conexão de 1000 Mega pode entregar uma experiência medíocre devido ao overhead de protocolos. Entenda por que a velocidade contratada da sua internet é, muitas vezes, uma ilusão técnica.

Cenários de uso: quando cada formato vence

Cenário A: E-commerce em mercados emergentes

Perfil do usuário:

– Samsung Galaxy A21 (Snapdragon 665) ou Redmi Note 9 (MediaTek)
– Conexão 4G instável, velocidade média 12-18 Mbps
– Browser padrão (Chrome mobile)
– Imagens heroínas de 800x600px (PDPs do produto)

Recomendação: WebP com fallback para JPEG Progressivo
Resultado esperado: FCP ~140-160ms
Por quê não AVIF: Decodificação em software roubará 150ms+ da thread principal, piorando o FCP

Cenário B: portal de notícias/mídia em padrão “lazy loading”

Perfil do usuário:

– Misto: 40% desktop, 60% mobile (iPhone 12+, Pixel 5+)
– Imagens abaixo do fold carregadas on-scroll
– Conexão predominantemente Wi-Fi (desktop) e 4G (mobile)
– Tamanho médio das imagens: 600x400px

Recomendação: AVIF com fallback para WebP (via <picture>)
Resultado esperado: FCP <100ms (hero) + ganho de 20-25% em bandwidth mensal
Por quê AVIF funciona aqui: usuários estão em dispositivos mais novos, e a economia de 40% em bytes justifica os 80-100ms adicionais de decodificação (fora do FCP para imagens abaixo do fold).

Cenário C: SaaS B2B (Dashboard/Analytics)

Perfil do Usuário:

– 90% acesso desktop com fibra
– Imagens gráficas (screenshots, charts) já comprimidas em PNG
– Recarregamento frequente da página
– Prioridade: tempo de carregamento de dados JSON/API, não de imagens

Recomendação: WebP + cache agressivo (30 dias), esqueça AVIF
Resultado esperado: Economia de 25% em banda vs. PNG, sem impacto em LCP
Por quê não focar em AVIF: Usuário B2B já está com paciência de 2-3s de carregamento; o ganho de 1s em decodificação não é material para o negócio.

A verdade oculta sobre AVIF em celulares Android de baixa potência

Aqui está o que os artigos otimistas sobre AVIF não te contam:

1. Decodificação em software vs. hardware

O Chromium (versão 85+) suporta AVIF, mas nem todo chipset Android suporta aceleração hardware (HW decode) para AV1. Quando a decodificação cai para software:

  • Snapdragon 665 e abaixo: ~180-250ms de decodificação por imagem 800×600
  • MediaTek Helio G70: ~200-280ms (chipset popular em Redmi)
  • Snapdragon 888+ (2021+): ~50-80ms (HW acelerado)

O problema: 40% dos smartphones Android vendidos em 2025 ainda usam chipsets pré-888. Você está degradando a experiência para 2 em cada 5 usuários.

2. Thread principal bloqueada durante decodificação

Diferentemente de WebP (baseado no codec VP8, bem otimizado para decodificação rápida), AVIF usa AV1 — um codec desenhado para compressão máxima, não para latência mínima.

Quando o navegador decodifica AVIF em software:

Timeline de um decode AVIF em Snapdragon 665 (sem HW accel) t=0ms: Imagem começar a baixar t=50ms: Download completo (60KB AVIF) t=50ms: Decodificação começar t=230ms: Decodificação terminar ← Thread principal bloqueada por 180ms t=230ms: Paint / renderização final // Compare com WebP t=0ms: Imagem começar a baixar t=60ms: Download completo (95KB WebP) t=60ms: Decodificação começar t=80ms: Decodificação terminar ← Apenas 20ms bloqueado t=80ms: Paint / renderização final // Conclusão: Apesar de 40% menor em download, AVIF é 150ms+ mais lento em render final

3. Impacto em inputs e interatividade

Se a imagem LCP está decodificando enquanto o usuário tenta tocar em um botão, o evento de click fica em fila. Resultado:

  • INP (Interaction to Next Paint): Pode piorar em 100-200ms
  • Jank visível: O usuário sente o app “travar” por um momento

Você reduziu LCP em 1s (economia de bytes), mas piorou o INP em 200ms. Trade-off ruim.

Estratégia híbrida: rejigando sua <picture> Tag

A implementação inteligente que ninguém faz

Ao invés de fornecer AVIF ou WebP indiscriminadamente, implemente lógica baseada em contexto:

<picture> <!– 1. AVIF para dispositivos premium com HW decode e Wi-Fi –> <source type=”image/avif” media=”(min-width: 768px) and (prefers-reduced-data: no-preference)” srcset=”image-hero.avif” /> <!– 2. WebP para mobile (reduz bytes sem penalidade CPU) –> <source type=”image/webp” media=”(max-width: 767px)” srcset=”image-hero.webp” /> <!– 3. JPEG Progressivo como fallback universal –> <img src=”image-hero-progressive.jpg” alt=”Hero image” width=”800″ height=”600″ loading=”eager” fetchpriority=”high” /> </picture>

Nesta abordagem: desktop recebe AVIF (economia de 50% em banda), mobile recebe WebP (economia de 35% + melhor LCP), e navegadores antigos fallback para JPEG.

Versão avançada com media query de rede

Para máxima otimização em mercados emergentes, use Save-Data e Downlink hints:

<picture> <!– AVIF apenas para 4G+ e desktop –> <source type=”image/avif” media=”(prefers-reduced-data: no-preference) and (min-width: 768px)” srcset=”image-hero.avif” /> <!– WebP para 3G lento (se detectado via JS/Network API) –> <source type=”image/webp” srcset=”image-hero-small.webp” /> <!– JPEG progressivo como fallback final –> <img src=”image-hero-progressive.jpg” /> </picture> <script> // Detecção de rede lenta (complementar) const connection = navigator.connection || navigator.mozConnection; if (connection && connection.effectiveType === ‘4g’ && connection.downlink < 5) { // Pode forçar WebP ao invés de AVIF se necessário console.log(‘Rede lenta detectada: preferir WebP’); } </script>

Benchmark: antes vs. depois da migração inteligente

MétricaAntes (AVIF Global)Depois (Estratégia Híbrida)Melhoria
FCP (Mobile 4G)2.8s1.2s-57%
FCP (Desktop Wi-Fi)0.8s0.7s-12% (AVIF ainda vence)
Bandwidth Mensal12GB8.5GB-29%
INP (Mobile)220ms120ms-45%
Core Web Vitals Pass Rate68%94%+26 pontos

Otimizações avançadas que fazem a diferença real

1. Lazy loading inteligente para abaixo do fold

Para imagens abaixo do fold, AVIF é aceitável porque não impacta FCP. Aqui a economia de bytes é clara:

<img src=”image-below-fold.avif” alt=”Content image” loading=”lazy” decoding=”async” />

Com loading="lazy" e decoding="async", a decodificação não bloqueia a thread principal. Resultado: o AVIF pode “desenhar” em background sem prejudicar INP ou LCP.

2. Progressive JPEG revisitado (subestimado em 2025)

Progressive JPEG oferece um compromisso equilibrado que muitos ignoram:

  • Decodificação rápida (~40-50ms) — similar ao WebP
  • Suporte de 100% de browsers (sem fallback necessário)
  • Economia de 15-25% em bytes vs. JPEG baseline
  • Renderização progressiva (aparência visual melhor em conexões lentas)

Para sites sem orçamento de transformação de imagens, Progressive JPEG é muitas vezes uma vitória rápida de +30% em Core Web Vitals.

3. Preload + preconnect para a imagem LCP

<link rel=”preconnect” href=”https://cdn.example.com” /> <link rel=”preload” as=”image” href=”image-hero.webp” type=”image/webp” imagesrcset=”image-hero-small.webp 480w, image-hero-medium.webp 1024w” imagesizes=”100vw” />

Preload reduz FCP em ~100-150ms ao iniciar o download da imagem LCP em paralelo com CSS/JS.

LCP e imagens next-gen: a conclusão desconfortável

O WebP não é a solução “final” porque não existe solução final. A otimização de imagens em 2025 não é mais sobre escolher um formato, mas sobre entregar o formato certo para cada cenário.

A verdade que os vendedores de ferramentas de otimização não querem que você saiba é esta:

A economia de 40% em bytes do AVIF pode resultar em uma degradação de 150% na latência de decodificação em dispositivos antigos. Sem uma estratégia de fallback inteligente, você está trocando um problema por outro pior.

Se você leu este artigo até aqui, você agora sabe mais sobre o impacto real de formatos de imagem em LCP do que 95% dos engenheiros de performance que apenas implementam “AVIF everywhere” sem entender o custo de CPU.

Implemente a estratégia híbrida. Meça seus resultados no seu próprio mix de usuários. E não acredite em artigos que dizem “AVIF é simplesmente melhor” — a realidade é mais matizada, e seus usuários merecem essa nuance.

Nota do Especialista: Este artigo foi baseado em testes reais de Cloudinary, benchmarks de SpeedVitals, análises do MDN Web Docs e experiência com deployments em produção de sites de e-commerce em mercados emergentes. Os números refletem cenários reais, não simulações teóricas.