Eliminar recursos de bloqueio de renderização

A seção "Oportunidades" do relatório do Lighthouse lista todos os URLs que estão bloqueando a first paint da sua página. O objetivo é reduzir o impacto desses URLs que bloqueiam a renderização colocando recursos importantes em linha, adiando recursos não críticos e removendo tudo o que não é 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 sinaliza dois tipos de URLs bloqueadores de renderização: scripts e folhas de estilo.

Uma tag <script> que:

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

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

  • Não tem um atributo disabled. Quando esse atributo está presente, o navegador não faz o download da folha de estilo.
  • Não tem um atributo media correspondente ao dispositivo do usuário. media="all" é considerado um 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 aba "Coverage" 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, em comparação com o que foi carregado:

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

É 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 first paint. Código essencial para a funcionalidade principal da página.
  • Vermelho (não crítico): estilos que se aplicam a conteúdo não imediatamente visível; código não usado na funcionalidade principal da página.

Como eliminar scripts que bloqueiam a renderização

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

Se houver código em um URL de bloqueio de renderização que não seja crítico, é possível mantê-lo no URL e marcar 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 bloqueiam a renderização

Semelhante ao inline code em uma tag <script>, os estilos críticos inline necessários para a primeira pintura dentro de 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 utilizado.

Considere automatizar o processo de extração e inline do CSS "Above the Fold" 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 pintura para recuperar as folhas de estilo correspondentes ao dispositivo do usuário (consulte CSS de bloqueio de renderização).

Por fim, reduza o CSS para remover todos os espaços em branco ou caracteres extras (consulte Reduzir CSS). Isso garante que você envie o pacote menor 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 lado do servidor.

Drupal

Use um módulo para CSS e JavaScript inline essenciais e o atributo "adiar" para CSS ou JavaScript não essenciais.

Joomla

Há vários plug-ins do Joomla que podem ajudar você a in-line recursos essenciais ou a 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