Voltar para o Blog
09 de junho de 2026 Lighthouse JavaScript Performance Otimização

Como remover scripts de terceiros inúteis que estão destruindo a pontuação do Lighthouse do seu site

Como remover scripts de terceiros inúteis que estão destruindo a pontuação do Lighthouse do seu site

Identifique e adie pixels de rastreamento, scripts de chat e tags externas que travam a linha de execução principal do navegador do cliente.

No cenário altamente competitivo do B2B digital, a velocidade de carregamento de uma página web não é apenas uma métrica de vaidade técnica; ela é um fator crítico de conversão e SEO. Quando analisamos a performance de portais corporativos e e-commerces, um dos principais vilões identificados pelo Lighthouse do Google é o acúmulo de scripts de terceiros (third-party scripts).

Muitas empresas adicionam pixels de rastreamento, ferramentas de gravação de tela (como Hotjar e Clarity), chats de suporte em tempo real (como Zendesk e JivoChat) e tags de automação de marketing sem um plano de governança técnica. O resultado é catastrófico: a linha de execução principal (main thread) do navegador é bloqueada por dezenas de conexões DNS e execuções de JavaScript complexas, destruindo métricas de Core Web Vitals como Total Blocking Time (TBT) e Interaction to Next Paint (INP).

Neste guia prático, você aprenderá como auditar, identificar e adiar scripts externos para restaurar a performance do seu front-end sem perder inteligência de dados ou funcionalidades de negócio.


O que são Scripts de Terceiros e por que eles degradam a performance?

Scripts de Terceiros (Third-Party Scripts) são quaisquer fragmentos de código JavaScript executados em seu site que são fornecidos e hospedados por provedores externos. Eles são amplamente utilizados para análises de tráfego, publicidade segmentada, testes A/B, widgets sociais e suporte ao cliente.

Ao carregar um script externo diretamente no cabeçalho (<head>) da página de forma síncrona, o navegador precisa interromper a análise e renderização do HTML para fazer a resolução DNS do domínio externo, realizar o handshake SSL, baixar o arquivo .js, analisar (parse), compilar e executar o código. Esse comportamento cria gargalos massivos de processamento na CPU do dispositivo do usuário, resultando em uma página que parece congelada.


Diagnosticando o Impacto de JavaScript com Chrome DevTools

Antes de sair deletando códigos, é fundamental metrificar com precisão onde está o desperdício de performance.

1. Aba Coverage (Cobertura de Código)

O Chrome DevTools possui uma ferramenta poderosa chamada Coverage. Ela analisa o quanto do código JavaScript e CSS baixado realmente foi executado durante a renderização inicial.

  • Abra o Chrome DevTools (F12).
  • Pressione Ctrl + Shift + P (ou Cmd + Shift + P no Mac) e digite “Coverage”.
  • Selecione Start instrumenting coverage and reload page.
  • O painel mostrará uma lista de arquivos JS carregados e a barra vermelha representará o percentual de código que não foi executado. Frequentemente, scripts de marketing mostram mais de 80% de código não utilizado na primeira dobra de tela.

2. O Relatório do Lighthouse

No Lighthouse, fique atento a três seções específicas:

  • Reduce the impact of third-party code: Detalha o tempo de bloqueio da linha de execução principal causado por cada domínio externo.
  • Reduce JavaScript execution time: Indica quais scripts demandam muito poder de processamento da CPU do cliente.
  • Minimize main-thread work: Exibe o tempo que o navegador passou parseando e renderizando o layout, que é diretamente afetado por scripts pesados.

Estratégias para Otimizar e Adiar Scripts de Terceiros

Para obter uma pontuação 90+ no Lighthouse mantendo a funcionalidade de rastreamento e chats de vendas, devemos seguir a seguinte hierarquia de mitigação:

Comparativo de Métodos de Carregamento de JavaScript

