Como corrigir erros de cache do WP Rocket em multisite no WordPress
O que é erro de cache do WP Rocket em multisite?
O erro de cache do WP Rocket em multisite e qualquer falha em que páginas de um subsite ficam em cache desatualizado, servem o HTML de outro site da rede ou não respeitam as opções de otimização definidas para aquele site específico. Na prática você ve alterações que não aparecem no front-end, conteúdo de um subsite vazando para outro, ou uma opção desligada num site afetando todos os demais da rede.
A raiz quase sempre esta no modelo de ativacao. A documentação oficial do WP Rocket recomenda NÃO ativar o plugin em rede (Network Activate): quando ele e ativado na rede, todas as opções passam a valer para todos os subsites de uma vez, entao desligar a minificacao num site quebra a minificacao em toda a rede. O caminho correto e ativar o WP Rocket individualmente em cada subsite, dando a cada site seu próprio painel de configuração e seu próprio cache. Em redes com domain mapping, o cache também quebra quando o WP Rocket e configurado a partir do domínio errado, e ele grava os arquivos de configuração para a URL que não corresponde ao front-end.
Como identificar
- Alterações publicadas em um subsite não aparecem no front-end mesmo após salvar, porque a página continua servindo o HTML antigo em cache.
- Uma opção do WP Rocket desligada em um subsite (por exemplo minificacao de CSS) afeta todos os outros subsites da rede ao mesmo tempo.
- O subsite com domain mapping serve o cache do domínio interno do WordPress (subsite.exemplo.com) em vez do domínio mapeado público.
- O botão ‘Network Deactivate’ do WP Rocket não responde ao ser clicado quando o plugin foi ativado em rede.
- Limpar o cache pelo painel de um subsite não surte efeito, e o conteúdo desatualizado permanece até uma limpeza manual da pasta de cache.
Como prevenir
- Nunca ative o WP Rocket em rede: ative sempre subsite a subsite, para que cada site tenha cache e opções próprios, como recomenda a documentação oficial.
- Em redes com domain mapping, padronize configurar o WP Rocket sempre pelo domínio mapeado público, nunca pelo domínio interno do WordPress.
- Documente o blog_id de cada subsite e limpe o cache sempre pelo blog_id correto via WP-CLI para não esvaziar o cache do site errado.
- Use uma única chave de licenca para subsites no mesmo domínio de topo (subpasta ou subdominio) e reserve chaves separadas para subsites em domínios de topo distintos.
Causa
- O WP Rocket foi ativado em rede (Network Activate): segundo a doc oficial, isso aplica as mesmas opções a todos os subsites, entao um ajuste de cache ou minificacao feito para um site vaza para a rede inteira.
- A ativacao em rede impede a configuração isolada: cada subsite deixa de ter seu próprio painel de opções do WP Rocket, e o cache passa a ser regido por uma única configuração global em vez de uma por site.
- Em rede com domain mapping, o WP Rocket foi configurado acessando o wp-admin pelo domínio interno e não pelo domínio mapeado, gravando os arquivos de configuração e o cache para a URL errada do front-end.
- O cache de um subsite específico não foi limpo pelo blog_id correto, entao a limpeza atingiu o site errado da rede (ou o site principal) e o conteúdo desatualizado permaneceu no subsite alvo.
- O botão 'Network Deactivate' falha após uma ativacao em rede anterior, deixando o plugin num estado de rede que continua sobrescrevendo as configurações individuais dos subsites.
Como resolver
- Desative o WP Rocket na rede: Se o WP Rocket estiver ativado em rede, desative-o em Network Admin. A doc oficial alerta que o botão Network Deactivate pode não responder após uma ativacao em rede; nesse caso, clique com o botão direito no botão e abra em uma nova aba para forcar a acao.
Painel WP -> Network Admin -> Plugins Localize o WP Rocket e clique em Network Deactivate Se o botão não responder, clique com o botão direito e abra o link em uma nova aba - Ative o WP Rocket em cada subsite individualmente: Entre no painel de cada subsite e ative o WP Rocket apenas ali. Assim cada site ganha seu próprio painel de opções e seu próprio cache, e desligar uma opção em um site deixa de afetar os demais da rede, exatamente como a doc oficial recomenda.
Painel WP -> Meus Sites -> escolha o subsite -> Painel Plugins -> Plugins Instalados -> WP Rocket -> Ativar Repita a ativacao em cada subsite que deve usar o cache - Em domain mapping, configure pelo domínio mapeado: Se a rede usa domain mapping, acesse o wp-admin pelo domínio que aparece no front-end (o domínio mapeado), e não pelo domínio interno do WordPress. Caso contrario o WP Rocket grava o cache e os arquivos de configuração para a URL errada, servindo o site errado.
Acesse https://www.domínio-mapeado.com/wp-admin (o domínio público do subsite) Abra Configurações -> WP Rocket e salve as opções a partir desse domínio Evite configurar o WP Rocket pelo domínio interno subsite.domínio-da-rede.com - Limpe o cache do subsite correto via WP-CLI: Use o WP-CLI passando o blog_id do subsite alvo para limpar somente o cache daquele site, sem afetar o resto da rede. Descubra o blog_id em Network Admin -> Sites antes de rodar o comando.
wp rocket clean --blog_id=2 wp rocket preload --blog_id=2 wp rocket clean --confirm - Regenere os arquivos de configuração e valide: Depois de isolar as ativacoes, regenere os arquivos de configuração do WP Rocket e recarregue cada front-end com o cache esvaziado pelo navegador para confirmar que cada subsite serve o seu próprio HTML atualizado.
wp rocket regenerate --file=config Recarregue o front-end de cada subsite com o cache do navegador limpo (Ctrl+F5) Confirme que a alteração recente aparece em cada site da rede
#!/bin/bash
# Limpa e refaz o cache do WP Rocket por subsite numa rede multisite.
# Rode na raiz da instalacao WordPress, com WP-CLI instalado.
# Lista os blog_id de todos os subsites da rede
for blog_id in $(wp site list --field=blog_id); do
echo "Limpando cache do subsite blog_id=${blog_id}"
wp rocket clean --blog_id="${blog_id}"
wp rocket preload --blog_id="${blog_id}"
done
# Regenera os arquivos de configuracao da rede ao final
wp rocket regenerate --file=config














