Meu post sumiu da home do WordPress — e a culpa era de dois plugins de cache
Em setembro deste ano publiquei um post no DigitalRadar e ele simplesmente não apareceu na home. Nem na página da categoria. O post existia — abrindo a URL direto, ele carregava normalmente. Mas a home continuava mostrando a lista antiga, como se nada tivesse sido publicado.
O detalhe que entregou o problema foi este: quando eu acessava digitalradar.com.br/?lang=pt, o post aparecia. Na URL limpa, digitalradar.com.br, não aparecia. Mesmo conteúdo, mesmo servidor, duas respostas diferentes dependendo de ter ou não uma query string.
O que esse sintoma significa
Quando a mesma página responde diferente com e sem query string, o problema quase nunca está no WordPress. Está em alguma camada de cache antes dele — e a query string está fazendo essa camada ser ignorada.
É o comportamento padrão de cache de página em arquivo: ele guarda uma cópia estática de cada URL “limpa” e serve esse arquivo direto, sem nem acordar o PHP. URL com ?alguma-coisa normalmente não é tratada como a mesma página, então escapa do arquivo salvo e chega ao WordPress de verdade.
Ou seja: o que eu via com ?lang=pt era o site real. O que eu via na URL limpa era uma fotografia antiga.
O diagnóstico
O site roda na Hostinger, que usa LiteSpeed. Eu tinha o plugin LiteSpeed Cache ativo — e, por herança de uma configuração antiga, também o WP Fastest Cache.
Abri o Gerenciador de Arquivos e fui em wp-content/cache/. Lá estava a prova:
wp-content/cache/all/index.html ← gerado em 4 de junho
wp-content/cache/all/categoria/noticias/index.html
wp-content/cache/wpfc-minified/
O WP Fastest Cache salvava uma cópia estática de cada URL em wp-content/cache/all/<url>/index.html e servia esse arquivo para qualquer visita sem query string. A home que eu estava vendo tinha sido gerada meses antes.
E o problema central: quando eu publicava um post, quem recebia o aviso e limpava o próprio cache era o LiteSpeed. O WP Fastest Cache não era notificado e continuava servindo o arquivo velho. Dois plugins de cache de página no mesmo site não se falam — cada um acha que é o único.
A correção, na ordem que importa
A ordem aqui não é detalhe: se você apagar a pasta de cache antes de desativar o plugin, ele recria tudo em segundos.
- Plugins → desativar e excluir o WP Fastest Cache. Desativar só não basta; a desinstalação é que remove as regras que ele escreveu.
- Apagar as pastas que sobraram:
wp-content/cache/allewp-content/cache/wpfc-minified. Plugin removido costuma deixar os arquivos para trás. - Limpar o
.htaccess. O WP Fastest Cache escreve um bloco próprio de regras de reescrita. Guarde uma cópia do arquivo antes de editar — eu salvei a minha como.htaccess.wpfc-backup— e remova apenas o bloco dele, deixando intactos o blocoLSCACHEe o blocoWordPress. - LiteSpeed Cache → Purge All. Só agora, com um plugin de cache apenas, a limpeza vale para o site inteiro.
Como confirmar que resolveu
Publique um post de teste e, numa janela anônima, abra a home pela URL limpa. Se o post aparecer de primeira, acabou. A janela anônima importa porque o cache do seu navegador pode mascarar o resultado.
Dá para checar pelo cabeçalho da resposta também. Em servidor LiteSpeed, a resposta traz um x-litespeed-cache com hit ou miss. Se aparecer cabeçalho de outro sistema de cache junto, ainda há dois na jogada.
No terminal:
curl -sI https://seusite.com.br/ | grep -i cache
A regra que ficou
Nunca manter dois plugins de cache de página no mesmo site. Cache de objeto, de navegador e CDN convivem bem com um plugin de página — mas dois plugins gerando HTML estático vão, mais cedo ou mais tarde, servir versões diferentes do seu site.
Se a sua hospedagem já é LiteSpeed (Hostinger, por exemplo), use o LiteSpeed Cache e só ele. Ele cobre cache de página, cache de navegador, minificação, lazy-load e conversão para WebP. Qualquer plugin adicional de cache de página vira concorrente, não reforço.
Perguntas frequentes
Por que o post aparecia com ?lang= na URL e não na URL limpa?
Porque o cache em arquivo guarda uma cópia só das URLs sem query string. Com a query string, a requisição escapava do arquivo estático e chegava ao WordPress, que devolvia a home atualizada.
Desativar o plugin resolve, ou preciso excluir?
Precisa excluir. Desativar interrompe a geração de novos arquivos, mas os arquivos já salvos e as regras no .htaccess continuam lá e seguem sendo usados.
Posso apagar a pasta wp-content/cache inteira?
Pode — ela é reconstruída sozinha. O cuidado é fazer isso depois de remover o plugin, senão ele recria os arquivos na mesma hora.
Como sei se tenho mais de um plugin de cache?
Olhe a lista de plugins ativos procurando por “cache”, “speed”, “optimize” ou “rocket”, e confira se wp-content/cache/ tem subpastas de sistemas diferentes. Pastas como all/ e wpfc-minified/ são do WP Fastest Cache.
No DigitalRadar, documentamos os problemas que resolvemos no próprio site. Fique no radar.
Apurado a partir das fontes citadas e verificado antes da publicação. Veja a nossa Política Editorial.