MétodoBloqueia Renderização?Quando é executado?Indicado para
Síncrono (<script src="...">)SimImediatamente (pausa a leitura do HTML)Scripts essenciais e críticos do sistema.
Async (async)Não (durante o download)Assim que o download é concluído (pode bloquear renderização se baixar rápido)Scripts independentes (ex: analytics básico).
Defer (defer)NãoSomente após o parsing completo do HTML ser concluídoScripts que manipulam a DOM de forma não crítica.
Atraso Inteligente (Interação do Usuário)NãoQuando o usuário mexe o mouse, rola a página ou toca na telaChats de suporte, pixels secundários e Hotjar.
Web Workers (ex: Partytown)NãoRoda em thread separada (em segundo plano)Google Tag Manager, trackers de comportamento.

Guia de Implementação: Carregamento Sob Demanda (Lazy Loading Inteligente)

Uma das maneiras mais eficientes de otimizar chats de suporte (como Zendesk, Hubspot Chat ou JivoChat) é evitar o seu carregamento até que o usuário execute alguma ação na página. A maioria dos usuários que entra na sua landing page não clica no chat imediatamente nos primeiros 2 segundos, por que gastar banda e processamento com isso no início?

Veja abaixo um script JavaScript genérico que atrasa a inicialização de scripts de terceiros até que o usuário realize a primeira interação real (rolagem, movimento do mouse ou toque na tela):

// Função para injetar scripts de terceiros apenas sob demanda
function carregarScriptsDeTerceiros() {
  // Evitar carregamento duplicado
  if (window.scriptsDeTerceirosCarregados) return;
  window.scriptsDeTerceirosCarregados = true;

  console.log("Iniciando carregamento de scripts de terceiros...");

  // Exemplo: Script do JivoChat ou Pixel do Facebook
  const scriptPixel = document.createElement("script");
  scriptPixel.src = "https://connect.facebook.net/pt_BR/sdk.js";
  scriptPixel.async = true;
  document.head.appendChild(scriptPixel);

  // Exemplo: Script de Chat ou Suporte
  const scriptChat = document.createElement("script");
  scriptChat.src = "https://code.jivosite.com/widget/SEU_ID_AQUI";
  scriptChat.async = true;
  document.head.appendChild(scriptChat);
  
  // Remover os event listeners para evitar chamadas redundantes
  removerListenersDeInteracao();
}

function removerListenersDeInteracao() {
  const eventos = ["touchstart", "scroll", "mousemove", "keydown"];
  eventos.forEach(evento => {
    window.removeEventListener(evento, carregarScriptsDeTerceiros, { passive: true });
  });
}

// Registrar eventos de interação para disparar o carregamento
function iniciarMonitoramentoInteracao() {
  const eventos = ["touchstart", "scroll", "mousemove", "keydown"];
  eventos.forEach(evento => {
    window.addEventListener(evento, carregarScriptsDeTerceiros, { passive: true });
  });
}

// Inicializa o monitoramento de interação
iniciarMonitoramentoInteracao();

Otimizando com Resource Hints: dns-prefetch e preconnect

Caso você precise obrigatoriamente carregar um script nas fases iniciais do site, use Resource Hints para adiantar o estabelecimento da conexão de rede com os servidores do terceiro. Isso poupa centenas de milissegundos de latência.

Adicione estas tags no seu <head>:

<!-- Indica ao navegador para iniciar a resolução DNS o quanto antes -->
<link rel="dns-prefetch" href="https://connect.facebook.net">

<!-- Abre a conexão TCP e realiza o handshake SSL com antecedência -->
<link rel="preconnect" href="https://www.google-analytics.com" crossorigin>

Conclusão e Próximos Passos

Limpar o excesso de scripts de terceiros é uma tarefa que envolve alinhamento entre o time técnico de desenvolvimento e a equipe de marketing ou produto. Os passos fundamentais a partir de hoje são:

  1. Auditar: Rode o teste de Cobertura no Chrome DevTools.
  2. Eliminar: Delete pixels legados ou de campanhas inativas.
  3. Adiar: Utilize carregamento condicional para widgets interativos, como chats.
  4. Isolar: Considere usar bibliotecas modernas como o Partytown para rodar o GTM dentro de Web Workers.

Ao aplicar essas práticas, a pontuação do seu Lighthouse sairá da zona vermelha, trazendo benefícios diretos no seu posicionamento orgânico e, mais importante, diminuindo a taxa de rejeição da sua página de vendas.