🎉 USE O CUPOM FIM.DE.SEMANA.FULL | 20% OFF acima de R$ 100,00

Como corrigir o cache mobile do WP Rocket que não funciona no iOS no WordPress

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro Cache mobile do WP Rocket não funciona no iOS EN: WP Rocket mobile cache not working on iOS
Severidade Atenção
Descrição O cache mobile do WP Rocket não funciona no iOS quando a opção Separate cache files for mobile devices está desativada, quando uma camada de cache acima do WP Rocket (Cloudflare, Varnish ou NGINX) entrega a versão desktop ao iPhone, ou quando o user agent do Safari iOS não é detectado como dispositivo móvel.

O que é cache mobile do WP Rocket que não funciona no iOS?

O cache mobile do WP Rocket é a função que cria um conjunto separado de arquivos de cache para dispositivos móveis, de forma que qualquer conteúdo específico de celular seja armazenado e servido de maneira independente da versão desktop. Segundo a documentação oficial, esse recurso vem ativado por padrão ao ativar o WP Rocket e aplica o cache de página e as demais otimizações também ao acesso mobile. O WP Rocket grava esses arquivos como index-mobile.html_gzip (ou index-mobile-webp.html_gzip quando há WebP) dentro de wp-content/cache/wp-rocket/seudominio.com/.

Quando esse cache não funciona no iOS, o iPhone ou iPad passa a receber a versão desktop em cache, um layout quebrado ou conteúdo desatualizado no Safari móvel. A detecção do dispositivo é feita pelo HTTP user agent, com a lógica na biblioteca Mobile_Detect.php do WP Rocket. O problema aparece quando essa detecção não roda (porque uma camada de cache na frente responde antes), quando a opção de arquivos separados para mobile está desativada, ou quando outra camada como o Cloudflare APO não está configurada para variar o cache por tipo de dispositivo.

Como identificar

  • Ao abrir o site no Safari do iPhone ou iPad, aparece a versão desktop em cache em vez do layout mobile, mesmo com o WP Rocket ativo.
  • O conteúdo no iOS fica desatualizado: uma alteração publicada já aparece no desktop, mas o Safari móvel continua mostrando a versão antiga.
  • Não existe nenhum arquivo index-mobile.html_gzip (ou index-mobile-webp.html_gzip) dentro de wp-content/cache/wp-rocket/seudominio.com/, indicando que o cache mobile não está sendo gerado.
  • O mesmo site abre corretamente em mobile no Chrome do Android, mas entrega layout desktop apenas no Safari do iOS.
  • Com Cloudflare APO ativo, todos os dispositivos recebem a mesma resposta em cache e o iPhone nunca recebe a variação mobile.
Antes de começar: Antes de mexer em regras de Varnish, NGINX, Cloudflare APO ou de instalar o helper de tablets em produção, faça um backup completo do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para reverter caso a entrega de cache fique inconsistente entre dispositivos.

Como prevenir

  • Mantenha a opção Separate cache files for mobile devices sempre ativa no WP Rocket, já que ela vem habilitada por padrão e é o que garante a versão mobile no iOS.
  • Sempre que adicionar uma camada de cache acima do WP Rocket (Cloudflare APO, Varnish, NGINX), configure-a desde o início para variar a resposta por tipo de dispositivo.
  • Depois de qualquer mudança de layout ou de configuração de cache, valide o site real em um iPhone e não apenas no modo responsivo do navegador desktop.
  • Documente quais helpers do WP Rocket estão ativos (por exemplo o de tablets como mobile) para que futuras manutenções não removam o comportamento esperado no iOS.

Causa

  • A opção Separate cache files for mobile devices (Mobile Cache) está desativada no WP Rocket: sem ela, o plugin serve o mesmo cache para desktop e mobile e o iPhone recebe a versão desktop armazenada.
  • Uma camada de cache na frente do WP Rocket (Cloudflare, Varnish ou NGINX) entrega a primeira resposta gravada sem distinguir o dispositivo, então o que foi cacheado primeiro em desktop é devolvido também ao Safari iOS.
  • O Cloudflare APO está ativo sem a opção Cache by device type ligada, fazendo a CDN servir uma única resposta para todos os user agents e ignorar a variação mobile do WP Rocket.
  • O user agent do Safari no iOS não está sendo reconhecido como dispositivo móvel pela detecção do WP Rocket porque um proxy ou camada intermediária altera ou remove o cabeçalho User-Agent antes de chegar ao PHP.
  • O iPad está sendo tratado como desktop: por padrão o WP Rocket não considera tablets como mobile, então o iPad recebe o cache desktop a menos que o helper Set tablets as mobile esteja ativo.

