AVIF vs WebP no e-commerce: WebP + para LCP mais previsível
AVIF vs WebP: escolha pelo tipo de imagem (não pelo hype)
Minha posição é simples: para e-commerce e criadores, AVIF não é “sempre melhor”. WebP bem servido com <picture> costuma entregar Core Web Vitals mais previsíveis, com menos atrito no time e na operação. AVIF entra como opção forte quando você sabe exatamente o que está otimizando: foto grande, muita repetição de padrões (tecido, pele, sombras suaves) e prioridade máxima em bytes.
O problema é que muita gente compara formatos como se fosse só “qual comprime mais”. No dia a dia, o que decide é o pacote completo: compressão e qualidade percebida e tempo de encode e custo de pipeline e compatibilidade/bugs e facilidade de fallback. Para Core Web Vitals, previsibilidade conta quase tanto quanto tamanho do arquivo.
Eu gosto de começar pela pergunta que ninguém quer responder: qual é o seu tipo de imagem dominante? Produto (foto real), banner com texto, ícone, logo com transparência, thumbnail com recorte, arte com degradê, ou mistura de tudo?
- Foto de produto (catálogo): WebP é o “default seguro”. AVIF pode virar “tier 2” para páginas críticas (PDP/landing) quando o ganho é real e o decode/encode não vira gargalo.
- Banner com texto/arte com tipografia: eu evito AVIF por padrão. Arte com texto é onde aparecem halos, banding e perda de nitidez mais fácil. Se a peça precisar de transparência perfeita, PNG ou WebP lossless costumam ser mais previsíveis.
- Ícones/logos (bordas duras, 1–3 cores): quase sempre PNG (bem otimizado) ou SVG (quando fizer sentido). AVIF aqui é uma armadilha comum: você troca “poucos KB” por risco de artefato em borda e dor de cabeça de revisão.
Se você quer um norte rápido: use WebP como base, e trate AVIF como uma otimização adicional onde você mediu ganho (bytes/LCP) e não criou regressão visual. Se você já usa WebP e está pensando em “AVIF em tudo”, eu recomendo ler nosso guia de troca com qualidade controlada em fotos de produto: Switching WebP to AVIF for product photos (without halos).
Core Web Vitals e LCP: bytes importam, mas decode também

