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

Como corrigir scripts que não carregam pelo Script Manager do Perfmatters

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro Script Manager do Perfmatters não carrega JS EN: Perfmatters Script Manager not loading scripts
Severidade Grave
Descrição No Perfmatters Script Manager o JS não carrega quando um arquivo JavaScript enfileirado é marcado como Off em escopo amplo (Everywhere ou por tipo de post) sem exceção para a página que precisa dele. O script some do front-end e a funcionalidade que dependia daquele arquivo para de responder, embora o recurso continue ativo no painel.

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

  1. 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
  2. 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
  3. 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
  4. 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)
  5. 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
  6. 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
<?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;
}

Perguntas frequentes

Por que o JavaScript não carrega depois que mexi no Script Manager do Perfmatters
Porque um arquivo JavaScript enfileirado foi marcado como Off em escopo amplo, como Everywhere ou por tipo de post, sem exceção para a página que precisa dele. O Perfmatters remove o enfileiramento antes de o WordPress imprimir o arquivo, então o navegador nunca baixa o script e o recurso que dependia dele para de funcionar.
Como reativar um script desativado no Perfmatters sem perder a otimização
Abra o Script Manager na página afetada, localize o arquivo e, em vez de mudar o Status para On em todo lugar, mantenha Off em Everywhere e adicione uma exceção em Current URL para esta página. Assim o script volta só onde é necessário e a economia geral continua valendo no resto do site.
Onde fica o Script Manager do Perfmatters
Ele não aparece no painel do WordPress nem na tela de configurações do plugin. Você precisa navegar até uma página do front-end e abri-lo pela barra de administração, no menu Perfmatters, ou anexar o parâmetro perfmatters ao fim da URL da página. A ferramenta sempre lista os scripts da página que está sendo exibida.
O que significa o erro Settings failed to update no Script Manager
Quase sempre significa que você tentou salvar uma desativação sem escolher um escopo sob Disabled, como Everywhere, Current URL ou Regex. Sem escopo, o plugin não sabe onde aplicar e recusa a gravação. Causas mais raras são conflito com outro plugin que estiliza inputs ou um erro de JavaScript em cascata visível no console.
O Script Manager pode quebrar funcionalidades do WooCommerce ou de formulários
Pode, se você desativar o arquivo JavaScript de que esses recursos dependem em uma página onde eles são usados. Formulários, checkout e sliders costumam depender de scripts próprios. Por isso desative com exceção na URL que usa o recurso e teste o envio ou a compra antes de aplicar em produção.
Por que um script não aparece na lista do Script Manager
Em geral porque ele não foi enfileirado corretamente no WordPress pelo desenvolvedor do plugin ou tema, ou porque é uma declaração font-face dentro de um arquivo CSS, que não passa pela fila de scripts. O Script Manager só controla o que está devidamente enfileirado no front-end, então arquivos hardcoded não aparecem.
Desativei por mobile e o script some e volta sozinho, por quê
A desativação por device do Perfmatters depende de cache separado por dispositivo, porque ele usa a função que detecta mobile do WordPress. Sem buckets de cache distintos para desktop e mobile, o servidor entrega a mesma página para os dois e o script aparece ou some conforme a versão em cache. Ative o cache mobile no host ou no plugin de cache.
As alterações do Script Manager são permanentes
Não. O Script Manager não altera os arquivos do plugin ou do tema, apenas controla o enfileiramento. Você pode reverter a última alteração, mudar o Status de volta para On ou remover a desativação na Global View para retornar tudo ao estado original sem risco de dano permanente.

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