🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir o Delay JavaScript do WP Rocket que quebra funções do site

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro Delay JavaScript do WP Rocket quebra funções EN: WP Rocket Delay JavaScript breaking site functions
Severidade Grave
Descrição O WP Rocket Delay JavaScript adia a execução de scripts até a primeira interação do usuário. Quando atrasa um script essencial (slider, menu, formulário ou botão), esses elementos param de funcionar até alguém mexer na página. A correção é excluir o script específico do delay, sem desligar a otimização toda.

O que é WP Rocket Delay JavaScript que quebra o site?

O Delay JavaScript Execution é uma otimização do WP Rocket, na aba File Optimization, que adia o carregamento de TODO o JavaScript da página até a primeira interação do usuário (movimento do mouse, toque, rolagem ou tecla). Isso melhora First Contentful Paint e Total Blocking Time, mas atrasa scripts que precisam rodar no carregamento. Quando o script de um slider, menu, formulário ou botão é adiado, o elemento aparece quebrado, congelado ou inerte até o visitante interagir com a página. O problema não é um bug do plugin: é o efeito esperado do delay sobre um script que não suporta ser adiado. A solução é excluir apenas esse script do delay, mantendo o ganho de performance no resto da página.

Como identificar

  • Slider, carrossel ou banner aparece travado e só anima depois que o visitante move o mouse ou rola a página
  • Botão de menu hamburguer não abre no primeiro clique, mas passa a funcionar após qualquer interação
  • Formulário de contato (Contact Form 7, WPForms) não envia ou não valida os campos no primeiro acesso
  • Console do navegador acusa ‘Uncaught ReferenceError: jQuery is not defined’ ou ‘is not a function’ logo após o load
  • Elemento volta ao normal assim que você desativa a opção ‘Delay JavaScript execution’ na aba File Optimization
  • Pixel de rastreamento, chat ou mapa do Google só carrega depois de mexer na página

Como prevenir

  • Antes de ativar o delay em produção, teste a home, uma página de venda e uma página de contato em janela anônima sem interagir, validando slider, menu e formulário.
  • Mantenha o Safe Mode do delay sempre ligado: ele já cobre jQuery, jQuery Migrate e scripts inline do WordPress, que são a maioria das quebras.
  • Use a lista de ‘One-click exclusions’ do WP Rocket para marcar plugins conhecidos de slider, formulário e analytics antes de procurar o arquivo no console.
  • Ao atualizar um plugin de slider ou formulário, revalide a página em janela anônima, pois o caminho do arquivo .js pode mudar e invalidar a exclusão antiga.
  • Prefira excluir por palavra-chave curta (como slider.min.js) em vez da URL completa, para a exclusão sobreviver a mudanças de versão do arquivo.

Causa

  • A opção 'Delay JavaScript execution' está ativa na aba File Optimization e nenhum script foi adicionado em 'Excluded JavaScript Files', então todo o JavaScript da página é adiado.
  • O script que controla o elemento depende de jQuery e roda no evento de carregamento, mas o WP Rocket adiou o jQuery, gerando 'jQuery is not defined' antes da interação.
  • Um plugin de slider ou formulário (por exemplo Slider Revolution, Contact Form 7, WPForms) ainda não foi marcado na lista de 'One-click exclusions' do WP Rocket para esse script.
  • O elemento é injetado por um script de terceiros carregado no HTML inicial (chat, pixel, Google Maps), e esse arquivo entrou no delay sem exclusão.
  • O Safe Mode do delay está desligado, então scripts inline registrados por wp_add_inline_script e bibliotecas como jQuery Migrate também foram adiados sem necessidade.

