Como corrigir o Delay JavaScript do WP Rocket que quebra funções do site
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
- 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) - 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 - 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 - 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 - 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
/**
* 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;
} );














