🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir o sitemap do Rank Math quebrado pelo cache do WP Rocket

Time Full Services Time Full Services
Tipo SEO Tecnico
Nome do erro Sitemap do Rank Math quebrado pelo cache do WP Rocket EN: Rank Math sitemap broken by WP Rocket cache
Severidade Grave
Descrição O sitemap do Rank Math quebra quando o WP Rocket guarda uma cópia estática do sitemap_index.xml ou aplica minificação de HTML, CSS e JS sobre a saída XML. A correção é excluir o caminho do sitemap do cache e do minify do WP Rocket e limpar o cache.

O que é sitemap do Rank Math quebrado pelo cache do WP Rocket?

O sitemap do Rank Math quebrado pelo cache do WP Rocket acontece quando o WP Rocket trata o sitemap_index.xml como uma página HTML comum: guarda uma versão estática no diretório de cache e aplica as otimizações de minificação sobre a resposta. O Rank Math gera o índice em sitemap_index.xml junto com uma folha de estilo XSL (o arquivo de transformação que deixa o sitemap legível no navegador) e sub-sitemaps por tipo de post; quando o WP Rocket entra no meio, o Googlebot e o visitante recebem um XML antigo, sem estilo ou com lixo de minificação antes da declaração XML.

Na prática são dois mecanismos distintos. O primeiro é o cache de página: o WP Rocket serve um sitemap_index.xml congelado de horas atrás, então posts novos não aparecem para o Google. O segundo é a minificação: ao processar o XSL e os scripts associados, o WP Rocket injeta caracteres ou remove a estrutura que o parser de XML espera, e o navegador acusa erro de declaração XML ou exibe a página sem formatação. Separar qual dos dois está ativo é o que leva à correção certa em vez do chute de desativar o plugin inteiro.

Como identificar

  • O sitemap_index.xml abre sem a folha de estilo do Rank Math: aparece o XML cru, sem a tabela azul de URLs que o Rank Math normalmente mostra
  • O navegador exibe o erro “XML Parsing Error: XML or text declaration not at the start of entity” ao abrir o sitemap com o WP Rocket ativo
  • Posts e páginas publicados há horas não aparecem no sitemap_index.xml, mas surgem assim que você limpa o cache do WP Rocket
  • No Search Console o sitemap fica em “Couldn’t fetch” ou “Sitemap could not be read”, enquanto o arquivo abre normalmente para você com o cache já quente
  • Ao testar domínio.com/?sitemap=1 o sitemap vem correto e atualizado, mas a URL amigável sitemap_index.xml vem antiga ou sem estilo
  • O problema some quando você desativa o WP Rocket e volta a aparecer poucos minutos depois de reativar, quando o cache do sitemap é regerado
Antes de começar: Faça backup das configurações do WP Rocket antes de alterar as regras de cache e minify. Elas ficam na option wp_rocket_settings e um backup permite reverter caso a exclusão do sitemap afete outra otimização do site.

Como prevenir

  • Logo após instalar o WP Rocket, adicione o caminho do sitemap ao campo Never Cache URL(s) para o índice nunca ser servido estático ao Googlebot
  • Mantenha o sitemap.xsl fixo nas listas de exclusão de CSS e JS do WP Rocket para que novas otimizações nunca removam a folha de estilo do sitemap
  • Depois de publicar um lote grande de posts, limpe o cache do WP Rocket e confira o sitemap_index.xml em janela anônima antes de aguardar o rastreamento do Google
  • Ao atualizar o WP Rocket ou o Rank Math, valide o sitemap em janela anônima com cache limpo, pois uma nova versão pode reativar o Minify HTML sobre o XML

Causa

  • O cache de página do WP Rocket guarda uma cópia estática do sitemap_index.xml no diretório wp-content/cache/wp-rocket e serve essa versão congelada para o Googlebot, sem refletir os posts publicados depois.
  • A opção Minify HTML (aba File Optimization) processa a saída do sitemap_index.xml e da folha XSL, removendo quebras de linha que o parser de XML exige e gerando o erro de declaração XML fora do início.
  • As opções Minify/Combine CSS e Minify/Combine JS atuam sobre o sitemap.xsl que estiliza o sitemap, deixando o sitemap_index.xml sem a tabela visual e exibindo só o XML cru no navegador.
  • O caminho do sitemap não está no campo Never Cache URL(s) (aba Advanced Rules), então o WP Rocket nunca foi instruído a deixar o sitemap_index.xml fora do cache de página.
  • O Remove Unused CSS ou o Load CSS Asynchronously remove a referência ao sitemap.xsl, e o navegador renderiza o índice sem a folha de estilo de transformação.
  • O cache interno do próprio Rank Math também guarda o índice, então mesmo após purgar o WP Rocket o sitemap_index.xml volta antigo até a regeneração do Rank Math.

