Otimização de imagens

Como otimizar imagens para SEO e desempenho — formatos modernos como WebP e AVIF, compressão, dimensões corretas e carregamento lento — para melhorar o Core Web Vitals e o LCP.

Publicado pela primeira vez: 2 de jul. de 2026 · Última atualização: 11 de ago. de 2026 · Avançado
Idiomas

A otimização de imagens é uma disciplina de velocidade, não uma alavanca de ranqueamento. Formatos (WebP, AVIF), compressão e dimensionamento correto existem para reduzir bytes e melhorar o LCP — não há aumento direto de ranqueamento para o formato em si (Mueller confirmou isso três vezes separadamente). A regra de maior valor: nunca use carregamento lento na sua imagem LCP (geralmente a imagem principal) — isso atrasa exatamente a métrica que você está tentando corrigir. Essa imagem deve ter loading="eager" e fetchpriority="high". O carregamento lento nativo (loading="lazy") é para imagens fora da viewport inicial, não uma linha fixa 'abaixo da dobra'. A compressão não tem uma qualidade 'certa' universal — teste por imagem. O tamanho correto = tamanho do contêiner renderizado × proporção de pixels do dispositivo, e esse tamanho do contêiner também se move com o layout responsivo, por isso você entrega uma faixa de srcset. Nada disso garante uma pontuação de Core Web Vitals aprovada, uma mudança de ranqueamento ou mais tráfego — meça LCP e CLS antes e depois. Este é o guia prático complementar ao hub de SEO de imagens, que aborda o o quê/porquê.

TL;DR — A otimização de imagens é uma disciplina de velocidade de página / Core Web Vitals, não uma alavanca direta de ranqueamento. A escolha do formato (WebP, AVIF) reduz bytes, mas não dá nenhum impulso de SEO — Mueller já disse isso de três maneiras diferentes; também pese transparência, animação e suporte atual do navegador, não apenas a taxa de compressão. A regra mais valiosa: nunca use lazy-load na sua imagem LCP (geralmente o hero); isso atrasa exatamente a métrica que você está otimizando. Dê a ela loading="eager" + fetchpriority="high", embora dicas de prioridade só ajudem em um gargalo de descoberta/tempo de busca, não em todo problema de LCP. O loading="lazy" nativo é para imagens fora do viewport inicial — não uma linha fixa “abaixo da dobra”. A compressão não tem qualidade “certa” universal — teste por tipo de imagem. Dimensões corretas = tamanho do contêiner renderizado × proporção de pixels do dispositivo, e esse tamanho do contêiner em si muda com o layout responsivo, então entregue um intervalo de srcset/sizes (um valor errado de sizes baixa silenciosamente uma imagem superdimensionada) com um fallback <picture>. Imagens são o elemento LCP mais comum na web, por isso este artigo faz referência cruzada com Web Performance — mas nada disso garante uma pontuação Core Web Vitals aprovada, uma mudança de ranqueamento ou mais tráfego; meça antes e depois.

O que a otimização de imagens otimiza (desfaça o mito logo de cara)

Deixe-me acabar com o maior mito antes de qualquer coisa: o formato da imagem é uma alavanca de velocidade, não uma alavanca de ranqueamento. Converter para WebP ou AVIF não garante um aumento de ranqueamento. Garante arquivos menores, que garantem uma página mais rápida, que alimenta o Core Web Vitals — e essa é a parte que os sistemas de busca usam. A cadeia é real, mas indireta, e colapsá-la em “formatos de última geração ranqueiam melhor” é onde a maioria dos guias concorrentes erra.

