0Pricing
HTML Academy · Aula

Carregamento tardio de imagens loading=lazy

Adie imagens fora da tela com o atributo nativo loading.

Carregamento tardio de imagens loading=lazy é uma aula grátis de HTML Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de HTML Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de HTML Academy inclui 4 aulas no total.

O atributo loading

<img loading="lazy" src="..."> informa ao navegador que deve adiar o download da imagem até que ela esteja prestes a entrar na janela de visualização. O suporte nativo em todos os navegadores modernos torna essa a maneira mais simples de obter um ganho de desempenho em páginas com muitas imagens.

Como é definido “próximo da janela de visualização”

Os navegadores usam uma pequena margem heurística, geralmente alguns milhares de pixels abaixo da dobra. A imagem começa a carregar com antecedência suficiente para estar totalmente renderizada quando o usuário rolar até ela — o carregamento lento é imperceptível para quem rola a página com atenção.

Quando não usar carregamento lento

Nunca defina loading="lazy" em imagens acima da dobra ou na imagem candidata a LCP (maior pintura de conteúdo). O carregamento adiado atrasa o elemento visual mais importante, prejudicando tanto a velocidade percebida quanto as métricas essenciais da Web.

Largura e altura são obrigatórias

Para que o carregamento lento seja eficaz, atribua ao <img> valores explícitos de width e height (ou use a propriedade CSS aspect-ratio). Sem dimensões, o navegador não consegue reservar espaço, a rolagem faz o layout ser recalculado e a heurística de carregamento lento não funciona corretamente.

<img loading="lazy" src="cat.jpg" width="800" height="600" alt="A cat">

Carregamento lento de iframe

O mesmo atributo funciona em <iframe>. <iframe loading="lazy"> adia o carregamento de mapas, vídeos e incorporações de redes sociais abaixo da dobra — cada um deles, caso contrário, carregaria megabytes de JavaScript de terceiros a cada visualização da página.

eager é o padrão

O valor padrão é loading="eager" (carregar imediatamente) e raramente é escrito de forma explícita. Definir eager em imagens acima da dobra pode ser útil como documentação, indicando aos revisores que essa escolha foi deliberada.

Combine com srcset

O carregamento lento combina perfeitamente com imagens responsivas. O navegador continua escolhendo a opção adequada em srcset; apenas adia a transferência. Não é necessária nenhuma coordenação adicional entre loading="lazy" e srcset.

<img
  loading="lazy"
  srcset="img-400.jpg 400w, img-800.jpg 800w, img-1200.jpg 1200w"
  sizes="(min-width: 768px) 800px, 100vw"
  src="img-800.jpg"
  alt="Hero"
  width="800" height="600"
>

Dica de decodificação

Combine o carregamento lento com decoding="async" para permitir que o navegador decodifique a imagem fora da thread principal. Isso evita bloquear a entrada durante a rolagem quando muitas imagens chegam simultaneamente após uma longa sequência de rolagem.

Imagens de plano de fundo

background-image do CSS não pode ser carregado lentamente de forma nativa. Para planos de fundo hero acima da dobra, isso não é um problema; para planos de fundo abaixo da dobra, use IntersectionObserver para inserir o endereço quando o elemento se aproximar da janela de visualização.

Comportamento na impressão

Quando a página é impressa, o navegador carrega imediatamente todas as imagens, independentemente de loading="lazy", para que a cópia impressa fique completa. Não é necessário tratar imagens com carregamento lento de forma especial nas folhas de estilo para impressão.

Medição da economia

A auditoria “Adiar imagens fora da tela” do Lighthouse lista todas as imagens que deveriam usar loading="lazy". Filtrar o painel de rede por “Imagem” e usar a visualização “Cascata” mostra os carregamentos escalonados produzidos pelo carregamento lento — as solicitações iniciais diminuem drasticamente em galerias de imagens.

Verificação de conhecimento

Por que é prejudicial definir loading="lazy" em uma imagem hero no topo da página?

Resumo

Usar loading="lazy" em elementos <img> e <iframe> fora da tela é um ganho de desempenho obtido com um único atributo. Combine-o com width/height explícitos (para reservar espaço), srcset (para obter responsividade) e decoding="async" (para manter a rolagem fluida). Nunca o aplique à imagem LCP nem a qualquer elemento visível na janela de visualização inicial.

Perguntas Frequentes

A aula “Carregamento tardio de imagens loading=lazy” é grátis?

Sim — o texto completo de “Carregamento tardio de imagens loading=lazy” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de HTML Academy, atualize para CoddyKit PRO. O curso de HTML Academy inclui 4 aulas no total.

O que vou aprender em “Carregamento tardio de imagens loading=lazy”?

Adie imagens fora da tela com o atributo nativo loading. Você pratica HTML Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar HTML Academy?

Nenhuma experiência prévia é necessária. HTML Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Carregamento tardio de imagens loading=lazy”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de HTML Academy?

Sim. Cada aula de HTML Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Os atributos async e defer
  2. Preload, Prefetch e Preconnect
  3. Carregamento tardio de imagens loading=lazy
  4. Dicas de recursos: modulepreload
← Voltar para HTML Academy