# Como corrigir o WP Rocket que não otimiza subdomínios no WordPress

O WP Rocket não otimiza subdomínios quando o plugin foi ativado em rede (Network Activate) em vez de ativado individualmente em cada subsite, ou quando o WordPress acessa o admin por uma URL diferente da do front-end, impedindo o plugin de gerar a configuração e o cache por domínio.

## O que é WP Rocket que não otimiza subdomínios?

WP Rocket subdomínio não otimiza é o sintoma de um multisite WordPress em que o cache e as otimizações do WP Rocket (minificação, lazy load, preload) funcionam no site principal, mas não são aplicados nos subsites hospedados em subdomínios como loja.seusite.com ou blog.seusite.com. As páginas do subdomínio continuam sendo servidas sem cache, sem HTML minificado e sem os ganhos de performance que o plugin entrega no site principal.

O WP Rocket trata cada site de uma rede multisite de forma independente: ele cria um arquivo de configuração por domínio em wp-content/wp-rocket-config e gera uma pasta de cache separada para cada subsite. Para isso funcionar, o plugin precisa estar ativado em cada subsite individualmente e precisa enxergar a URL correta do domínio. Segundo a documentação oficial do WP Rocket, o plugin não deve ser ativado em rede em uma instalação multisite, e o admin precisa ser acessado pelo mesmo domínio usado no front-end. Quando essas duas condições não são respeitadas, o subdomínio fica sem otimização.

## Como identificar

- As páginas do subdomínio (ex.: loja.seusite.com) carregam sem cache do WP Rocket, enquanto o site principal carrega otimizado.
- O comentário de rodapé do HTML 'Performance optimized by WP Rocket' não aparece no código-fonte das páginas do subdomínio.
- O painel de cada subsite não mostra a aba de configurações do WP Rocket, ou mostra apenas a configuração herdada da rede sem permitir ajustes individuais.
- Minificação de CSS/JS e lazy load funcionam no domínio principal, mas não têm efeito nas páginas do subdomínio.
- Não existe um arquivo de configuração com o nome do subdomínio dentro de wp-content/wp-rocket-config (ex.: falta o subdominio.seusite.com.php).
- A pasta de cache do subdomínio em wp-content/cache/wp-rocket permanece vazia mesmo após visitar as páginas.