A documentação do Google é direta sobre por que imagens importam para a velocidade: elas são “frequentemente o maior contribuidor para o tamanho geral da página, o que pode tornar as páginas lentas e caras de carregar”, e o conselho é “aplicar as técnicas mais recentes de otimização de imagens e imagens responsivas para fornecer uma experiência de usuário de alta qualidade e rápida” (Google Search Central — Imagens). Observe o enquadramento: experiência de usuário rápida, não uma recompensa de ranqueamento para o formato do arquivo.

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 o o quê/porquê do SEO de imagens em geral — texto alternativo, nomes de arquivo, sitemaps de imagem, dados estruturados, ranqueamento na busca de imagens — isso é trabalho do hub pai de SEO de Imagens. Este artigo é o como canônico: formatos, compressão, dimensionamento e estratégia de carregamento.

Comece com a regra que todos quebram: nunca use lazy-load na sua imagem LCP

Se você levar uma coisa desta página, leve esta. O elemento Largest Contentful Paint (LCP) — a maior coisa pintada no viewport ao carregar — é “ou uma imagem ou uma fonte da web”, segundo web.dev (Otimize o LCP), e na maioria das páginas é uma imagem: o hero, a imagem em destaque, a foto do produto. web.dev coloca a regra de forma tão direta quanto o Google costuma falar qualquer coisa:

“Never lazy-load your LCP image, as that will always lead to unnecessary resource load delay, and will have a negative impact on LCP.” (tradução) «Nunca use lazy load na imagem LCP, pois isso sempre causa atraso desnecessário no carregamento do recurso e prejudica o 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

Essa é a nuance que a maioria dos conselhos de “apenas use lazy loading” ignora completamente. Lazy-loading é ótimo — para imagens abaixo da dobra. Aplique-o à imagem LCP e você atrasa ativamente a única métrica que está tentando melhorar. O guia de lazy-loading do web.dev diz o mesmo de outra direção: “Don’t lazy-load images that are likely to be in-viewport when the page loads, especially LCP images” (tradução) «Não use lazy-load em imagens que provavelmente estarão no viewport quando a página carregar, especialmente imagens LCP» (Lazy loading em nível de navegador).

Fiz o mesmo argumento no meu artigo sobre LCP no Ahrefs: o maior elemento “geralmente será uma imagem em destaque ou talvez a tag <h1>, e as correções decorrem disso. “Se você não precisa da imagem, a solução mais impactante é simplesmente se livrar dela. Se você precisa da imagem, sugiro otimizar o tamanho e a qualidade para mantê-la o menor possível.” Você deve “aplicar lazy load em qualquer imagem que não precise imediatamente” — mas o outro lado é uma regra rígida que coloquei em maiúsculas por um motivo: “Não aplique lazy load em imagens acima da dobra!”

fetchpriority="high" na imagem LCP

Não aplicar lazy load no hero é necessário, mas não suficiente. Para garantir que a imagem LCP carregue o mais cedo possível, indique sua prioridade ao navegador. Do web.dev:

“Você pode indicar ao navegador quais recursos são mais importantes usando o atributo fetchpriority… É uma boa ideia definir fetchpriority=\"high\" em um elemento <img> se você acha que ele provavelmente será o elemento LCP da sua página.”

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

No meu artigo sobre LCP, descrevo fetchpriority="high" da mesma forma — ele “pode ser usado em as tags <img> ou <link> e diz aos navegadores para buscar a imagem cedo” — e eu o combino com Early Hints (uma resposta 103) como uma forma complementar de iniciar a busca antes mesmo de o HTML principal chegar. Então a receita para LCP é: carregamento imediato + fetchpriority="high" (+ Early Hints se sua stack suportar). Todo o resto da página pode usar lazy load.

Trate fetchpriority e preload como ferramentas específicas para gargalos, não como uma correção garantida. Eles ajudam quando a imagem LCP é descoberta ou buscada tarde; não fazem nada para uma resposta lenta do servidor, um recurso que bloqueia a renderização antes da imagem ou um arquivo genuinamente grande demais. Confirme qual gargalo você realmente tem (PageSpeed Insights ou Lighthouse divide o LCP em subpartes) antes de assumir que apenas uma dica de prioridade vai mudar o número.