Um número que vale fixar: imagens respondem por uma fatia enorme do que vira LCP em sites reais. A Smashing Magazine cita que imagens representam cerca de 42% do elemento de Largest Contentful Paint (LCP) em websites — por isso “formato de imagem” vira conversa de performance tão cedo no diagnóstico. Fonte: Smashing Magazine.
Só que reduzir bytes não é o único caminho para melhorar o LCP percebido. Em aparelhos intermediários (celular de 2–3 anos, CPU limitada), o custo de decode pode virar parte do tempo total até a imagem “pintar” com qualidade. E aqui aparece um trade-off que o SERP raramente coloca na mesa de forma prática: AVIF pode reduzir muito o download, mas nem sempre reduz o tempo total na vida real se a imagem for grande e o device sofrer para decodificar.
Como isso aparece no seu dia? Você troca JPEG/WebP por AVIF, vê “transfer size” cair, mas o LCP não melhora na mesma proporção (ou piora em alguns aparelhos). Isso pode acontecer por:
- Decode mais caro: mais tempo de CPU para transformar bytes em pixels.
- Prioridade e layout: imagem sem
width/heightou com CSS que muda o tamanho gera recalculo e atrasa pintura. - Erros de pré-carregamento:
preloaddo formato errado ou semimagesrcsetfaz o navegador baixar “a versão errada” primeiro.
O ponto prático: para e-commerce, a meta não é “menor arquivo”, é LCP mais baixo com menos variância em devices e redes diferentes. Por isso WebP + <picture> costuma ser mais previsível como primeira etapa.
Se você está estruturando um plano de redução de bytes + recortes + formatos, eu juntaria isso num único fluxo (corte + fundo + formato) em vez de “format-first sem olhar imagem”. A gente detalha essa sequência aqui: Image Optimization for Ecommerce: Crop, Background, Format First.
Quando evitar AVIF: logos, texto, transparência e bordas duras
Você já viu isso: um banner com texto fino, exportado em AVIF “porque é moderno”, e de repente as letras ficam com um contorno estranho. Ou um logo com fundo transparente que parece “sujo” em cima de um fundo colorido. A culpa não é do seu olho — é o tipo de conteúdo.
AVIF brilha em foto. Mas em arte não fotográfica (logos, UI, ilustração flat, texto nítido, bordas duras), os artefatos ficam mais óbvios e mais caros de revisar. Em e-commerce, isso vira custo operacional: designer reexporta, alguém compara, QA abre ticket, o time tenta “um quality maior” e o arquivo volta a crescer. Você não quer isso na esteira diária.
Checklist rápido para decidir “evitar AVIF” sem drama:
- Tem texto pequeno? (CTA, preço, selo, tagline) Prefira PNG bem otimizado, SVG (se for vetor), ou WebP lossless quando fizer sentido.
- Tem transparência crítica? (logo sobre fundos variados) PNG ainda é o baseline previsível; WebP lossless costuma funcionar bem quando você quer reduzir tamanho sem mudar a aparência.
- Tem borda dura/flat? (ícones, ilustração flat) Priorize consistência visual; o ganho de bytes raramente paga o risco de halo.
- Tem gradiente suave em UI? Teste com cuidado. Banding em gradiente é o tipo de bug que passa na pressa e dói depois.
Isso não significa “AVIF nunca”. Significa “AVIF com regra”: foto de produto, hero fotográfico, galeria — e sempre com comparação visual. Quando o ativo tem texto ou precisa de transparência perfeita, eu começo com PNG/WebP (lossless se necessário) e só mudo se o ganho for claro e sem regressão.
Quer ver como essa conversa vira resultado em página real (bytes, crops, e impacto em CWV)? Este texto conecta recorte + tamanho + formato em e-commerce: Smaller Product Images Win: WebP/AVIF, Crops, Core Web Vitals.
Progressive enhancement com <picture>: o caminho “sem atrito”
Quer uma afirmação que vai contra a ansiedade do “novo formato”? Você não precisa escolher um único formato para sempre. O jeito mais limpo de servir AVIF e WebP sem quebrar nada é progressive enhancement com <picture>: você entrega o melhor formato que o navegador aceita, e mantém fallback para JPEG/PNG quando precisar.
O básico que funciona em produção é: AVIF primeiro (se você realmente quer oferecer), WebP depois, e então JPEG/PNG. E você mantém srcset/sizes bem configurados para não baixar uma imagem grande à toa.
<picture>
<source type="image/avif" srcset="/img/produto-400.avif 400w, /img/produto-800.avif 800w" sizes="(max-width: 600px) 400px, 800px">
<source type="image/webp" srcset="/img/produto-400.webp 400w, /img/produto-800.webp 800w" sizes="(max-width: 600px) 400px, 800px">
<img src="/img/produto-800.jpg" width="800" height="800" loading="lazy" decoding="async" alt="">
</picture>
Quatro detalhes que evitam dor (e explicam muita “otimização que não mexe no LCP”):
- Não esqueça
width/heightno<img>: isso segura layout e reduz surpresa no carregamento. - Use
sizesde verdade: se você chuta errado, o browser escolhe um arquivo maior “por segurança” e seu ganho some. - Se for a imagem de LCP (hero): não trate como “lazy”. Em muitas páginas, você quer
loading="eager"efetchpriority="high"para reduzir variância (principalmente em mobile). - Cuidado com preload mal feito: se você fizer
<link rel="preload" as="image">semimagesrcset/imagesizes, é comum pré-carregar “a versão errada” e pagar download duplicado.
Do ponto de vista de operação, <picture> também evita uma armadilha comum: tentar “adivinhar formato” no servidor com content-negotiation e acabar fragmentando cache no CDN. Você publica as variantes e deixa o navegador escolher — simples, estável e fácil de auditar.
Esse padrão resolve o tópico que sempre aparece na reunião: AVIF browser support. Você não precisa apostar em compatibilidade perfeita — você oferece e deixa o navegador escolher. Para o usuário, a página só abre. Para você, o rollout é gradual e controlável.
E se o seu time pede “AVIF to WEBP” ou “AVIF to JPG” no dia a dia, trate isso como parte do pipeline, não como tarefa manual. Manual vira dívida: alguém esquece, alguém exporta errado, e você descobre só depois.
Fluxo de otimização para fotos de produto: do estúdio ao CDN
Se você vende produto, sua dor não é “qual formato é melhor”. Sua dor é: como escalar consistência visual + performance com uma equipe pequena. Aqui vai um fluxo que eu já vi funcionar bem em lojas com catálogo grande, sem virar projeto interminável.
| Etapa | Decisão prática | Por que isso vem agora |
|---|---|---|
| 1) Master | Guarde uma master (TIFF/PNG) fora do site | Evita “recompressão sobre recompressão” quando você muda pipeline |
| 2) Recorte e fundo | Normalize proporção (ex: 1:1) e fundo (branco/transparente) | Reduz variância, melhora cache, facilita srcset |
| 3) Tamanhos | Gere 2–4 larguras úteis (ex: 400/800/1200px) | Ataca bytes mais do que “trocar formato” sozinho |
| 4) Formatos | WebP como base + JPEG fallback; AVIF opcional por rota | Menos risco, rollout gradual, CWV mais previsível |
| 5) Entrega | <picture>, cache longo, CDN |
Evita download duplicado e dá estabilidade |
O “pulo do gato” aqui é operacional: AVIF costuma exigir mais disciplina no encode. Se você tem 10 mil imagens e decide subir o quality “porque apareceu halo em 20”, seu custo de reprocessamento explode e seu tempo de build sobe. WebP tende a ser mais tranquilo como formato base justamente por isso: a operação é menos sensível.
Se a sua equipe é pequena, eu recomendo uma regra de ouro: otimize a maior parte do catálogo com WebP previsível, e trate AVIF como “classe premium” só para rotas que pagam (home, landing, coleção campeã). Isso evita refazer tudo quando o time descobre um problema de qualidade em um tipo específico de foto.
Quer um gancho de ROI rápido que aparece fora do catálogo também? Em páginas de captura e formulários, imagens leves reduzem fricção e ajudam CWV. A gente já escreveu sobre esse ângulo aqui: Signup form que converte: imagens leves (WebP/AVIF) + Core Web Vitals (ROI rápido).
Como medir ganhos (de verdade) e evitar regressões silenciosas
A parte que separa “otimizei imagens” de “melhorei o site” é medir antes/depois sem autoengano. Não precisa virar laboratório. Precisa de consistência: mesma página, mesmo template, mesma rota, e um conjunto pequeno de imagens representativas.
Eu uso um roteiro simples em 2 camadas: bytes (o que você paga na rede) e tempo (o que o usuário sente). Para e-commerce, eu priorizo páginas onde o LCP é foto de produto ou banner principal.
Regra prática: se você reduziu 30–40% do “transfer size” da imagem principal, mas o LCP não mexeu, desconfie de decode/priority/layout. A solução pode estar no
sizes, no preload ou no CSS — não no formato.
Checklist de medição que cabe no sprint:
- Escolha 3 páginas: home, uma PDP (produto), uma coleção.
- Separe 10 imagens: 6 fotos reais, 2 banners com texto, 2 logos/ícones.
- Meça bytes: compare peso por formato e por tamanho (400/800/1200px). Se você não corta tamanhos, você vai “ganhar” pouco no mundo real.
- Meça LCP e TBT/INP em devices reais: nem tudo aparece no seu MacBook. Um Android intermediário é onde regressão de decode aparece.
- Valide visual: zoom em 200% nos cantos, bordas e texto. Halo e banding são “pequenos” até virarem reclamação de marca.
Erros comuns que eu continuo vendo (e que dão trabalho depois):
- AVIF em arte com texto e transparência para “economizar KB” e, semanas depois, alguém nota o texto borrado no criativo de campanha.
- Sem fallback decente: o time sobe AVIF e esquece JPEG/PNG, e a compatibilidade vira bug intermitente.
- Pipeline manual (“AVIF to JPG” na pressa): um arquivo entra fora do padrão, e sua biblioteca vira um mosaico inconsistente.
Se você quer aplicar a tese deste artigo sem se perder: WebP como base, <picture> com fallback, e AVIF só onde você mediu ganho e validou qualidade. É menos glamouroso do que “AVIF em tudo”, mas para Core Web Vitals e operação, é o que se sustenta mês após mês.
FAQ
Quando vale a pena usar AVIF em e-commerce?
Quando a imagem é fotográfica (produto/hero), grande e realmente pesa no carregamento, AVIF pode reduzir bytes de forma relevante. Eu uso como camada extra via <picture>, mantendo WebP e JPEG/PNG como fallback, e só amplio o uso depois de validar qualidade e LCP em device real.
Como fazer fallback de AVIF sem quebrar compatibilidade?
Use <picture> com <source type="image/avif">, depois image/webp, e finalize com <img> em JPEG/PNG. Assim, o navegador escolhe o melhor formato suportado e você não precisa “adivinhar” AVIF browser support.
AVIF é ruim para logos e imagens com texto?
Não é “ruim”, mas é mais arriscado: artefatos em bordas duras, halos em letras e problemas em transparência aparecem com mais facilidade e custam caro para revisar. Para logos/ícones e banners com texto, PNG bem otimizado, SVG (quando aplicável) ou WebP lossless tendem a ser mais previsíveis.
Como converter AVIF to WEBP ou AVIF to JPG sem dor?
Trate conversão como parte do pipeline (build/CDN), não como tarefa manual. Gere WebP e JPEG/PNG a partir da master original e publique via <picture>; converter de AVIF para outro formato como “origem” aumenta o risco de perda acumulada e inconsistência visual.