**Antes de começar:** Antes de mexer na ativação de plugins da rede, em arquivos dentro de wp-content ou em permissões de pasta, faça um backup completo do multisite (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para conseguir reverter caso algum subsite pare de carregar.

## Como prevenir

- Nunca ative o WP Rocket em rede no multisite: ative individualmente em cada subsite para que cada subdomínio tenha sua própria configuração e cache.
- Padronize o acesso ao wp-admin de cada subsite pelo mesmo domínio público do front-end, evitando URLs internas que confundem a detecção de domínio do plugin.
- Monitore as permissões das pastas wp-content/wp-rocket-config e wp-content/cache para garantir que o servidor web consegue gravar a config e o cache de novos subdomínios.
- Ao adicionar um novo subdomínio à rede, inclua na rotina ativar o WP Rocket no subsite e validar o arquivo de configuração correspondente antes de colocar no ar.

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 404 após ativar o WP Rocket](https://full.services/wp-fixer/corrigir-erro-404-apos-wp-rocket/)
- [Como corrigir erros de integração entre WP Rocket e Cloudflare](https://full.services/wp-fixer/corrigir-integracao-wp-rocket-cloudflare/)

## Causa

- O WP Rocket foi ativado em rede (Network Activate) no multisite: a documentação oficial orienta NÃO ativar em rede, pois isso força a mesma configuração em todos os subsites e impede o ajuste e a geração de cache por subdomínio.
- O subsite do subdomínio nunca teve o WP Rocket ativado individualmente em Plugins do próprio subsite, então o plugin não está em execução para aquele domínio.
- O admin do subsite está sendo acessado por uma URL diferente da usada no front-end (caso comum com domain mapping), fazendo o WP Rocket não detectar o domínio correto e não criar o arquivo de configuração do subdomínio.
- A pasta wp-content/wp-rocket-config ou wp-content/cache não tem permissão de escrita pelo usuário do servidor web, então o WP Rocket não consegue gravar o arquivo subdominio.seusite.com.php nem a pasta de cache do subsite.
- A constante DONOTCACHEPAGE ou um cookie de sessão está ativo no subdomínio (por área logada ou loja), sinalizando ao WP Rocket para não cachear aquelas páginas específicas.

## Como resolver

1. Desative a ativação em rede do WP Rocket: No painel da rede, em Meus Sites e Rede, abra os plugins da rede e desative o WP Rocket caso ele esteja ativado em rede. A documentação oficial orienta a NÃO ativar o WP Rocket em rede, porque a ativação em rede aplica a mesma configuração a todos os subsites e impede ajustes e cache por subdomínio.

```
Painel WP -> Meus Sites -> Administração da Rede -> Plugins
Localize o WP Rocket e clique em Desativar na Rede
```

2. Ative o WP Rocket dentro de cada subsite: Entre no painel do subsite do subdomínio e ative o WP Rocket ali, individualmente. Assim cada subsite passa a ter sua própria configuração e sua própria pasta de cache, como recomenda a doc oficial para multisite.

```
Painel do subsite (ex.: loja.seusite.com/wp-admin) -> Plugins -> Plugins Instalados
Localize o WP Rocket e clique em Ativar
```

3. Acesse o admin pelo mesmo domínio do front-end: Se você usa domain mapping ou domínio proxy, acesse o wp-admin pelo mesmo domínio que aparece para o visitante. O WP Rocket usa a URL do admin para gerar o arquivo de configuração; acessar por outra URL faz o plugin não detectar o subdomínio e não criar a config do subsite.

```
Acesse o wp-admin pela URL pública do subdomínio (ex.: https://loja.seusite.com/wp-admin)
Evite acessar o admin por uma URL interna ou pelo domínio do site principal
```

4. Confirme o arquivo de configuração do subdomínio: Via FTP ou gerenciador de arquivos, verifique se existe um arquivo com o nome do subdomínio dentro de wp-content/wp-rocket-config. O WP Rocket cria um arquivo .php por domínio; se ele não existir, o subdomínio não tem configuração e por isso não é otimizado.

```
Abra a pasta: wp-content/wp-rocket-config/
Procure o arquivo do subdomínio, ex.: subdominio.seusite.com.php
Garanta permissão de escrita na pasta (chmod 755 na pasta, 644 nos arquivos)
```

5. Limpe o cache do subsite e regere a configuração: No painel do subsite, limpe o cache do WP Rocket e salve as configurações novamente para forçar a regeneração do arquivo de configuração e da pasta de cache do subdomínio. Depois visite a página pública e confira o comentário do WP Rocket no rodapé do HTML.

```
Painel do subsite -> Configurações -> WP Rocket -> Limpar Cache
Painel do subsite -> WP Rocket -> Salvar Alterações (regera a config)
Abra o subdomínio e veja o código-fonte: deve aparecer 'Performance optimized by WP Rocket'
```


## Código

```php
<?php
/**
 * Força o WP Rocket a usar o domínio público (front-end) ao gerar a
 * configuração de cada subsite do multisite, mesmo se o admin for
 * acessado por outra URL. Cole no functions.php do tema da rede
 * ou em um mu-plugin.
 */
add_filter( 'rocket_config_dir_name', 'full_wp_rocket_dir_por_subdominio' );
function full_wp_rocket_dir_por_subdominio( $dir_name ) {
    if ( ! is_multisite() ) {
        return $dir_name;
    }
    // Usa o host do site atual (subdomínio) como base da pasta de config.
    $home = wp_parse_url( home_url(), PHP_URL_HOST );
    if ( $home ) {
        $dir_name = sanitize_file_name( $home );
    }
    return $dir_name;
}
```

## Perguntas frequentes

### Por que o WP Rocket não otimiza meu subdomínio no multisite

Quase sempre porque o plugin foi ativado em rede ou não foi ativado no subsite do subdomínio. A documentação oficial do WP Rocket orienta ativar o plugin individualmente em cada subsite, e não em rede, para que cada subdomínio gere sua própria configuração e seu próprio cache.

### Devo ativar o WP Rocket em rede num multisite WordPress

Não. A doc oficial recomenda NÃO ativar o WP Rocket em rede, porque a ativação em rede aplica a mesma configuração a todos os subsites e impede ajustes individuais. Ative o plugin separadamente dentro de cada subsite da rede.

### Preciso de uma licença para cada subdomínio do WP Rocket

Não para subdomínios do mesmo domínio principal. Segundo o WP Rocket, uma única licença cobre subsites que compartilham o mesmo domínio de topo, como loja.seusite.com e blog.seusite.com. Domínios de topo diferentes exigem licenças separadas.

### Onde o WP Rocket guarda a configuração de cada subdomínio

Em wp-content/wp-rocket-config, com um arquivo .php por domínio. Para subdominio.seusite.com, por exemplo, o plugin gera o arquivo subdominio.seusite.com.php. Se esse arquivo não existir, o subdomínio fica sem configuração e sem otimização.

### Uso domain mapping e o subdomínio não otimiza, o que fazer

Acesse o wp-admin pelo mesmo domínio público usado no front-end. O WP Rocket detecta o domínio pela URL do admin; ao acessar por outra URL, o plugin não cria o arquivo de configuração correto e o subdomínio não é otimizado.

### O cache do subdomínio é separado do cache do site principal

Sim. O WP Rocket trata cada subsite de forma independente e mantém uma pasta de cache separada por domínio dentro de wp-content/cache/wp-rocket. Limpar o cache de um subsite não afeta o cache dos outros subdomínios da rede.

### Por que a pasta de cache do subdomínio fica vazia

Normalmente por falta de permissão de escrita em wp-content/cache, por uma constante DONOTCACHEPAGE ativa, ou porque o plugin não foi ativado naquele subsite. Confira a permissão da pasta, ative o WP Rocket no subsite e limpe o cache para forçar a regeneração.

**Fonte:** [WP Rocket — 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)