Como resolver

  1. Confirme que a causa é o WP Rocket comparando a query crua: Antes de mexer em qualquer ajuste, descubra se o estrago vem do cache ou do minify. Abra as duas URLs em uma janela anônima e compare. Se a query crua vem certa e com estilo, mas a URL amigável vem antiga ou sem a tabela azul, o culpado é o WP Rocket.
    https://seudominio.com/?sitemap=1
    https://seudominio.com/sitemap_index.xml
  2. Exclua o sitemap do cache de página no Advanced Rules: No painel, vá em Settings -> WP Rocket -> Advanced Rules e localize o campo Never Cache URL(s). Cole, uma por linha, os padrões que cobrem o índice e os sub-sitemaps. O WP Rocket passa a entregar sempre o XML gerado na hora pelo Rank Math em vez da cópia estática.
    /sitemap_index.xml
    /.*sitemap.*.xml
    /sitemap.xsl
  3. Tire o sitemap da minificação de HTML, CSS e JS: Vá em Settings -> WP Rocket -> File Optimization. Se o erro é XML declaration not at the start of entity, desligue o Minify HTML, pois ele quebra a estrutura do XML. Para o sitemap sem estilo, exclua o sitemap.xsl da combinação e minificação de CSS e JS para preservar a folha de transformação.
    File Optimization -> CSS Files -> Excluded CSS Files: sitemap.xsl
    File Optimization -> JavaScript Files -> Excluded JavaScript Files: sitemap.xsl
    File Optimization -> desmarcar Minify HTML se o erro for de declaração XML
  4. Limpe o cache do WP Rocket e regenere o sitemap do Rank Math: Volte em Settings -> WP Rocket -> Dashboard e clique em Clear and preload cache para descartar a cópia estática antiga. Depois force o Rank Math a remontar o índice reabrindo e salvando as configurações de sitemap, e confirme que os tipos de post estão marcados.
    Settings -> WP Rocket -> Dashboard -> Clear and preload cache
    Rank Math SEO -> Sitemap Settings -> Geral -> reabrir e salvar
  5. Se o XML antigo persistir, desligue o cache do sitemap no Rank Math: Quando a cópia estática insiste em voltar mesmo após a purga, desative o cache interno do sitemap do Rank Math pelo filtro do passo de código. Assim o Rank Math monta o sitemap_index.xml a cada requisição e o WP Rocket, já com a URL excluída, repassa essa saída fresca ao Google.
PHP
<?php
// functions.php do tema ativo (ou um mu-plugin).
// Desliga o cache interno do sitemap do Rank Math quando o WP Rocket
// insiste em servir um sitemap_index.xml estático e desatualizado.
add_filter( 'rank_math/sitemap/enable_caching', '__return_false' );

Perguntas frequentes

Por que o sitemap_index.xml aparece sem estilo só depois que ativo o WP Rocket?
Porque o WP Rocket minifica ou combina o sitemap.xsl, que é a folha de estilo que transforma o XML na tabela visual do Rank Math. Sem ela, o navegador mostra o XML cru. Excluir o sitemap.xsl das listas de CSS e JS do WP Rocket devolve o estilo ao sitemap.
O que significa o erro XML declaration not at the start of entity no sitemap?
Significa que algo foi enviado antes da declaração XML, em geral pela minificação de HTML do WP Rocket atuando sobre o sitemap_index.xml. Desligar o Minify HTML ou excluir o caminho do sitemap do cache resolve, pois o XML volta a sair limpo do Rank Math.
Preciso desativar o WP Rocket inteiro para o sitemap voltar a funcionar?
Não. Basta adicionar o caminho do sitemap ao campo Never Cache URL(s) em Advanced Rules e excluir o sitemap.xsl da minificação. Assim você mantém o cache e o ganho de velocidade no restante do site sem quebrar o sitemap do Rank Math.
Por que o Google reporta Couldn't fetch se o sitemap abre normal para mim?
Porque o Googlebot recebe a versão em cache do WP Rocket, que pode estar antiga ou sem o XML válido, enquanto você vê a cópia já regenerada. Excluir o sitemap do cache faz o Googlebot receber sempre a saída fresca do Rank Math e o status volta a Success.
Como excluo o sitemap do cache do WP Rocket sem mexer no resto?
Vá em Settings -> WP Rocket -> Advanced Rules e cole o padrão do sitemap no campo Never Cache URL(s), uma URL por linha. Esse campo isola só o sitemap do cache de página e não afeta as demais URLs nem as otimizações ativas do site.
Depois de excluir o sitemap, ainda preciso limpar o cache?
Sim. A cópia estática antiga continua no diretório de cache até você purgar. Clique em Clear and preload cache no Dashboard do WP Rocket para descartar a versão congelada e forçar o WP Rocket a respeitar a nova regra de exclusão do sitemap.
O cache do próprio Rank Math também pode guardar o sitemap antigo?
Pode. O Rank Math mantém um cache interno do índice. Quando o XML antigo volta mesmo após purgar o WP Rocket, aplique o filtro rank_math/sitemap/enable_caching retornando falso para o Rank Math montar o sitemap a cada requisição, ao custo de um pouco mais de processamento.
A regra Never Cache URL(s) aceita curinga para pegar todos os sub-sitemaps?
Sim. O WP Rocket interpreta o campo como expressão e aceita padrões como uma linha cobrindo qualquer arquivo .xml de sitemap. Isso garante que tanto o índice quanto os sub-sitemaps por tipo de post fiquem fora do cache de página de uma vez.

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