Como corrigir o cache mobile que não é gerado no WP-Optimize
O que é cache mobile do WP-Optimize que não é gerado?
O cache mobile do WP-Optimize é um conjunto separado de arquivos de página servido a visitantes em celulares e tablets, ativado pela opção Generate separate files for mobile devices na aba Page cache. Segundo a documentação oficial do plugin, ela só deve ser ligada quando o site tem um tema específico para mobile, ou seja, quando o HTML entregue ao celular é diferente do entregue ao desktop. Sem essa condição, o WordPress já responde de forma responsiva e um único arquivo de cache atende todos os dispositivos.
O problema aparece quando você espera versões diferentes para mobile e desktop, mas o WP-Optimize entrega a mesma página cacheada para os dois. Como o cache é gravado no primeiro acesso a cada URL, se um robô ou um visitante desktop carregar a página antes de qualquer celular, é a versão desktop que fica salva e passa a ser servida ao mobile. A documentação ainda alerta que a função wp_is_mobile do WordPress é pouco confiável com cache de página ligado, porque o código não roda a cada visita: o resultado vem do arquivo já gerado, não da detecção em tempo real.
Como identificar
- Visitantes em celular recebem a mesma versão cacheada que os visitantes em desktop, mesmo com a opção de arquivos separados para mobile marcada.
- Nenhuma subpasta ou arquivo de cache adicional para mobile aparece dentro de wp-content/cache/wpo-cache/ após habilitar a opção.
- Conteúdo condicional baseado em wp_is_mobile() (vídeos, banners, menus mobile) sai errado ou trocado entre dispositivos.
- A opção Generate separate files for mobile devices aparece desabilitada ou acinzentada na aba Page cache do WP-Optimize.
- O tema mobile específico ou o plugin de detecção (como WPtouch) só funciona com o cache desligado e quebra assim que o cache de página é ativado.
Como prevenir
- Só habilite a geração de arquivos separados para mobile quando o site realmente tiver um tema mobile específico ou um plugin de detecção de dispositivo, conforme a recomendação da documentação do WP-Optimize.
- Sempre limpe e pré-carregue o cache após mudar a configuração mobile, para que a primeira versão gravada não fique presa em desktop e seja servida a todos os dispositivos.
- Evite montar conteúdo condicional com wp_is_mobile() em páginas cacheadas; prefira CSS responsivo ou exclua essas URLs do cache de página.
- Se houver cache de servidor ou CDN na frente do site, alinhe as regras para respeitar a variação por dispositivo ou faça o bypass das URLs que dependem da versão mobile.
Causa
- A opção Generate separate files for mobile devices está desmarcada na aba Page cache do WP-Optimize, então o plugin grava um único arquivo de cache para todos os dispositivos.
- O site não usa tema específico para mobile nem plugin de detecção de dispositivo, condição que a documentação do WP-Optimize exige para a geração de cache mobile separado fazer sentido.
- A versão desktop da URL foi cacheada primeiro (por um visitante desktop, pelo preload ou por um robô) antes do primeiro acesso mobile, e o WP-Optimize passa a servir esse arquivo a todos até o cache expirar ou ser limpo.
- O site depende de wp_is_mobile() para alternar conteúdo, função que a doc do plugin descreve como não confiável com cache de página ligado, porque o resultado vem do arquivo gravado e não de uma detecção a cada requisição.
- Um cache de servidor ou CDN na frente do WordPress (cache do host, Cloudflare) serve a mesma resposta a mobile e desktop, ignorando os arquivos separados que o WP-Optimize gerou no disco.
Como resolver
- Habilite os arquivos separados para mobile na aba Page cache: Acesse a configuração de cache do WP-Optimize, confirme que o cache de página está ligado e marque a opção de gerar arquivos separados para dispositivos mobile. A documentação recomenda ligar essa opção apenas quando o site tem um tema específico para mobile.
Painel WP -> WP-Optimize -> Cache -> Page cache Marque Enable page caching Marque Generate separate files for mobile devices Salve as configurações - Limpe e pré-carregue o cache para gerar a versão mobile: Como o cache só é gravado no primeiro acesso a cada URL, limpe todo o cache existente para apagar a versão desktop que estava sendo servida a todos e rode o preload para o plugin regerar os arquivos separados.
Painel WP -> WP-Optimize -> Cache -> Purge cache (limpar todo o cache) Painel WP -> WP-Optimize -> Cache -> Preload cache (pré-carregar) - Confirme se o site realmente entrega HTML diferente para mobile: Verifique se existe um tema mobile específico ou um plugin de detecção de dispositivo ativo. Sem isso, a documentação do WP-Optimize indica que o cache mobile separado não tem efeito, porque o tema responsivo já entrega o mesmo HTML aos dois dispositivos.
Painel WP -> Aparência -> Temas (verifique se há tema mobile dedicado) Painel WP -> Plugins (confirme um detector de dispositivo, ex.: WPtouch) - Teste a versão mobile em aba anônima com o agente de usuário correto: Abra a página em uma janela anônima emulando um celular para forçar o primeiro acesso mobile e gravar o arquivo de cache mobile. Recarregue duas vezes: a primeira gera o cache, a segunda já deve servir a versão mobile salva.
Abra o Chrome -> F12 -> Toggle device toolbar (Ctrl+Shift+M) Selecione um dispositivo mobile e recarregue a URL duas vezes Confira no rodapé do HTML o comentário de cache gerado pelo WP-Optimize - Exclua páginas que dependem de wp_is_mobile do cache: Para páginas cujo conteúdo é montado em PHP por wp_is_mobile(), a documentação recomenda não confiar no cache de página. Exclua essas URLs do cache para que o PHP rode a cada visita e a detecção volte a ser confiável.
Painel WP -> WP-Optimize -> Cache -> Advanced settings Adicione as URLs em Pages to exclude from caching Salve e limpe o cache novamente
<?php
/**
* Exclui do cache de pagina do WP-Optimize URLs que dependem de wp_is_mobile().
* Cole no functions.php do tema filho ou em um plugin de snippets.
*/
add_filter( 'wpo_url_exclude_cache', 'full_excluir_mobile_do_cache' );
function full_excluir_mobile_do_cache( $exclusions ) {
// Caminhos (sem dominio) cujo HTML muda por dispositivo via wp_is_mobile().
$exclusions[] = '/landing-mobile/';
$exclusions[] = '/promo-app/';
return $exclusions;
}