loading="lazy" nativo — grátis, simples e correto abaixo da dobra

Para cada imagem que não está no viewport inicial, o lazy loading nativo é a vitória mais fácil em performance. web.dev: “Você pode usar o atributo loading para aplicar lazy load em imagens sem precisar escrever código de lazy loading personalizado ou usar uma biblioteca JavaScript separada.”

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

Duas coisas mantêm isso seguro:

  • Baseie-se no viewport inicial, não em uma linha fixa de “abaixo da dobra”. “A dobra” não é um número fixo de pixels — ela muda com o tamanho do viewport e o layout. O teste real é se a imagem provavelmente estará visível quando a página for pintada pela primeira vez. Qualquer coisa que estiver — e especialmente a imagem LCP — recebe loading="eager" (o padrão), nunca lazy.
  • Prefira o atributo nativo em vez de hacks em JavaScript. Lazy loaders em JavaScript que escondem a URL real em data-src e nunca expõem um src correm o risco de não serem indexados. O loading="lazy" nativo (ou um IntersectionObserver limpo) mantém o src visível para os rastreadores. O hub pai de SEO de Imagens cobre essa ressalva de indexação por completo.

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

Os formatos são onde a desmistificação mais importa, então vamos ser precisos sobre o que cada um oferece a você — que são bytes, não ranqueamento.

  • WebP“geralmente tem melhor compressão que JPEG, PNG ou GIF, oferecendo compressão com e sem perdas” (web.dev — Image performance). Aproximadamente 25–35% menor que JPEG com suporte quase universal dos navegadores. O padrão seguro para fotos hoje.
  • AVIF“suporta compressão com e sem perdas, e testes mostraram economia maior que 50% em comparação com JPEG em alguns casos.” Compressão de primeira linha, suporte ligeiramente menos universal, então combine-o com um fallback WebP ou JPEG.
  • JPEG — o fallback universal para fotografias.
  • PNG — quando você precisa de transparência ou gráficos com bordas nítidas.
  • SVG — logotipos e ícones: vetorial, escala infinitamente, minúsculo.

O formato a ser escolhido também depende do que a imagem precisa fazer, não apenas de qual comprime mais: transparência, animação e a consistência com que um navegador ou ferramenta suporta essa combinação específica influenciam a escolha, além da economia bruta de tamanho acima — verifique o suporte atual para o recurso exato de que você precisa, especialmente para qualquer coisa animada, antes de se comprometer com um formato como padrão.

O Google Search suporta “BMP, GIF, JPEG, PNG, WebP, SVG e AVIF” referenciados em um src de <img>. Sirva o formato moderno com um fallback gracioso 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>

O <img src> na parte inferior é sua rede de segurança — navegadores e rastreadores mais antigos recorrem a ele, e é o URL que o Google realmente indexa.

O formato afeta o ranqueamento? (Não — e Mueller já disse isso de três maneiras)

Este é o único fio de desmistificação que vale a pena puxar por todo o tópico. Três declarações separadas e independentes de John Mueller chegam à mesma conclusão — o formato afeta a mecânica de rastreamento/indexação e o peso da página, nunca o ranqueamento diretamente:

  1. AVIF não dá vantagem de SEO. Depois que o Google adicionou suporte nativo a AVIF, Mueller confirmou que não há “SEO boost” por usar AVIF em vez de outros formatos suportados (cobertura do SE Roundtable).
  2. WebP é aceitável. “WebP images are fine for Image Search” (tradução) «imagens WebP funcionam normalmente na pesquisa de imagens» — aceitável, não superior (cobertura do SE Roundtable).
  3. As peculiaridades de indexação do WebP não são específicas do formato. Quando as pessoas viram arquivos WebP aparecerem como “Crawled – currently not indexed” no GSC, o ponto de Mueller era que arquivos de imagem não são indexados como páginas HTML, e ele não acreditava que o fenômeno fosse limitado ao WebP (cobertura do SEJ).
