Como corrigir scripts que não carregam pelo Script Manager do Perfmatters
O que é o Perfmatters Script Manager JS não carrega?
O Script Manager do Perfmatters é a ferramenta que lista cada arquivo JavaScript e CSS enfileirado em uma página do front-end e permite marcar cada um como On (carrega) ou Off (não carrega), com escopo Everywhere, Current URL, por tipo de post ou por Regex. Ele serve para cortar requisições desnecessárias e acelerar páginas como a home, sem editar código. O problema aparece quando um script é desativado em escopo amplo e não há exceção para a página que de fato depende dele. Como o Perfmatters remove o enfileiramento antes de o WordPress imprimir o arquivo, o navegador nunca baixa o JavaScript, qualquer recurso que dependia dele (sliders, formulários, abas, contadores) para de funcionar e o console acusa funções ou variáveis indefinidas. O Script Manager atua só no front-end, então o painel do WordPress não mostra erro: o recurso segue ativo, apenas o arquivo não chega ao usuário.
Como identificar
- Um recurso visual para de responder no front-end (slider parado, abas que não trocam, formulário que não envia), mas a funcionalidade continua ativa no painel do WordPress.
- O console do navegador mostra erro do tipo “Uncaught ReferenceError: $ is not defined” ou “function is not defined”, apontando para um script que deixou de ser carregado.
- Na aba Network do DevTools o arquivo .js do plugin ou tema some da lista de requisições só nas páginas afetadas.
- Ao abrir o Script Manager pela barra de administração, o script aparece com Status Off em Everywhere ou no tipo de post da página, sem exceção marcada.
- Ao tentar salvar uma alteração no Script Manager surge a mensagem “Settings failed to update”.
Como prevenir
- Ative o Testing Mode do Script Manager para que suas alterações só valham para administradores logados até você confirmar que nada quebrou no front-end
- Desative scripts um a um e teste a página a cada mudança, em vez de desligar vários de uma vez, já que o Script Manager permite reverter a última alteração
- Prefira desativar em Everywhere com exceção em Current URL nas páginas que usam o recurso, em vez de depender de exceções por tipo de post que podem não cobrir a URL exata
- Antes de aplicar em produção, valide a configuração em um ambiente de staging para não derrubar funcionalidade em páginas de alto tráfego
Causa
- Script JavaScript necessário marcado como Off em Everywhere no Script Manager, sem exceção de Current URL para a página que depende dele.
- Plugin inteiro desativado em escopo amplo no Script Manager, o que remove de uma vez o arquivo JS e o CSS daquele plugin em páginas que precisam dos dois.
- Regra de Regex mal formada no campo de desativação, que casa mais arquivos do que o pretendido e derruba o script errado.
- Exceção criada por tipo de post (posts ou páginas) que não cobre a URL específica onde o recurso é usado, deixando o script desligado só ali.
- Desativação por device (mobile ou desktop) ativa sem cache separado por dispositivo, fazendo o script sumir de forma intermitente conforme o cache servido.
- Mensagem "Settings failed to update" ao salvar porque nenhum escopo foi escolhido sob Disabled, o que mantém o estado anterior do script no ar.
Como resolver
- Confirme qual script sumiu: abra a página afetada com o DevTools, leia o erro no console para identificar o arquivo ausente e confira na aba Network que ele não está mais sendo baixado naquela URL.
Uncaught ReferenceError: $ is not defined - Abra o Script Manager na página certa: navegue até a própria página com problema, abra o Script Manager pela barra de administração ou anexe o parâmetro à URL, porque a ferramenta só lista os scripts da página que está sendo exibida.
https://seudominio.com/?perfmatters - Reative ou adicione exceção para o script: localize o arquivo identificado no passo 1, agrupado pelo nome do plugin ou tema. Se ele estiver Off em Everywhere, mantenha a economia geral e marque uma exceção em Current URL para esta página. Se o objetivo for voltar ao normal, mude o Status para On.
Status: On Disabled: Everywhere -> Exception: Current URL - Corrija o escopo do device se for o caso: se a desativação foi feita por mobile ou desktop, garanta que o cache separado por dispositivo esteja ativo no host ou no plugin de cache, senão o script aparece e some conforme o cache entregue ao visitante.
Disabled by device: Mobile (exige cache mobile separado) - Revise as regras de Regex: se você usou Regex para desativar, abra a regra e teste o padrão para que ele case apenas o arquivo pretendido. Padrão amplo derruba scripts vizinhos do mesmo plugin.
PHP Warning: preg_match(): Delimiter must not be alphanumeric or backslash - Salve escolhendo um escopo e limpe o cache: ao salvar, sempre selecione um escopo sob Disabled para evitar o erro de gravação. Depois limpe o cache do site e do plugin de cache e recarregue a página para confirmar que o script voltou e o recurso responde.
Settings failed to update (causado por salvar sem escolher escopo)
<?php
// Quando o Perfmatters detecta o ID errado da pagina, ele aplica
// as regras de Script Manager do post errado e o JS necessario nao carrega.
// Este filtro forca o ID correto para a logica do seu site.
add_filter( 'perfmatters_get_current_ID', 'full_corrige_id_perfmatters' );
function full_corrige_id_perfmatters( $current_id ) {
// Exemplo: em uma pagina de loja virtual, garanta o ID da pagina certa.
if ( function_exists( 'is_shop' ) && is_shop() ) {
$current_id = (int) get_option( 'woocommerce_shop_page_id' );
}
return $current_id;
}














