# Como corrigir breadcrumbs duplicados entre Rank Math e SEOPress no WordPress

Breadcrumbs duplicados entre Rank Math e SEOPress acontecem quando os dois plugins (ou um plugin e o tema) imprimem a mesma trilha de navegação na página, geralmente por uma chamada de função manual somada ao breadcrumb automático, resultando em duas trilhas visiveis e dois blocos de schema BreadcrumbList.

## O que é breadcrumbs duplicados RankMath e SEOPress?

Breadcrumbs duplicados entre RankMath e SEOPress (Rank Math e SEOPress) são duas trilhas de navegação identicas, ou quase, renderizadas na mesma página porque mais de uma fonte esta emitindo o breadcrumb ao mesmo tempo. Tanto o Rank Math quanto o SEOPress oferecem um breadcrumb próprio: o Rank Math expoe a função rank_math_the_breadcrumbs() e um shortcode, enquanto o SEOPress oferece a função so_breadcrumbs() e o shortcode [seopress_breadcrumbs]. Quando os dois caminhos ficam ativos, a trilha aparece dobrada.

O problema tem duas camadas. A camada visual são as duas linhas Inicio > Categoria > Post que o leitor ve. A camada invisivel, e mais danosa para SEO, e o schema: cada plugin também emite seu próprio BreadcrumbList em JSON-LD. Com dois BreadcrumbList na mesma URL, o Google pode reportar marcacao conflitante no Search Console e ignorar a trilha nos resultados de busca. A regra de ouro e simples: apenas uma fonte deve gerar o breadcrumb, visual e estrutural, em cada página.

## Como identificar

- Duas trilhas de navegação identicas aparecem uma embaixo da outra no topo do post ou da página, do tipo 'Inicio > Blog > Título' repetida.
- O teste de Rich Results do Google ou o relatório de Aprimoramentos do Search Console aponta dois itens 'BreadcrumbList' detectados na mesma URL.
- O Search Console exibe o aviso 'Breadcrumbs: itens duplicados' ou marca a trilha como invalida após ativar o segundo plugin de SEO.
- Uma das trilhas mostra a hierarquia correta e a outra mostra uma versão diferente (por exemplo, sem a categoria), evidenciando duas fontes distintas.
- O breadcrumb duplicado some quando você desativa temporariamente o Rank Math ou o SEOPress, confirmando que ambos estão imprimindo a trilha.

**Antes de começar:** Antes de editar arquivos de template do tema (como single.php ou header.php) para remover a chamada de breadcrumb, faça um backup do site (arquivos e banco de dados) ou trabalhe em um ambiente de staging, e use um tema filho para não perder a alteração na próxima atualização do tema.

## Como prevenir

- Defina uma fonte única de breadcrumb por site e documente qual plugin (Rank Math ou SEOPress) e o dono da trilha, para ninguem reativar o concorrente por engano.
- Ao migrar de SEOPress para Rank Math (ou o inverso), remova do template e dos page builders qualquer chamada de breadcrumb do plugin antigo antes de ativar o novo.
- Após qualquer mudanca de tema ou de plugin de SEO, teste a página no Rich Results Test do Google e confira que existe apenas um BreadcrumbList por URL.
- Use um tema filho ao inserir rank_math_the_breadcrumbs() ou so_breadcrumbs() no template, para que atualizações do tema pai não reintroduzam uma segunda trilha.

Erros relacionados