Essas declarações de representantes são citadas por meio de cobertura secundária verbatim (SE Roundtable, Search Engine Journal) de office-hours e posts sociais, em vez de uma página primária com link direto; são as mesmas citações usadas no hub pai de SEO de Imagens, mantidas consistentes aqui. O artigo do SEJ parafraseia/resume Mueller em vez de citá-lo em bloco.

Compressão e qualidade: não existe uma configuração “certa” universal

O conselho ruim mais comum em guias de imagem é um único item “comprima para 80%”. O web.dev é explícito que esse número mágico não existe:

“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.” (tradução) «Na compressão, não existe uma configuração universal para todos os casos; teste níveis diferentes até equilibrar qualidade e tamanho do arquivo.»

Na prática: teste por tipo de imagem. Fotografias toleram bem compressão lossy agressiva; gráficos, logotipos e capturas de tela com texto mostram artefatos rapidamente e geralmente querem lossless ou uma configuração de qualidade mais alta. Em vez de confiar em um único controle deslizante, exporte a mesma imagem em dois ou três níveis de qualidade e observe-os no tamanho de exibição — o menor que você não consegue distinguir visualmente do original é sua resposta. Esse é um fluxo de trabalho real, não “passe pelo TinyPNG e torça”.

Dimensões corretas: tamanho do contêiner × proporção de pixels do dispositivo

“Apenas deixe menor” não é a regra — corresponder ao tamanho renderizado × a proporção de pixels do dispositivo (DPR) é. Do web.dev:

“An image displayed in a 500 pixel by 500 pixel container would be optimally sized at 500 pixels by 500 pixels.” (tradução) «Uma imagem exibida em um contêiner de 500 por 500 pixels tem tamanho ideal de 500 por 500 pixels.»

“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.” (tradução) «Se o dispositivo tem DPR 2 e a imagem ocupa um contêiner de 500 por 500 pixels, uma imagem quadrada de 1.000 pixels passa a ser o tamanho ideal.»

Então, um contêiner de 500×500 em uma tela 2× (classe Retina) quer uma fonte de 1 000×1 000. Vá maior que isso e você desperdiça bytes sem ganho perceptível; vá menor e fica suave em telas de alto DPR. É por isso que você serve uma faixa de tamanhos e deixa o navegador escolher, 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">

O navegador lê a largura do contêiner (sizes) e seu próprio DPR, e então escolhe o candidato certo do srcset — a versão de entrega responsiva da matemática de DPR acima. O Google recomenda <picture> ou srcset para imagens responsivas e diz: “always specify a fallback URL using the src attribute.” (tradução) «sempre especifique uma URL alternativa com o atributo src».

Errar o sizes e nada avisa você. Se o valor que você declarou não corresponder à largura com que a imagem realmente renderiza — um bug comum após uma mudança de layout ou CSS — o navegador não tem como saber disso e simplesmente escolhe um candidato com base no número impreciso que você forneceu, o que normalmente significa que ele baixa um arquivo maior do que o layout precisa. Isso silenciosamente desfaz o trabalho de formato e compressão acima. A única maneira confiável de detectar isso: abra o painel Network do DevTools, encontre a solicitação da imagem e compare as dimensões do arquivo entregue com a largura real renderizada do contêiner.

Esse exemplo de 500×500 acima é ilustrativo, não um número para todo o site que deva ser codificado — a mesma imagem hero pode renderizar em uma largura diferente no mobile do que no desktop, então o “tamanho do contêiner” se move com seu layout responsivo em vez de permanecer fixo. É exatamente por isso que você entrega um intervalo de srcset em vez de exportar um tamanho “ótimo” e considerar o trabalho concluído.

Por que tudo isso se conecta ao Core Web Vitals

