Como corrigir o erro de preload no WP Rocket no WordPress
O que é erro de preload do WP Rocket?
O preload do WP Rocket e o processo que pre-carrega o cache de páginas antes de o visitante real chegar. Segundo a documentação oficial, o preload e um processo continuo atrelado a limpeza do cache: toda vez que os arquivos de cache são apagados, manualmente ou por atualização, o robo de preload visita as URLs do site usando o user agent WP Rocket/Preload (e a variante mobile) e gera novamente os arquivos de cache. As URLs vem do sitemap de um plugin de SEO compativel (Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework) ou, na ausencia desses, do sitemap nativo do WordPress.
O erro de preload do WP Rocket aparece quando esse robo não consegue rodar ou não consegue acessar as URLs. Na prática, o cache não e pre-gerado: a pasta wp-content/cache/wp-rocket/ continua vazia depois de alguns minutos da limpeza, e os primeiros visitantes recebem páginas sem cache, mais lentas. A causa raiz quase sempre e o WP-Cron que não dispara, um sitemap vazio ou bloqueado, a extensão SimpleXML ausente, uma falha de loopback do próprio site ou um plugin de segurança bloqueando o user agent WP Rocket/Preload.
Como identificar
- Depois de clicar em ‘Clear and preload cache’ na barra de administracao, a pasta wp-content/cache/wp-rocket/seudominio.com/ continua vazia após alguns minutos, sem novos arquivos de cache.
- O WordPress Site Health exibe o aviso ‘Your site could not complete a loopback request’, indicando que o site não consegue se conectar a si mesmo.
- Nos logs do servidor aparecem respostas 403 para requisicoes com o user agent WP Rocket/Preload, geradas por plugin de segurança ou firewall.
- O preload roda muito lento e nunca termina: as páginas seguem sem cache mesmo horas depois da limpeza.
- As primeiras visitas a cada página são lentas (TTFB alto) porque o cache so e criado no primeiro acesso real, e não pelo preload.
Como prevenir
- Configure um cron de servidor real chamando o wp-cron.php em intervalos curtos, em vez de depender so do WP-Cron disparado pelo tráfego, garantia recomendada pela documentação do WP Rocket.
- Mantenha o sitemap do plugin de SEO sempre público e populado, e monitore se ele continua acessivel após mudancas de robots.txt ou de plugin de segurança.
- Confirme que a extensão SimpleXML do PHP permanece ativa ao trocar de versão de PHP ou de servidor.
- Adicione o user agent WP Rocket/Preload a allowlist do firewall e do plugin de segurança para evitar bloqueios 403 no robo de preload.
Causa
- O WP-Cron não consegue rodar (esta desativado via DISABLE_WP_CRON sem um cron de servidor configurado, ou o host bloqueia a chamada ao wp-cron.php), e a documentação do WP Rocket exige WP-Cron ou um cron de servidor real para o preload funcionar.
- O sitemap usado como fonte de URLs esta vazio ou não e publicamente acessivel; a doc do WP Rocket determina que os sitemaps não podem estar vazios e precisam ser acessiveis publicamente para o preload descobrir as URLs.
- A extensão SimpleXML do PHP esta desativada no servidor, e ela e exigida pela documentação do WP Rocket para o robo conseguir ler o sitemap em XML.
- O site não completa a requisicao de loopback (o host bloqueia o site de se conectar a si mesmo via cURL), erro que aparece como 'Your site could not complete a loopback request' no Site Health do WordPress.
- Um plugin de segurança ou firewall bloqueia as requisicoes do user agent WP Rocket/Preload, retornando 403 e impedindo o robo de gerar o cache das páginas.
- O cache de página em si não esta funcionando (uma camada extra de cache, como cache de servidor ou CDN, não e limpa em sincronia com o WP Rocket), e sem o cache de página operante o preload também não funciona.
Como resolver
- Confirme que o preload realmente falhou: Limpe o cache e observe se novos arquivos aparecem. Clique em 'Clear and preload cache' na barra de administracao do WP Rocket, depois confira a pasta de cache por FTP ou gerenciador de arquivos. Se nenhum arquivo novo surgir após alguns minutos, o preload não esta funcionando, conforme o teste descrito na doc oficial.
Barra de administracao -> menu WP Rocket -> Clear and preload cache Acesse via FTP: wp-content/cache/wp-rocket/seudominio.com/ Aguarde alguns minutos e atualize a pasta para ver se surgem novos arquivos de cache - Garanta que o WP-Cron ou um cron de servidor esteja rodando: O preload depende de WP-Cron ou de um cron de servidor real. Se o WP-Cron estiver desativado no wp-config.php sem um cron de servidor no lugar, o preload nunca dispara. Reative o WP-Cron ou, melhor, configure um cron real no painel da hospedagem chamando o wp-cron.php em intervalos curtos.
Verifique no wp-config.php se existe a linha: define('DISABLE_WP_CRON', true); Se houver e não existir cron de servidor, troque para: define('DISABLE_WP_CRON', false); Recomendado: crie um cron de servidor que execute a cada 5 minutos no painel da hospedagem - Valide o sitemap e a extensão SimpleXML: O robo le as URLs do sitemap em XML, entao ele precisa estar acessivel, não pode estar vazio e o PHP precisa da extensão SimpleXML ativa. Abra o sitemap no navegador para confirmar que carrega com URLs e cheque a extensão no Site Health ou em uma página de phpinfo.
Abra no navegador: https://seudominio.com/sitemap.xml (ou o sitemap do seu plugin de SEO) Confirme que o XML carrega publicamente e lista URLs (não pode estar vazio) Painel WP -> Ferramentas -> Saude do site -> Informações -> Servidor: confirme que SimpleXML esta ativa - Corrija a falha de loopback no Site Health: Se o Site Health mostrar 'Your site could not complete a loopback request', o servidor esta impedindo o site de se conectar a si mesmo via cURL, o que trava o preload. Peca a hospedagem para liberar a conexão de loopback ou ajuste o firewall do servidor para permitir o próprio domínio.
Painel WP -> Ferramentas -> Saude do site -> aba Status Procure o aviso 'Your site could not complete a loopback request' Acione o suporte da hospedagem para liberar a requisicao de loopback (cURL para o próprio domínio) - Libere o user agent WP Rocket/Preload no firewall: Plugins de segurança e firewalls costumam bloquear o robo, devolvendo 403 nos logs. Adicione o user agent WP Rocket/Preload a allowlist do plugin de segurança (ou do firewall do servidor) para que as requisicoes do preload cheguem ao WordPress.
Cheque os logs do servidor por respostas 403 com user agent 'WP Rocket/Preload' No plugin de segurança (ex.: AIOS, Wordfence), adicione 'WP Rocket/Preload' a lista de user agents permitidos Se houver firewall no servidor/CDN, libere o user agent WP Rocket/Preload
<?php
// wp-config.php — adicione ANTES da linha /* That's all, stop editing! */
// Desativa o WP-Cron disparado pelo trafego para usar um cron de servidor real,
// que e o recomendado pela doc do WP Rocket para o preload rodar de forma confiavel.
define( 'DISABLE_WP_CRON', true );














