A versão curta
- Para otimizar imagens para a web, exporta cada imagem no tamanho em que é apresentada, cerca do dobro para ecrãs de alta densidade, em vez de carregares o original.
- O AVIF e o WebP geram ficheiros muito mais pequenos do que o JPEG e o PNG com qualidade visual semelhante, e todos os navegadores atuais suportam WebP.
- Os atributos srcset e sizes deixam o navegador descarregar a imagem mais pequena que ainda fica nítida em cada ecrã.
- Aplica lazy loading às imagens abaixo da dobra com loading="lazy", mas carrega logo a imagem principal com fetchpriority="high", porque costuma decidir o Largest Contentful Paint.
- Define sempre width e height nas imagens, para o navegador reservar espaço e o layout não saltar enquanto carregam.
Nesta página
Para otimizar imagens para a web sem perda visível, faz cinco coisas: exporta cada imagem no tamanho em píxeis em que é apresentada (cerca do dobro, para ecrãs nítidos), escolhe um formato moderno como AVIF ou WebP, comprime com uma qualidade moderada e compara a olho, serve vários tamanhos com srcset e aplica lazy loading a tudo o que fica abaixo da dobra. Estes passos resolvem a maioria dos avisos de imagens no Lighthouse e costumam reduzir bastante o peso da página, porque a fotografia original, vinda diretamente da câmara ou da ferramenta de design, é muitas vezes maior do que o ecrã precisa.
Passo 1: exporta no tamanho em que mostras
Uma imagem apresentada com 800 píxeis de largura não precisa de ter 4000. O Lighthouse assinala imagens demasiado grandes porque os píxeis a mais são descarregados, descodificados e deitados fora. Mede a largura máxima da imagem no teu layout e exporta com cerca do dobro, para telemóveis e portáteis de alta densidade. Passar do dobro raramente se nota na nitidez e custa sempre bytes.
Apresentada a
Largura de exportação
Apresentada a
Largura de exportação
Apresentada a
Largura de exportação
Largura de exportação
Apresentada a
Largura de exportação
Hero de site 1920×1080
1920 × 1080
Banner de blogue 1200×600
1200 × 600
Pré-visualização de link 1200×630
1200 × 630
Passo 2: escolhe o formato certo
O formato pesa mais do que qualquer controlo de compressão. O AVIF costuma dar o ficheiro mais pequeno, o WebP chega perto e é suportado em todo o lado nos navegadores atuais, e o JPEG e o PNG continuam a ser as alternativas seguras. WebP vs PNG e PNG vs JPG aprofundam cada par.
Notas
Notas
Notas
Notas
Notas
linear-gradient(160deg, #0f172a 0%, #1e3a8a 50%, #0ea5e9 100%)Passo 3: comprime e depois olha
Os formatos com perdas têm uma definição de qualidade, e o valor certo depende da imagem. Começa por 75 a 80 no WebP e por 50 a 60 no AVIF, exporta e compara com o original a 100% de zoom. Baixa até veres diferença e depois sobe um degrau. Rostos, texto fino e gradientes precisam de mais qualidade do que paisagens cheias de detalhe. Compressão de imagem explica o que o codificador deita fora.
Aproveita para retirar os metadados, como dados da câmara e miniaturas incorporadas. A maioria das ferramentas de exportação faz isso com uma caixa de seleção, e elimina bytes que ninguém vê.
Passo 4: marcação responsiva com srcset e sizes
Com várias larguras exportadas, deixa o navegador escolher. O srcset lista os ficheiros e as respetivas larguras; o sizes diz ao navegador que largura a imagem terá. O navegador descarrega então o ficheiro mais pequeno que ainda é nítido naquele ecrã.
<picture>
<source type="image/avif"
srcset="/img/hero-960.avif 960w, /img/hero-1440.avif 1440w, /img/hero-1920.avif 1920w"
sizes="100vw" />
<source type="image/webp"
srcset="/img/hero-960.webp 960w, /img/hero-1440.webp 1440w, /img/hero-1920.webp 1920w"
sizes="100vw" />
<img src="/img/hero-1920.jpg" alt="Morning light over the harbour"
width="1920" height="1080" fetchpriority="high" decoding="async" />
</picture>Para uma imagem dentro de uma coluna, descreve o layout em sizes, por exemplo sizes="(min-width: 1024px) 720px, 100vw". Errar no sizes é o motivo mais comum de uma configuração responsiva continuar a descarregar o ficheiro grande.
Passo 5: indicações de carregamento que contam
<!-- Below the fold: let the browser wait -->
<img src="/img/team-720.webp" alt="The team at the spring workshop"
width="720" height="480" loading="lazy" decoding="async" />
<!-- The hero: fetch first, never lazy -->
<img src="/img/hero-1920.webp" alt="Morning light over the harbour"
width="1920" height="1080" fetchpriority="high" />Erros comuns
loading="lazy"na imagem hero- Sem width e height, por isso a página salta
- Um ficheiro enorme para todos os ecrãs
- Um JPEG de um logótipo plano ou de uma captura de ecrã
- Fundos em gradiente guardados como imagens
Em vez disso
- O hero carrega de imediato com
fetchpriority="high" - Define os dois atributos em todas as img
srcsetcom três ou quatro larguras- SVG ou PNG para gráficos planos
- Gradientes CSS, com grão se for preciso
Estas indicações correspondem diretamente às Core Web Vitals. A imagem hero é muitas vezes o elemento do Largest Contentful Paint, que a web.dev recomenda que seja apresentado em 2,5 segundos, e a falta de dimensões é uma causa clássica de mudança de layout. Se o teu hero for um vídeo em vez de uma imagem, aplica-se o mesmo raciocínio em vídeos de fundo para sites.
Uma lista de verificação antes de publicares
- 1
Mede o espaço
Descobre a maior largura apresentada de cada imagem no teu layout.
- 2
Exporta nos tamanhos certos
Uma a duas vezes a largura do espaço, mais versões menores para telemóveis.
- 3
Escolhe o formato
AVIF ou WebP para fotografias e gradientes, SVG para logótipos, PNG só quando compensa.
- 4
Comprime a olho
Baixa a qualidade até notares uma mudança e depois sobe um degrau.
- 5
Marca o código
srcset,sizes,width,height,alte lazy loading abaixo da dobra. - 6
Testa
Corre o Lighthouse numa janela anónima e verifica as auditorias de imagens e o elemento LCP.
Muito disto é mais fácil quando a imagem é feita logo no tamanho final. No Gradiently desenhas uma vez e o Pro redimensiona para todos os tamanhos num só passo, exportando depois PNG, JPG ou SVG com dimensões exatas até 4K, para que o hero, o banner e a imagem Open Graph comecem cada um no tamanho que a página vai mostrar.
Perguntas frequentes
Como otimizar imagens para a web sem perder qualidade?
Exporta no tamanho apresentado, usa AVIF ou WebP, baixa a qualidade só até notares diferença e serve vários tamanhos com srcset. A maior parte da perda visual vem de compressão excessiva, não do redimensionamento.
Qual é o melhor formato de imagem para sites?
O WebP é a opção moderna segura e o AVIF costuma ser ainda mais pequeno. Usa SVG para logótipos e ícones e mantém JPEG ou PNG como alternativas.
Devo aplicar lazy loading a todas as imagens?
Não. Aplica-o às imagens abaixo da dobra, mas carrega logo a imagem hero, porque atrasá-la piora o Largest Contentful Paint.
Que tamanho devem ter as imagens de um site?
Cerca do dobro da largura em que são apresentadas, para ecrãs nítidos de alta densidade. Um hero em largura total com 1920 px cobre a maioria dos ecrãs.
Porque diz o Lighthouse que as minhas imagens não têm o tamanho certo?
O ficheiro tem mais píxeis do que o espaço que ocupa na página. Exporta uma versão menor e usa srcset e sizes para o navegador escolher a adequada.
Escrito pela Gradiently
A equipa por trás da Gradiently, uma ferramenta de design construída em torno dos Marks: gradientes vivos que fazem tudo o que crias parecer teu.
Ver o nosso perfil