# Como corrigir o erro de preload no WP Rocket no WordPress

O preload do WP Rocket não funciona quando o WP-Cron não roda, quando o sitemap esta vazio ou inacessivel, quando a extensão SimpleXML do PHP esta desativada ou quando o site não consegue completar uma requisicao de loopback, impedindo o robo de pre-carregar o cache.

## 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.

**Antes de começar:** Antes de editar o wp-config.php ou alterar regras de firewall e cron em producao, faça um backup do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para poder reverter caso o site fique inacessivel.

## 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.

Erros relacionados

- [Como corrigir o WP Rocket que não gera cache](https://full.services/wp-fixer/corrigir-wp-rocket-nao-gera-cache/)
- [Como corrigir o erro de Critical CSS não gerado no WP Rocket](https://full.services/wp-fixer/corrigir-critical-css-wp-rocket/)
- [Como corrigir o WP Rocket que não melhora o PageSpeed](https://full.services/wp-fixer/corrigir-pagespeed-nao-melhora-wp-rocket/)

## 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

1. 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
```

2. 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
```

3. 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
```

4. 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)
```

5. 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
```


## Código

```php
<?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 );
```

## Perguntas frequentes

### Por que o preload do WP Rocket não gera cache

Na maioria dos casos o WP-Cron não esta rodando, o sitemap esta vazio ou inacessivel, ou o site não completa a requisicao de loopback. Como o preload e atrelado a limpeza do cache e exige cron e sitemap acessivel, sem esses requisitos o robo não visita as URLs e o cache não e gerado.

### O WP Rocket precisa de cron para o preload funcionar

Sim. A documentação oficial afirma que o WP-Cron ou um cron de servidor real precisa conseguir rodar, sendo o cron de servidor o recomendado. Se o WP-Cron estiver desativado e não houver cron de servidor, o preload não dispara depois da limpeza do cache.

### Como saber se o preload do WP Rocket esta funcionando

Clique em 'Clear and preload cache' na barra de administracao e confira a pasta wp-content/cache/wp-rocket/seudominio.com/. Se novos arquivos de cache aparecerem após alguns minutos, o preload esta funcionando. Se a pasta continuar vazia, o preload falhou.

### O que significa o erro 'Your site could not complete a loopback request'

Esse aviso do WordPress Site Health indica que o servidor esta impedindo o site de se conectar a si mesmo via cURL. Como o robo de preload depende dessa conexão, alguns hosts bloqueiam o loopback e travam o preload. Peca a hospedagem para liberar a requisicao de loopback.

### Por que vejo erros 403 do WP Rocket Preload nos logs

Os erros 403 com o user agent WP Rocket/Preload indicam que um plugin de segurança ou firewall esta bloqueando o robo de preload. Adicione o user agent WP Rocket/Preload a allowlist do plugin de segurança ou do firewall para liberar as requisicoes.

### A extensão SimpleXML e obrigatoria para o preload

Sim. A documentação do WP Rocket exige a extensão SimpleXML do PHP ativa no servidor, porque o robo le as URLs do sitemap em formato XML. Sem ela o preload não consegue interpretar o sitemap e não gera o cache das páginas.

### De onde o WP Rocket pega as URLs para fazer o preload

O WP Rocket usa o sitemap de um plugin de SEO compativel, como Yoast SEO, Rank Math, All in One SEO, SEOPress ou The SEO Framework. Se nenhum desses for detectado, ele recorre ao sitemap nativo do WordPress para descobrir as URLs a pre-carregar.

### O preload lento pode ser normal em sites grandes

Sim, até certo ponto. O WP Rocket processa até 45 URLs a cada 60 segundos e reduz o ritmo automaticamente se detectar sobrecarga do servidor. Em sites com muitas URLs o preload completo leva tempo, mas a pasta de cache deve crescer aos poucos; se nada aparecer, e falha.

**Fonte:** [WP Rocket — Preload is slow or not working](https://docs.wp-rocket.me/article/1065-preload-is-slow-or-not-working/)