Como resolver

  1. Ative o cache mobile no WP Rocket: Confirme que o cache mobile está ligado. Pela aba de ferramentas do WP Rocket é possível reativar o recurso caso ele tenha sido desligado, garantindo que o plugin volte a criar arquivos separados para dispositivos móveis.
    Painel WP -> Configurações -> WP Rocket -> aba Cache
    Marque a opção Separate cache files for mobile devices
    Se estiver desligado, use Painel WP -> Configurações -> WP Rocket -> aba Tools -> Mobile Cache -> Enable Mobile Cache
    Clique em Salvar alterações e limpe o cache
  2. Limpe o cache e confirme a geração do arquivo mobile: Após ativar a opção, limpe todo o cache para forçar a regeração e acesse o site por um iPhone (ou simulando o user agent do iOS). Em seguida verifique se o arquivo de cache mobile passou a existir na pasta do domínio.
    Painel WP -> menu superior -> WP Rocket -> Clear and preload cache
    Acesse uma página pelo Safari do iPhone para gerar o cache mobile
    Via FTP ou gerenciador de arquivos, abra wp-content/cache/wp-rocket/seudominio.com/
    Confirme a presença de index-mobile.html_gzip (ou index-mobile-webp.html_gzip)
  3. Configure a camada de cache acima do WP Rocket: Se você usa Cloudflare APO, Varnish ou cache de servidor NGINX, ele precisa variar a resposta por tipo de dispositivo; caso contrário, entrega a versão desktop ao iOS. No Cloudflare APO, habilite o cache por tipo de dispositivo; em Varnish ou NGINX, ajuste a regra para considerar o User-Agent ou desative a camada conflitante.
    Cloudflare -> Speed -> Optimization -> Automatic Platform Optimization -> ative Cache by device type
    Se usar Varnish/NGINX, ajuste a VCL/regra para variar por User-Agent ou desative o cache da camada
    Limpe o cache da CDN e do servidor após o ajuste
  4. Trate o iPad como mobile, se necessário: Por padrão o WP Rocket não considera tablets como dispositivos móveis, então o iPad recebe o cache desktop. Se você precisa servir a versão mobile também ao iPad, instale o helper oficial que define tablets como mobile.
    Baixe o helper oficial WP Rocket | Set tablets as mobile
    Painel WP -> Plugins -> Adicionar novo -> Enviar plugin -> instale e ative o helper
    Limpe o cache do WP Rocket após ativar
  5. Verifique a entrega do user agent ao PHP: Se mesmo assim o iOS recebe a versão desktop, confirme que o cabeçalho User-Agent do Safari móvel chega íntegro ao PHP. Um proxy reverso ou CDN pode estar removendo ou normalizando o User-Agent antes da detecção do WP Rocket. Use a verificação do código abaixo para inspecionar o que o servidor recebe.
    Crie um endpoint de diagnóstico temporário com o código da seção abaixo
    Acesse pelo Safari do iPhone e confira se o User-Agent contém iPhone ou iPad
    Se o User-Agent vier vazio ou alterado, ajuste o proxy/CDN para repassar o cabeçalho original
PHP
<?php
/**
 * Diagnóstico temporário: inspeciona o User-Agent recebido e se o WP Rocket
 * classifica o acesso atual como mobile. Acesse pelo Safari do iPhone e remova depois.
 * Coloque em um mu-plugin ou no functions.php do tema filho.
 */
add_action( 'wp_footer', 'full_debug_wp_rocket_mobile' );
function full_debug_wp_rocket_mobile() {
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    $ua        = isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : '(vazio)';
    $is_mobile = function_exists( 'wp_is_mobile' ) ? wp_is_mobile() : false;

    echo '<!-- FULL WP Rocket mobile debug -->';
    echo '<!-- User-Agent: ' . esc_html( $ua ) . ' -->';
    echo '<!-- wp_is_mobile: ' . ( $is_mobile ? 'sim' : 'nao' ) . ' -->';
}

Perguntas frequentes

Por que o WP Rocket entrega a versão desktop no meu iPhone
Geralmente porque a opção Separate cache files for mobile devices está desligada, ou porque uma camada de cache acima do WP Rocket (Cloudflare, Varnish ou NGINX) responde primeiro sem distinguir o dispositivo. Ative o cache mobile e configure a camada da frente para variar por tipo de dispositivo.
O cache mobile do WP Rocket vem ativado por padrão
Sim. Segundo a documentação oficial, o Mobile Cache é ativado automaticamente ao ativar o WP Rocket e cria um conjunto separado de arquivos de cache para dispositivos móveis. Se foi desativado, é possível reativá-lo pela aba Tools, em Mobile Cache, com a opção Enable Mobile Cache.
Como confirmo que o WP Rocket está gerando o cache mobile
Verifique a pasta wp-content/cache/wp-rocket/seudominio.com/ e procure pelo arquivo index-mobile.html_gzip, ou index-mobile-webp.html_gzip quando há WebP. A presença desse arquivo confirma que o cache mobile foi gerado para a página acessada.
O Cloudflare interfere no cache mobile do WP Rocket no iOS
Pode interferir. Se você usa o Cloudflare APO, é preciso habilitar a opção de cache por tipo de dispositivo; sem isso a CDN serve uma única resposta para todos os user agents e o iPhone nunca recebe a variação mobile gerada pelo WP Rocket.
Como o WP Rocket identifica que o acesso é de um celular
O WP Rocket detecta dispositivos móveis pelo HTTP user agent, usando a biblioteca Mobile_Detect.php. Se um proxy ou CDN remover ou alterar o cabeçalho User-Agent antes de chegar ao PHP, a detecção falha e o iOS pode receber a versão desktop.
Meu iPad recebe a versão desktop, isso é normal
Sim, por padrão o WP Rocket não trata tablets como dispositivos móveis, então o iPad recebe o cache desktop. Para servir a versão mobile também ao iPad, instale o helper oficial WP Rocket | Set tablets as mobile e limpe o cache em seguida.
Limpar o cache resolve o cache mobile que não funciona no iOS
Limpar o cache ajuda a regenerar os arquivos depois de ativar a opção mobile, mas não resolve sozinho se a causa estiver em uma camada acima do WP Rocket. Combine a limpeza com a ativação do cache mobile e o ajuste da CDN ou do cache de servidor.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes