Como corrigir TBT alto e JavaScript bloqueante no WordPress
O que é o TBT alto no WordPress?
O TBT alto no WordPress é uma métrica de laboratório do PageSpeed que mede quanto tempo a thread principal do navegador fica ocupada executando JavaScript e não consegue responder ao usuário. O Total Blocking Time soma os trechos acima de 50ms de cada tarefa longa entre o First Contentful Paint e o momento em que a página fica interativa. A meta no laboratório é abaixo de 200ms; entre 200ms e 600ms o status é “precisa melhorar” e acima de 600ms é considerado ruim. Um TBT alto é o principal proxy de laboratório para o INP de campo, e quase sempre aponta para JavaScript demais executando cedo.
Como identificar
- “TBT acima de 200ms” no relatório de performance do PageSpeed Insights, em amarelo ou vermelho.
- O diagnóstico “Minimize main-thread work” aparece com vários segundos no PageSpeed Insights.
- O diagnóstico “Reduce JavaScript execution time” lista scripts custosos no Lighthouse.
- A página parece carregada, mas não responde a cliques ou rolagem por alguns instantes.
Como prevenir
- Mantenha o adiamento do JavaScript ativo e limite scripts de terceiros ao mínimo necessário
- Carregue widgets pesados (chat, mapa, vídeo) sob demanda, na interação do usuário
- Audite o impacto de cada plugin no JavaScript antes de instalar e remova os que enfileiram scripts sem uso
Causa
- Plugins que enfileiram arquivos JavaScript grandes no carregamento inicial de todas as páginas, mesmo onde não são usados.
- Scripts de terceiros (Google Tag Manager, pixels de anúncios, chats e mapas) executando na thread principal antes da interatividade.
- Page builders e sliders que carregam bibliotecas JavaScript completas para renderizar componentes simples.
- Falta de adiamento (defer) e de carregamento sob demanda, fazendo todo o JavaScript bloquear a thread de uma vez.
- Tema que combina muitos scripts num único arquivo enorme, criando uma tarefa longa que segura a thread.
Como resolver
- Identifique os scripts mais custosos: rode o PageSpeed Insights e abra os diagnósticos "Reduzir o tempo de execução do JavaScript" e "Minimizar o trabalho da thread principal" para ver quais arquivos consomem mais tempo de CPU.
- Adie o JavaScript não crítico: no plugin de performance, ative o adiamento (defer) do JavaScript para que os scripts só executem depois que o HTML for analisado, liberando a thread durante o render inicial.
- Carregue scripts de terceiros sob demanda: atrase chats, mapas e widgets de redes sociais para carregar na interação do usuário, e mova o Tag Manager para o final ou para um web worker, tirando-os da execução inicial.
- Remova plugins e scripts não usados por página: desative recursos que enfileiram JavaScript onde ele não é necessário e limite o carregamento de bibliotecas de slider e formulário às páginas que realmente as usam.
- Divida e minifique os arquivos JavaScript: minifique o JavaScript e evite combinar tudo num único arquivo gigante; tarefas menores quebram a thread em pedaços e reduzem o tempo de bloqueio contínuo.
- Meça de novo no PageSpeed: rode o teste outra vez e confirme se o TBT caiu de 200ms; acompanhe também o INP nos dados de campo, que refletem usuários reais.
<!-- Adia o JS nao critico: so executa apos o HTML ser analisado -->
<script src="/wp-content/plugins/exemplo/app.js" defer></script>
<!-- Carrega o script de terceiros (chat/mapa) so na 1a interacao do usuario -->
<script>
function carregaTerceiro() {
var s = document.createElement('script');
s.src = 'https://exemplo-terceiro.com/widget.js';
document.body.appendChild(s);
['scroll','mousemove','touchstart','keydown'].forEach(function (ev) {
window.removeEventListener(ev, carregaTerceiro);
});
}
['scroll','mousemove','touchstart','keydown'].forEach(function (ev) {
window.addEventListener(ev, carregaTerceiro, { once: true, passive: true });
});
</script>