O fio condutor que conecta todas as técnicas acima é o LCP. As imagens são o elemento de LCP mais comum na web, e o LCP é um dos três Core Web Vitals. A meta do Google é que o LCP ocorra em até 2,5 segundos no 75º percentil de carregamentos em dispositivos móveis e computadores (web.dev — Vitals). “Core Web Vitals are the subset of Web Vitals that apply to all web pages, should be measured by all site owners, and will be surfaced across all Google tools.” (tradução) «Core Web Vitals são o subconjunto aplicável a todas as páginas, devem ser medidos por todos os proprietários e aparecem nas ferramentas do Google».

Então, a otimização de imagens não é um fator de ranqueamento discreto — é um contribuidor para um sinal de experiência de página (Core Web Vitals) que os sistemas de ranqueamento usam. Essa distinção é o enquadramento preciso, e é por isso que este artigo vive tanto no cluster de SEO de Imagens quanto no cluster de Web Performance. Para o mergulho profundo na métrica em si, veja Core Web Vitals e LCP em Web Performance.

Mais uma ressalva que vale a pena declarar claramente: nenhuma das correções nesta página garante qualquer coisa. Os bytes de imagem são apenas um componente possível do LCP — a própria análise do web.dev das subpartes do LCP inclui coisas como tempo de resposta do servidor e recursos que bloqueiam a renderização antes da imagem, nenhum dos quais o formato ou a compressão tocam — e as dimensões da imagem são apenas uma entrada para o CLS, não uma garantia de uma pontuação específica. Reduzir uma imagem hero pode ajudar de forma mensurável, não fazer nada, ou (se outra coisa for o gargalo real) mal mover o número. Otimizar imagens também não garante por si só uma avaliação de Core Web Vitals aprovada, uma mudança de ranqueamento, mais tráfego, mais conversões ou uma citação de busca por IA — essas coisas dependem de muito mais do que bytes de imagem. Trate cada correção de imagem como uma hipótese, não como algo garantido: meça LCP e CLS antes e depois, no laboratório e no campo, e deixe que esses dados — não a suposição de que a otimização “funcionou” — digam se algo mudou.

Armadilhas comuns de implementação

  • Imagens de fundo CSS não são indexadas. Devs às vezes trocam um <img> por uma background-image por conveniência de layout. O Google “pode encontrar imagens no atributo src do elemento <img> (mesmo quando ele é filho de outros elementos, como o elemento <picture>)” mas “não indexa imagens CSS.” Se você quer a imagem na pesquisa de imagens, mantenha-a em um <img>. (Este ponto é relacionado a desempenho, mas o erro é comum o suficiente para destacar.)
  • Não renomeie em massa arquivos existentes para um “refresh” de desempenho/SEO. Mueller disse que leva “muito tempo” para os sistemas do Google reprocessarem imagens renomeadas e o efeito é mínimo se o seu contexto já for bom — o hub pai de SEO de Imagens cobre isso em detalhes.
  • Faltando largura/altura. Sempre defina width e height intrínsecos (ou aspect-ratio em CSS) para que o navegador possa reservar espaço antes de a imagem carregar — isso reduz o layout shift causado por imagens, mas é apenas uma entrada entre várias para o CLS, não uma garantia de uma pontuação específica.

Receita rápida

  • Imagem hero / LCP: formato moderno, tamanho correto, loading="eager", fetchpriority="high".
  • Tudo abaixo da dobra: loading="lazy".
  • Sirva WebP/AVIF com um fallback de src em <picture>.
  • Dimensione para o contêiner × DPR; entregue uma faixa de srcset com sizes.
  • Comprima por tipo de imagem — teste 2–3 níveis de qualidade, não confie em um único controle.
  • Sempre defina width/height.

Para o restante do SEO de imagens — texto alternativo, nomes de arquivo, sitemaps de imagem, dados estruturados e ranqueamento na pesquisa de imagens — volte ao hub de SEO de Imagens.

Add an expert note

Pin an expert quote

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