# Como corrigir erros de cache do WP Rocket em multisite no WordPress

O erro de cache do WP Rocket em multisite acontece quando o plugin e ativado na rede inteira, faz as configurações vazarem entre subsites ou serve o cache do domínio errado em redes com domain mapping. A correção passa por ativar o WP Rocket site a site e limpar o cache pelo blog_id correto.

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

**Antes de começar:** Antes de desativar o plugin na rede ou rodar comandos do WP-CLI em producao, faca um backup completo do site (arquivos e banco de dados) ou teste primeiro em staging, porque alternar a ativacao do WP Rocket regenera os arquivos de cache de todos os subsites afetados.

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

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 Delay JavaScript do WP Rocket que quebra funções do site](https://full.services/wp-fixer/corrigir-delay-javascript-wp-rocket/)
- [Como corrigir conflitos de cache entre WP Rocket e Elementor](https://full.services/wp-fixer/corrigir-conflito-cache-wp-rocket-elementor/)

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

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

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

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

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

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


## Código

```bash
#!/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
```

## Perguntas frequentes

### Por que não devo ativar o WP Rocket em rede no multisite

Porque a ativacao em rede aplica as mesmas opções a todos os subsites de uma vez. Se você precisar desligar a minificacao ou ajustar o cache em um site, a mudanca vaza para a rede inteira. A doc oficial recomenda ativar o WP Rocket individualmente em cada subsite.

### Como limpar o cache de apenas um subsite da rede

Use o WP-CLI com o blog_id do subsite alvo, por exemplo wp rocket clean --blog_id=2. Descubra o blog_id em Network Admin, Sites. Assim a limpeza atinge somente aquele site e não esvazia o cache do restante da rede.

### Cada subsite do multisite tem suas proprias configurações do WP Rocket

Sim, desde que o plugin seja ativado individualmente em cada subsite. Com a ativacao por site, cada um ganha seu próprio painel de opções e seu próprio cache, permitindo estratégias de otimização diferentes por site na rede.

### Por que o WP Rocket serve o cache do domínio errado com domain mapping

Porque ele foi configurado pelo domínio interno do WordPress em vez do domínio mapeado. A doc oficial orienta acessar o wp-admin pelo domínio que aparece no front-end durante a configuração, senao o WP Rocket grava o cache e os arquivos para a URL errada.

### O botão Network Deactivate do WP Rocket não funciona, o que faco

A documentação reconhece que esse botão pode não responder quando o plugin foi ativado em rede. A solução indicada e clicar com o botão direito no botão Network Deactivate e abrir o link em uma nova aba para forcar a desativacao.

### Preciso de uma licenca do WP Rocket para cada subsite

Não para subsites no mesmo domínio de topo. Redes em subpasta ou subdominio (exemplo.com e sub.exemplo.com) usam uma única chave. Subsites em domínios de topo distintos, via domain mapping, exigem uma chave de licenca separada para cada domínio.

### Posso usar o WP-CLI para limpar o cache de toda a rede de uma vez

Sim. O comando wp rocket clean --confirm limpa o cache do contexto atual, e você pode repetir a limpeza por subsite usando --blog_id para cada site. Combinado com wp rocket preload, ele reconstroi o cache após a limpeza.

**Fonte:** [WP Rocket Knowledge Base — How to use WP Rocket in a multisite environment](https://docs.wp-rocket.me/article/874-how-to-use-wp-rocket-in-a-multisite-environment)
