Dashboard de performance web com métricas de carregamento de página
PerformanceWebDesenvolvimento

Lazy loading de imagens — o que é e como implementar

Lazy loading é uma das técnicas mais eficazes para acelerar sites com muitas imagens. Entenda o conceito e veja como implementar sem complicação.

Lucas Ferreira
Lucas Ferreira
Autor
7 min de leitura
PerformanceWebDesenvolvimento

Imagine uma página de blog com 20 fotos. Sem lazy loading, o navegador baixa todas as 20 imagens assim que a página carrega — mesmo que o usuário só veja as 3 primeiras. Isso desperdiça dados, aumenta o tempo de carregamento e prejudica a experiência.

Com lazy loading, as imagens são carregadas somente quando estão prestes a entrar na área visível da tela (o "viewport"). O resultado: páginas que carregam muito mais rápido.

Por que lazy loading importa

  • Velocidade inicial: A página carrega mais rápido porque baixa menos dados no início
  • Core Web Vitals: Melhora o LCP (Largest Contentful Paint) — métrica de SEO do Google
  • Economia de dados: Usuários que não rolam a página não baixam imagens que nunca verão
  • Melhor UX em mobile: Crucial em conexões 4G/5G com dados limitados

Implementação nativa — sem JavaScript

Desde 2019, todos os navegadores modernos suportam lazy loading nativo com um único atributo HTML:

<img src="foto-produto.webp" 
     alt="Descrição da imagem"
     loading="lazy"
     width="800" 
     height="600">

Apenas isso já é suficiente para ativar o lazy loading. Simples, sem bibliotecas, sem JavaScript.

💡 Não use loading="lazy" na primeira imagem

A imagem principal acima da dobra (visível sem rolar) deve ter loading="eager" ou simplesmente não ter o atributo loading. Lazy loading nela prejudica o LCP, que é uma métrica importante de SEO.

Código HTML de implementação de lazy loading em editor

A implementação do lazy loading nativo é simples — apenas um atributo no HTML

Sempre defina width e height

Uma causa comum de Cumulative Layout Shift (CLS) — outra métrica do Core Web Vitals — é imagens sem dimensões definidas. O navegador não sabe o espaço a reservar, e quando a imagem carrega, empurra o conteúdo abaixo.

<!-- ❌ Sem dimensões — causa layout shift -->
<img src="foto.webp" alt="..." loading="lazy">

<!-- ✅ Com dimensões — sem layout shift -->
<img src="foto.webp" alt="..." loading="lazy" width="800" height="600">

Checklist completo de imagens para performance

  • ✅ Formato WebP (ou JPG como fallback)
  • ✅ Comprimida com qualidade 75–85%
  • ✅ Dimensionada para o tamanho de exibição
  • loading="lazy" em todas as imagens abaixo da dobra
  • loading="eager" ou ausente na imagem principal (LCP)
  • ✅ Atributos width e height definidos
  • ✅ Alt text descritivo
  • ✅ Nome de arquivo com palavras-chave
Resultado de teste de velocidade mostrando melhoria após lazy loading

Sites com lazy loading implementado corretamente melhoram significativamente no Google PageSpeed Insights

Perguntas frequentes

Lazy loading prejudica o SEO?
Não — quando implementado corretamente com o atributo nativo. O Googlebot processa o atributo loading="lazy" e indexa as imagens normalmente.
Preciso de JavaScript para lazy loading?
Não. O atributo loading="lazy" nativo funciona em todos os navegadores modernos sem JavaScript. Bibliotecas como LazyLoad.js só são necessárias para suporte a navegadores muito antigos.
Lazy loading funciona com CSS background-image?
O atributo nativo não funciona com background-image CSS. Para isso, é necessário JavaScript — uma Intersection Observer API detecta quando o elemento entra no viewport e aplica a imagem.
Lucas Ferreira
Lucas Ferreira
Desenvolvedor front-end e especialista em performance web com 8 anos de experiência otimizando sites e aplicações.

Experimente as ferramentas gratuitamente

Todas as ferramentas do ImageToolkit processam as imagens 100% no seu navegador. Sem cadastro, sem uploads externos, totalmente privado.