Como resolver

  1. Confirme que o delay é a causa: Abra o painel do WordPress e vá até a página do WP Rocket. Entre na aba indicada abaixo, desmarque temporariamente a opção do delay e limpe o cache. Se o elemento volta a funcionar, o delay é o culpado e você pode reativá-lo no passo seguinte aplicando a exclusão correta.
    Settings -> WP Rocket -> File Optimization
    Desmarcar: Delay JavaScript execution
    Salvar e limpar o cache (botão Clear cache no topo)
  2. Identifique o script que quebra o elemento: Reative o delay e abra a página problemática com as Ferramentas do Desenvolvedor do navegador (tecla F12), na aba Console. Recarregue sem interagir com a página e leia o erro: ele aponta o arquivo .js que falhou. Anote o trecho do caminho do arquivo que identifica o plugin ou tema responsável, pois é ele que você vai excluir.
    Abrir DevTools: tecla F12 -> aba Console
    Erro tipico: Uncaught ReferenceError: jQuery is not defined
    Anotar o caminho do arquivo, ex.: /wp-content/plugins/slider/assets/slider.min.js
  3. Exclua o script na lista do WP Rocket: Volte para a aba File Optimization e localize o campo de texto 'Excluded JavaScript Files', logo abaixo da opção de delay. Cole uma palavra-chave ou trecho da URL do script identificado, uma por linha. O WP Rocket aceita URL completa ou apenas uma palavra-chave contida no caminho, o que é mais resistente a mudanças de versão do arquivo.
    Settings -> WP Rocket -> File Optimization -> Excluded JavaScript Files
    /wp-content/plugins/slider/assets/slider.min.js
    slider.min.js
    jquery-migrate
  4. Ative o Safe Mode e salve: Ainda na mesma área, marque a opção de Safe Mode do delay. Ela exclui automaticamente jQuery, jQuery Migrate, scripts inline registrados pelo WordPress e arquivos das pastas internas, cobrindo a causa mais comum de quebra sem você precisar listar cada um. Salve, limpe o cache e recarregue a página problemática sem interagir para validar.
    Marcar: Safe Mode for jQuery
    Salvar e clicar em Clear cache
    Recarregar a página sem mover o mouse para validar
  5. Exclua via atributo no script (caso o campo não baste): Se o script é inserido por um snippet seu ou por um child theme e você consegue editar a tag, adicione o atributo de exclusão diretamente nela. O WP Rocket reconhece esse atributo e nunca adia a tag marcada, funcionando tanto para script externo quanto para script inline.
    nowprocket
PHP
<?php
/**
 * Exclui scripts especificos do Delay JavaScript Execution do WP Rocket.
 * Coloque em um plugin de snippets ou no functions.php do child theme.
 */
add_filter( 'rocket_delay_js_exclusions', function ( $exclusions ) {
    $exclusions[] = '/wp-content/plugins/slider/assets/slider.min.js';
    $exclusions[] = 'jquery-migrate';
    $exclusions[] = 'gtag';
    return $exclusions;
} );

Perguntas frequentes

Por que o WP Rocket Delay JavaScript quebra meu site?
Porque o delay adia TODO o JavaScript da página até a primeira interação. Se um slider, menu ou formulário depende de um script que precisa rodar no carregamento, esse elemento fica inerte até o visitante mexer na página. Não é um bug: é o efeito do delay sobre um script que não suporta ser adiado, e a correção é excluir só esse script.
Como saber qual script está sendo quebrado pelo delay?
Abra a página problemática com as Ferramentas do Desenvolvedor do navegador na aba Console (tecla F12) e recarregue sem interagir. O erro, geralmente 'Uncaught ReferenceError: jQuery is not defined' ou algo do tipo, aponta o arquivo .js que falhou. O caminho do arquivo identifica o plugin ou tema que você precisa excluir do delay.
Preciso desativar o Delay JavaScript inteiro para resolver?
Não. Desativar o delay todo joga fora o ganho de performance. O correto é manter a opção ativa e excluir apenas o script que quebra, no campo 'Excluded JavaScript Files' da aba File Optimization. Assim o resto da página continua otimizado e só o elemento sensível roda imediatamente.
Qual o formato certo para excluir um script do delay no WP Rocket?
O campo 'Excluded JavaScript Files' aceita a URL completa do arquivo ou apenas uma palavra-chave contida no caminho, uma por linha. Excluir por palavra-chave curta, como slider.min.js, é mais resistente porque continua valendo mesmo se a versão do arquivo mudar na próxima atualização do plugin.
O que o Safe Mode do delay faz?
O Safe Mode exclui automaticamente jQuery, jQuery Migrate, scripts inline registrados pelo WordPress com wp_add_inline_script e arquivos das pastas internas do WordPress. Como jQuery é a dependência mais comum dos elementos que quebram, ligar o Safe Mode resolve grande parte dos casos sem você precisar listar cada arquivo manualmente.
Posso excluir um script editando a própria tag em vez da lista?
Sim. Se você consegue editar a tag do script, por estar em um snippet seu ou em um child theme, adicione o atributo nowprocket na tag. O WP Rocket reconhece esse atributo e nunca adia a tag marcada, valendo tanto para script externo quanto para script inline.
Por que o elemento volta a funcionar só depois que eu mexo na página?
Esse é o sintoma clássico do delay. O script só é liberado na primeira interação (mouse, toque, rolagem ou tecla), então o elemento que depende dele permanece congelado até esse momento. Se o seu slider, botão ou contador só anima após você mover o mouse, o delay está adiando o script dele e ele precisa entrar na lista de exclusões.
A exclusão que eu adicionei parou de funcionar depois de uma atualização. Por quê?
Provavelmente o plugin mudou o caminho ou o nome do arquivo .js na nova versão, então a URL completa que você excluiu não corresponde mais. Por isso vale excluir por palavra-chave curta em vez da URL inteira, e revalidar a página em janela anônima após cada atualização de plugins de slider, formulário ou analytics.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes