Como corrigir render-blocking resources no WordPress
O que é os render-blocking resources no WordPress?
Os render-blocking resources no WordPress são os arquivos que o navegador é obrigado a buscar e interpretar antes de mostrar a página. Por padrão, toda folha de estilo no início do documento e todo script sem adiamento bloqueiam a renderização: o navegador para, baixa o arquivo, processa e só então pinta. Quando tema e plugins enfileiram muitos desses arquivos no topo, a tela fica em branco por mais tempo, o que piora o First Contentful Paint e o LCP. A correção é separar o CSS crítico do resto, adiar o JavaScript não essencial e reduzir o número e o tamanho dos arquivos que carregam antes do primeiro render.
Como identificar
- O diagnóstico “Eliminar recursos que impedem a renderização” aparece como oportunidade no PageSpeed Insights, com a economia estimada em milissegundos.
- O Lighthouse lista arquivos .css e .js específicos como bloqueadores no relatório de performance.
- A página exibe uma tela em branco por um instante perceptível antes de qualquer conteúdo aparecer.
- O waterfall da aba Network mostra vários CSS e JS sendo baixados no head antes da primeira pintura.
Como prevenir
- Mantenha o adiamento de JavaScript e a geração de CSS crítico ativos no plugin de performance
- Evite plugins que enfileiram CSS e JS em todas as páginas e limite cada recurso à página que o usa
- Sempre que adicionar fontes ou bibliotecas, carregue-as sem bloquear o render (preload, async, font-display)
Causa
- Folhas de estilo de tema e plugins enfileiradas no head, que bloqueiam o render até serem totalmente baixadas.
- Arquivos JavaScript sem o atributo defer ou async carregados no topo do documento.
- Fontes de ícones e bibliotecas de CSS completas (como frameworks inteiros) carregadas mesmo quando só uma fração é usada.
- Plugins que injetam seu próprio CSS e JS em todas as páginas, inclusive onde o recurso não é necessário.
- CSS crítico não separado, obrigando o navegador a baixar toda a folha de estilos antes de pintar o topo da página.
Como resolver
- Liste os recursos bloqueadores: rode o PageSpeed Insights e abra "Eliminar recursos que impedem a renderização" para ver exatamente quais arquivos de CSS e JavaScript travam o primeiro render.
- Adie o JavaScript não crítico: no plugin de performance, aplique o adiamento (defer) aos scripts que não são necessários para o conteúdo acima da dobra, para eles não bloquearem a pintura.
- Gere e injete o CSS crítico: extraia o CSS necessário para o topo da página, coloque-o de forma embutida no início do documento e carregue o restante da folha de estilos de forma assíncrona.
- Minifique e reduza CSS e JS: minifique os arquivos e remova CSS e scripts não usados por página, diminuindo o número e o peso dos recursos que carregam antes do render.
- Carregue fontes sem bloquear: faça preload da fonte principal e use font-display: swap para o texto aparecer com uma fonte de fallback enquanto a definitiva carrega.
- Meça de novo no PageSpeed: rode o teste outra vez e confirme que a oportunidade de render-blocking diminuiu e que o FCP e o LCP melhoraram.
<!-- 1) CSS critico embutido: pinta o topo sem esperar download externo -->
<style>
/* so o essencial do above-the-fold (header, hero, tipografia base) */
header{display:flex;align-items:center}
.hero{min-height:60vh}
body{margin:0;font-family:system-ui,sans-serif}
</style>
<!-- 2) Folha completa carregada de forma assincrona (nao bloqueia o render) -->
<link rel="preload" as="style"
href="/wp-content/themes/tema/style.css"
onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/wp-content/themes/tema/style.css"></noscript>
<!-- 3) JS nao critico adiado: executa so apos a analise do HTML -->
<script src="/wp-content/themes/tema/main.js" defer></script>














