Como corrigir o erro Critical CSS Not Generated no WP Rocket
O que é erro Critical CSS Not Generated no WP Rocket?
Critical CSS Not Generated e o estado em que o WP Rocket falha ao produzir o CSS crítico (Critical Path CSS) ou o Used CSS de uma ou mais páginas. As features Remove Unused CSS e Load CSS Asynchronously, ambas dentro de Optimize CSS Delivery, não geram esse CSS no próprio servidor: elas enviam a URL da página para um serviço externo da WP Rocket, em nuvem, que visita a página, calcula apenas o CSS de fato usado e devolve o resultado. Esse processamento e assincrono e disparado pelo cron do WordPress, em fila.
Como identificar
- No painel, em WP Rocket -> File Optimization, aparece o aviso de que o CSS não foi gerado, com mensagem do tipo ‘We could not generate the used CSS’ para uma ou mais URLs
- O WP Rocket exibe o aviso ‘It seems a security plugin or the server’s firewall prevents WP Rocket from accessing the SaaS features’, indicando bloqueio do serviço em nuvem
- A opção Remove Unused CSS ou Load CSS Asynchronously fica marcada, mas o site continua carregando a folha de estilo completa, sem o ganho de velocidade esperado
- No teste do PageSpeed Insights a recomendacao ‘Eliminate render-blocking resources’ continua aparecendo mesmo com a feature ativada
- A fila de geração de Used CSS nunca esvazia: as páginas seguem marcadas como pendentes mesmo após vários minutos
Antes de começar: Ao liberar o user-agent do WP Rocket na allowlist do firewall, restrinja a liberacao apenas a esse user-agent. Não desative o firewall por completo nem libere acesso irrestrito ao servidor para resolver a geração de CSS.
Como prevenir
- Mantenha a licenca do WP Rocket sempre ativa: o serviço de geração de CSS depende de licenca valida e para de funcionar assim que ela expira.
- Antes de ativar Optimize CSS Delivery, confirme que o site esta público, sem modo de manutenção nem proteção por senha, para o serviço externo conseguir visitar as páginas.
- Se usa Cloudflare ou plugin de segurança, já deixe o user-agent do WP Rocket na allowlist, evitando que novas páginas falhem na geração.
- Em sites de baixo tráfego, configure um cron real no servidor em vez de confiar no WP-Cron, que so dispara quando alguem visita o site, para a fila de Used CSS nunca travar.
Causa
- Um plugin de segurança (Wordfence, AIOS, iThemes) ou o firewall do servidor bloqueia o user-agent do serviço SaaS da WP Rocket, impedindo o acesso externo a página.
- O Bot Fight Mode da Cloudflare esta ativo e barra o robo da WP Rocket como se fosse um bot malicioso antes de chegar a página.
- O site não esta publicamente acessivel: esta em modo de manutenção, protegido por senha (HTTP Auth) ou bloqueado por regra no arquivo .htaccess.
- A licenca do WP Rocket esta expirada ou invalida, e o acesso ao serviço em nuvem so funciona com licenca ativa.
- O WP-Cron não esta rodando (cron desativado por DISABLE_WP_CRON ou sem cron real no servidor), entao a fila de geração de Used CSS nunca e processada.
- A página demora mais de 45 segundos para carregar, limite acima do qual o serviço SaaS desiste de gerar o CSS daquela URL.
Como resolver
- Confirme que a página esta acessivel publicamente: Abra a URL afetada em uma janela anonima do navegador, sem estar logado. A página precisa carregar normalmente, sem tela de login, sem aviso de modo de manutenção e sem caixa de senha do servidor. Se aparecer qualquer barreira, desative o modo de manutenção e a proteção por senha antes de seguir, porque o serviço externo enxerga a página do mesmo jeito que um visitante anonimo.
https://seusite.com.br/página-afetada/ - Valide a licenca do WP Rocket: No painel, abra WP Rocket -> Dashboard e confira se a licenca aparece como valida e dentro da validade. O acesso ao serviço em nuvem que gera o CSS so e liberado com licenca ativa. Se estiver expirada, renove e clique para revalidar antes de continuar.
WP Rocket -> Dashboard -> Validate License - Libere o firewall e o plugin de segurança para o serviço SaaS: Se o aviso de firewall aparece, o robo do WP Rocket esta sendo barrado antes de ler a página. No Wordfence, ative o Learning Mode por alguns minutos ou adicione o user-agent do WP Rocket a allowlist. No plugin de segurança ou no firewall do servidor, libere o user-agent abaixo para que o serviço externo consiga visitar a página.
WP Rocket/Detect Critical CSS WP-Rocket-Used-CSS - Desligue o Bot Fight Mode da Cloudflare: Se o site usa Cloudflare, entre no painel da Cloudflare e desative o Bot Fight Mode, que costuma bloquear o robo da WP Rocket como bot. Em planos pagos, prefira criar uma regra de WAF que permita o user-agent do serviço em vez de deixar o Super Bot Fight Mode genérico ligado.
Cloudflare -> Security -> Bots -> Bot Fight Mode: Off - Garanta que o cron esta processando a fila: A geração do Used CSS roda em fila pelo cron. Se o WP-Cron estiver desativado, a fila nunca anda. Cheque se a constante de desativar o cron não esta definida no arquivo de configuração e, em servidores com pouco tráfego, configure um cron real no painel de hospedagem chamando o arquivo de cron do WordPress a cada poucos minutos.
define( 'DISABLE_WP_CRON', false ); */5 * * * * wget -q -O - https://seusite.com.br/wp-cron.php?doing_wp_cron - Regenere o CSS e limpe o cache: Com os bloqueios removidos, force uma nova geração. No painel, em WP Rocket -> Dashboard, clique em Clear Used CSS para descartar o estado antigo e recolocar as páginas na fila. Em seguida limpe o cache e visite as URLs afetadas para disparar o processamento. Aguarde alguns minutos e confirme em File Optimization que o aviso de CSS não gerado desapareceu.
WP Rocket -> Dashboard -> Clear Used CSS WP Rocket -> Dashboard -> Clear and preload cache
PHP
<?php
// wp-config.php
// Garanta que o WP-Cron nao esteja desativado: a fila de Used CSS
// do WP Rocket so e processada quando o cron consegue rodar.
// Errado (impede o WP Rocket de processar a fila de geracao):
// define( 'DISABLE_WP_CRON', true );
// Certo: deixe o WP-Cron ativo...
define( 'DISABLE_WP_CRON', false );
// ...e, em sites de baixo trafego, configure um cron REAL no servidor
// chamando wp-cron.php a cada 5 minutos (crontab do servidor):
// */5 * * * * wget -q -O - https://seusite.com.br/wp-cron.php?doing_wp_cron
Perguntas frequentes
O que significa Critical CSS Not Generated no WP Rocket?
Significa que o WP Rocket não conseguiu gerar o CSS crítico ou o Used CSS de uma página. Esse CSS e produzido por um serviço em nuvem da WP Rocket que visita a página de fora. Quando algo bloqueia esse acesso, a feature de otimização de CSS fica sem o resultado e o site continua carregando a folha de estilo completa.
Por que o WP Rocket precisa acessar meu site de fora para gerar o CSS?
Porque a geração do Used CSS e do CSS crítico não roda no seu servidor: o WP Rocket envia a URL para um serviço externo em nuvem que visita a página, calcula apenas o CSS de fato usado e devolve o arquivo. Por isso o site precisa estar publicamente acessivel e o firewall precisa liberar o robo do serviço.
Como saber se um plugin de segurança esta bloqueando a geração?
O próprio WP Rocket exibe o aviso de que um plugin de segurança ou o firewall do servidor impede o acesso as features SaaS. Quando esse aviso aparece, o robo do serviço esta sendo barrado antes de ler a página. A solução e liberar o user-agent do WP Rocket na allowlist do plugin de segurança ou do firewall.
O Bot Fight Mode da Cloudflare atrapalha a geração de CSS?
Sim. O Bot Fight Mode trata o robo do WP Rocket como bot e bloqueia o acesso a página, o que impede a geração. Desligue o Bot Fight Mode no painel da Cloudflare ou, em planos pagos, crie uma regra de WAF que permita especificamente o user-agent do serviço da WP Rocket.
A licenca expirada pode causar esse erro?
Pode. O acesso ao serviço em nuvem que gera o CSS so e liberado com licenca valida. Se a licenca do WP Rocket estiver expirada, a geração falha mesmo com firewall liberado. Renove a licenca, revalide no Dashboard e force uma nova geração com Clear Used CSS.
Por que a fila de Used CSS nunca termina de processar?
A geração roda em fila disparada pelo cron do WordPress. Se o WP-Cron estiver desativado, ou se o site tiver pouco tráfego e o cron quase não for chamado, a fila não anda. Garanta que a constante de desativar o cron não esteja ligada e configure um cron real no servidor para processar a fila com regularidade.
Onde forco o WP Rocket a gerar o CSS de novo?
No painel, em WP Rocket -> Dashboard, use o botão Clear Used CSS para descartar o estado anterior e recolocar as páginas na fila. Depois limpe o cache e visite as URLs afetadas para disparar o processamento. Em poucos minutos o aviso de CSS não gerado deve sumir em File Optimization.
O limite de 45 segundos de carregamento influencia na geração?
Sim. O serviço externo desiste de gerar o CSS de uma página que demora mais de 45 segundos para carregar. Se a página e muito pesada ou o servidor esta lento, reduza o tempo de carga antes de tentar de novo, senao aquela URL continuara sem o CSS gerado.














