Eliminar recursos de bloqueio de renderização

A seção "Oportunidades" do relatório do Lighthouse lista todos os URLs que bloqueiam a primeira renderização da sua página. O objetivo é reduzir o impacto desses URLs inserindo recursos críticos, adiando recursos não críticos e removendo tudo o que não for usado.

Captura de tela da auditoria "Eliminar recursos que impedem a renderização" do Lighthouse

Quais URLs são sinalizados como recursos que bloqueiam a renderização?

O Lighthouse marca dois tipos de URLs que bloqueiam a renderização: scripts e folhas de estilo.

Uma tag <script> que:

  • Está no <head> do documento.
  • Não tiver um atributo defer.
  • Não tiver um atributo async.

Uma tag <link rel="stylesheet"> que:

  • Não tiver um atributo disabled. Quando esse atributo está presente, o navegador não baixa a folha de estilo.
  • Não tem um atributo media que corresponda especificamente ao dispositivo do usuário. media="all" é considerado um recurso de bloqueio de renderização.

Como identificar recursos críticos

A primeira etapa para reduzir o impacto dos recursos de bloqueio de renderização é identificar o que é crítico e o que não é. Use a guia "Cobertura" no Chrome DevTools para identificar CSS e JS não essenciais. Quando você carrega ou executa uma página, a guia informa quanto código foi usado e quanto foi carregado:

Chrome DevTools: guia &quot;Cobertura&quot;
Chrome DevTools: guia "Cobertura".

É possível reduzir o tamanho das páginas enviando apenas o código e os estilos necessários. Clique em um URL para inspecionar esse arquivo no painel "Origens". Os estilos em arquivos CSS e o código em arquivos JavaScript são marcados em duas cores:

  • Verde (crítico): estilos necessários para a primeira renderização e código essencial para a funcionalidade principal da página.
  • Vermelho (não crítico): estilos aplicados a conteúdo não imediatamente visível; código não usado na funcionalidade principal da página.

Como eliminar scripts que impedem a renderização

Depois de identificar o código crítico, mova-o do URL de bloqueio de renderização para uma tag script inline na sua página HTML. Quando a página for carregada, ela terá o que precisa para processar a funcionalidade principal.

Se houver código em um URL de bloqueio de renderização que não seja essencial, mantenha-o no URL e marque o URL com atributos async ou defer (consulte também Adicionar interatividade com JavaScript).

O código que não está sendo usado precisa ser removido (consulte Remover código não utilizado).

Como eliminar folhas de estilo que impedem a renderização

Assim como o código inlining em uma tag <script>, faça o inlining dos estilos críticos necessários para a primeira renderização em um bloco <style> no head da página HTML. Em seguida, carregue o restante dos estilos de forma assíncrona usando o link preload. Consulte Adiar CSS não usado.

Considere automatizar o processo de extração e inclusão do CSS "Acima da dobra" usando a ferramenta Critical.

Outra abordagem para eliminar estilos que bloqueiam a renderização é dividir esses estilos em arquivos diferentes, organizados por consulta de mídia. Em seguida, adicione um atributo de mídia a cada link de folha de estilo. Ao carregar uma página, o navegador bloqueia apenas a primeira renderização para recuperar as folhas de estilo que correspondem ao dispositivo do usuário (consulte CSS de bloqueio de renderização).

Por fim, minifique o CSS para remover espaços em branco ou caracteres extras (consulte Minificar CSS). Isso garante que você esteja enviando o menor pacote possível aos usuários.

Orientações específicas para a pilha

AMP

Use ferramentas como o Otimizador de AMP para renderizar layouts de AMP no servidor.

Drupal

Use um módulo para CSS e JavaScript inline essenciais, bem como o atributo "defer" para CSS ou JavaScript não essenciais.

Joomla

Existem vários plug-ins do Joomla que podem ajudar você a aplicar inline a recursos essenciais ou adiar recursos menos importantes.

WordPress

Existem vários plug-ins do WordPress que podem ajudar você a aplicar inline a recursos essenciais ou adiar recursos menos importantes.

Recursos