- [Como corrigir meta tags duplicadas entre SEOPress e Rank Math](https://full.services/wp-fixer/corrigir-meta-tags-duplicadas-seopress-rankmath/)
- [Como corrigir Breadcrumbs duplicados entre Astra Pro e Rank Math](https://full.services/wp-fixer/corrigir-breadcrumbs-duplicados-astra-pro-rank-math/)
- [Como corrigir o erro de Breadcrumbs no Astra Pro](https://full.services/wp-fixer/corrigir-breadcrumbs-astra-pro/)

## Causa

- O tema chama rank_math_the_breadcrumbs() (ou o shortcode do Rank Math) dentro do template single.php ou header.php, e ao mesmo tempo o SEOPress esta com a opção de breadcrumb ativa imprimindo a trilha de forma automática.
- O SEOPress imprime o breadcrumb via função so_breadcrumbs() ou shortcode [seopress_breadcrumbs] inserido no conteúdo ou no template, enquanto o Rank Math também tem o breadcrumb habilitado, fazendo duas fontes coexistirem.
- Os dois plugins emitem JSON-LD de BreadcrumbList independentes: o Rank Math gera a marcacao estrutural junto do seu schema e o SEOPress gera o BreadcrumbList dentro do schema dele, criando dois BreadcrumbList na mesma página mesmo quando so um breadcrumb e visivel.
- O tema possui breadcrumb nativo (por exemplo, um construtor de cabeçalho ou uma opção no Customizer) ainda ligado, e um dos plugins de SEO foi configurado para também mostrar a trilha, somando tema mais plugin.
- Migração incompleta de plugin de SEO: o site usava SEOPress, passou a usar Rank Math (ou o inverso) e a chamada de breadcrumb do plugin antigo permaneceu no template ou em um page builder, enquanto o novo plugin assumiu o breadcrumb automático.

## Como resolver

1. Descubra quem esta imprimindo cada trilha: Abra uma página com o problema e inspecione o código fonte. Procure as marcas de cada plugin para saber qual fonte gera cada trilha antes de desligar qualquer coisa. O Rank Math costuma envolver a trilha em um container com classe rank-math-breadcrumb e o SEOPress em um container com classe seopress-breadcrumbs.

```
No navegador, abra a página afetada
Clique com o botão direito e escolha Ver código fonte da página (ou pressione Ctrl+U)
Procure por 'rank-math-breadcrumb' e por 'seopress-breadcrumbs' para identificar cada fonte
```

2. Escolha um único plugin para emitir o breadcrumb: Defina qual plugin será o responsável pela trilha. Mantenha o breadcrumb no plugin que você já usa para o restante do schema do site, para que a trilha e o schema fiquem na mesma fonte. Os outros passos vao desligar a fonte concorrente.

```
Decida: manter o breadcrumb no Rank Math OU no SEOPress (nunca nos dois)
Anote o plugin escolhido para seguir os passos corretos abaixo
```

3. Desative o breadcrumb do SEOPress (se optou pelo Rank Math): No painel do SEOPress, desligue a saida do breadcrumb para que ele pare de imprimir a trilha e o BreadcrumbList. Em seguida, remova do template ou do conteúdo qualquer chamada manual da função so_breadcrumbs() ou do shortcode do SEOPress que ainda esteja imprimindo a trilha.

```
Painel WP -> SEOPress -> Pro -> aba Breadcrumbs -> desative a opção de exibir o breadcrumb
Remova do conteúdo qualquer shortcode [seopress_breadcrumbs]
No template do tema, remova chamadas manuais de so_breadcrumbs()
```

4. Desative o breadcrumb do Rank Math (se optou pelo SEOPress): Caso queira que o SEOPress controle a trilha, desligue o breadcrumb do Rank Math em Configurações Gerais e tire do template a chamada da função rank_math_the_breadcrumbs(), que e a forma documentada de imprimir a trilha do Rank Math no tema.

```
Painel WP -> Rank Math SEO -> Configurações Gerais -> Breadcrumbs -> desative a opção de breadcrumb
No template do tema, remova a chamada da função rank_math_the_breadcrumbs()
Remova também qualquer shortcode de breadcrumb do Rank Math do conteúdo
```

5. Desligue o breadcrumb nativo do tema: Se o tema tiver breadcrumb próprio ligado, ele pode somar uma terceira trilha. Desligue a trilha do tema para que so o plugin escolhido a imprima. A opção costuma estar no Customizer ou no construtor de cabeçalho do tema.

```
Painel WP -> Aparencia -> Personalizar -> procure a opção de Breadcrumbs do tema e desative
Se o tema usa construtor de cabeçalho, remova o elemento de breadcrumb do cabeçalho
```

6. Valide a página sem duplicacao: Limpe qualquer cache do site e teste a página no validador do Google para confirmar que ha apenas uma trilha visivel e um único BreadcrumbList no schema. So encerre quando o teste reportar um BreadcrumbList por URL.

```
Limpe o cache de página e o cache de CDN do site
Abra https://search.google.com/test/rich-results e teste a URL afetada
Confirme que aparece apenas um item BreadcrumbList no resultado
```


## Código

```php
<?php
// No template do tema (ex.: single.php), garanta UMA unica fonte de breadcrumb.
// Imprime a trilha do Rank Math apenas se a funcao existir e se o breadcrumb
// do SEOPress estiver desligado, evitando duas trilhas na mesma pagina.
if (
    function_exists( 'rank_math_the_breadcrumbs' )
    && ! function_exists( 'so_breadcrumbs' )
    && ! is_front_page()
) {
    rank_math_the_breadcrumbs();
}

// Para usar o SEOPress como fonte unica, inverta: desative o breadcrumb do
// Rank Math no painel e deixe apenas a chamada do SEOPress no template.
// if ( function_exists( 'so_breadcrumbs' ) && ! is_front_page() ) {
//     so_breadcrumbs();
// }
```

## Perguntas frequentes

### Por que aparecem dois breadcrumbs na minha página com Rank Math e SEOPress ativos

Porque as duas fontes estão imprimindo a trilha ao mesmo tempo. Em geral um plugin imprime o breadcrumb de forma automática e o outro (ou o tema) também imprime por uma chamada manual de função ou shortcode. Deixe apenas uma fonte ativa para resolver.

### Devo desativar o breadcrumb do Rank Math ou do SEOPress

Mantenha o breadcrumb no plugin que já cuida do restante do schema do seu site e desligue o do outro. Assim a trilha visual e o BreadcrumbList do schema ficam na mesma fonte, evitando conflito de marcacao no Search Console.

### Breadcrumbs duplicados prejudicam o SEO

Sim. Dois BreadcrumbList na mesma URL geram marcacao conflitante, o que pode levar o Google a reportar erro no relatório de Aprimoramentos do Search Console e a ignorar a trilha nos resultados, além de poluir a interface para o usuário.

### Como sei qual plugin esta gerando cada trilha

Veja o código fonte da página e procure as classes dos containers. O Rank Math costuma usar a classe rank-math-breadcrumb e o SEOPress usa seopress-breadcrumbs. A classe revela qual plugin imprimiu cada trilha antes de você desligar a fonte certa.

### Onde fica a opção de breadcrumb do Rank Math

No painel, em Rank Math SEO e Configurações Gerais, existe a seção Breadcrumbs onde você ativa ou desativa a trilha. O Rank Math também expoe a função rank_math_the_breadcrumbs() para imprimir a trilha em um ponto específico do template do tema.

### O breadcrumb duplicado pode vir do tema e não do outro plugin

Pode. Muitos temas tem breadcrumb nativo ligado por padrão. Se o tema imprime a trilha e você também ativou um plugin de SEO para faze-lo, surge a duplicacao. Desligue o breadcrumb do tema no Customizer e deixe so o plugin escolhido.

### Remover a chamada de função do template e suficiente

Nem sempre. Se você so remove rank_math_the_breadcrumbs() ou so_breadcrumbs() do template mas deixa o breadcrumb automático do plugin ligado, a trilha continua. Desligue a opção no painel do plugin e remova a chamada manual para garantir uma fonte única.

### Preciso de código para corrigir breadcrumbs duplicados

Na maioria dos casos basta desligar a opção de breadcrumb de um dos plugins no painel. Código so e necessário quando o tema chama a função de breadcrumb direto no template e você precisa proteger essa chamada com uma verificacao de função existente.

**Fonte:** [Rank Math — Customize Breadcrumbs in Rank Math (rank_math_the_breadcrumbs)](https://rankmath.com/kb/customize-breadcrumbs-in-rank-math/)
