Como corrigir o WP Rocket que não otimiza subdomínios no WordPress
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.
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.
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
- 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 - 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 - 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 - 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) - 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'
<?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;
}














