# Como corrigir o cache mobile que não é gerado no WP-Optimize

O cache mobile do WP-Optimize não é gerado quando a opção Generate separate files for mobile devices está desligada, quando o site não usa tema ou plugin de detecção mobile, ou quando o cache desktop já foi salvo antes do primeiro acesso mobile e passa a ser servido a todos os dispositivos.

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

**Antes de começar:** Antes de limpar o cache, alternar temas ou editar o functions.php em produção, faça um backup do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para reverter caso a versão mobile saia quebrada para os visitantes.

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

Erros relacionados

- [Como corrigir o cache que não funciona no WP-Optimize](https://full.services/wp-fixer/corrigir-cache-nao-funciona-wp-optimize/)
- [Como corrigir o conflito de cache entre WP-Optimize e WP Rocket](https://full.services/wp-fixer/corrigir-conflito-cache-wp-optimize-wp-rocket/)
- [Como corrigir o cache do WP-Optimize que quebra o editor do Elementor](https://full.services/wp-fixer/corrigir-cache-wp-optimize-quebra-elementor/)

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

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

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

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

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

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


## Código

```php
<?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;
}
```

## Perguntas frequentes

### Por que o WP-Optimize não gera cache mobile separado

Na maioria dos casos a opção Generate separate files for mobile devices está desmarcada, ou o site não tem tema mobile específico. Ligue a opção na aba Page cache e confirme que existe um tema ou plugin que entrega HTML diferente para mobile, condição que a documentação do plugin exige.

### Onde fica a opção de cache separado para mobile no WP-Optimize

Em WP-Optimize, Cache, aba Page cache. Primeiro marque Enable page caching e depois Generate separate files for mobile devices. Salve e limpe o cache para que os arquivos mobile comecem a ser gravados no próximo acesso de um celular.

### Por que o mobile recebe a versão desktop cacheada

Porque o cache é gravado no primeiro acesso de cada URL. Se um visitante desktop, o preload ou um robô carregou a página antes de qualquer celular, é a versão desktop que ficou salva e passa a ser servida a todos. Limpe o cache e force um primeiro acesso mobile para corrigir.

### Preciso de tema mobile específico para usar essa opção

Segundo a documentação do WP-Optimize, sim. A opção só faz sentido quando o site entrega HTML diferente para mobile, via tema dedicado ou plugin de detecção. Em um tema responsivo comum, um único arquivo de cache já atende mobile e desktop e ligar a opção não traz ganho.

### O wp_is_mobile funciona com o cache do WP-Optimize ligado

Não de forma confiável. A documentação alerta que com cache de página ativo o PHP não roda a cada visita, então o resultado de wp_is_mobile() vem do arquivo já gravado e pode ficar errado. Para essas páginas, exclua a URL do cache para o PHP voltar a rodar a cada acesso.

### Limpar o cache resolve o cache mobile que não aparece

Costuma ajudar. Limpar apaga a versão única que estava sendo servida e o preload regera os arquivos. Em alguns casos o usuário precisa desativar e reativar o WP-Optimize para os arquivos mobile separados voltarem a ser criados, depois rodar o preload de novo.

### Um cache de servidor ou CDN pode atrapalhar o cache mobile

Sim. Se o host ou uma CDN como o Cloudflare cacheiam a resposta na frente do WordPress, eles podem servir a mesma página a mobile e desktop, ignorando os arquivos separados que o WP-Optimize gravou. Ajuste essas camadas para variar por dispositivo ou dar bypass nessas URLs.

**Fonte:** [WP-Optimize — How to increase WordPress website speed (Page cache)](https://teamupdraft.com/documentation/wp-optimize/getting-started/how-to-increase-wordpress-website-speed-with-wp-optimize/)
