# Como corrigir o erro de Schema Markup no Astra Pro no WordPress

O erro de Schema Markup no Astra Pro ocorre quando o tema emite seu próprio structured data ao mesmo tempo que um plugin de SEO como Rank Math ou Yoast, gerando schema duplicado que o Google sinaliza como invalido no Rich Results Test.

## O que é erro de Schema Markup no Astra Pro?

O erro de Schema Markup no Astra Pro não e um bug do tema isolado, e sim um conflito de duplicidade. O tema Astra adiciona schema markup próprio em vários componentes da página por padrão: Organization, Person, WPHeader, WPFooter, WPSidebar, SiteNavigationElement, BreadcrumbList e CreativeWork. Esse comportamento e controlado pela classe Astra_Schema, que ativa o markup por padrão através do filtro astra_schema_enabled, definido como true.

O problema aparece quando um plugin de SEO como Rank Math ou Yoast também injeta structured data na mesma página. O Google passa a receber duas declaracoes concorrentes do mesmo tipo de schema (por exemplo, dois BreadcrumbList ou dois Organization), e o Rich Results Test acusa propriedade duplicada ou markup invalido. A correção e deixar apenas uma fonte de schema ativa, normalmente desativando o markup do Astra e mantendo o do plugin de SEO, que e mais completo.

## Como identificar

- O Rich Results Test do Google aponta 'Duplicate field' ou itens BreadcrumbList e Organization repetidos na mesma URL.
- O Search Console exibe avisos de dados estruturados em 'Itens com problemas' após instalar ou atualizar um plugin de SEO sobre o Astra Pro.
- Aparecem dois breadcrumbs renderizados na página, um do tema Astra e outro do plugin de SEO.
- O Schema Markup Validator (schema.org) lista mais de um bloco do mesmo @type onde deveria existir apenas um.
- O rich snippet de breadcrumb ou de organizacao deixa de aparecer no Google mesmo com o plugin de SEO configurado corretamente.

**Antes de começar:** Antes de editar o functions.php do tema filho ou alterar o Customizer em producao, faça um backup completo do site (arquivos e banco de dados) ou aplique as mudancas primeiro em um ambiente de staging, para poder reverter caso a página ou o editor quebrem.

## Como prevenir

- Defina uma única fonte de schema desde o inicio do projeto: ou o tema Astra, ou o plugin de SEO, nunca os dois emitindo o mesmo @type.
- Ao instalar um plugin de SEO sobre o Astra, já desative o schema do tema com o filtro astra_schema_enabled no tema filho.
- Após qualquer atualização do Astra ou do plugin de SEO, revalide as páginas principais no Rich Results Test para detectar duplicidade nova cedo.
- Mantenha o filtro astra_rank_math_theme_support alinhado a partir do Astra 3.6.4 para que o tema e o Rank Math não briguem pelo controle do breadcrumb.

Erros relacionados

- [Como corrigir schema markup quebrado no WordPress](https://full.services/wp-fixer/corrigir-schema-markup-quebrado-wordpress/)
- [Como corrigir breadcrumb que não aparece no WordPress](https://full.services/wp-fixer/corrigir-breadcrumb-nao-aparece-wordpress/)
- [Como corrigir URLs canonicas duplicadas no WordPress](https://full.services/wp-fixer/corrigir-canonical-duplicado-wordpress/)

## Causa

- O tema Astra mantem o filtro astra_schema_enabled em true (padrão), entao a classe Astra_Schema emite Organization, Person, WPHeader, WPFooter, WPSidebar, SiteNavigationElement, BreadcrumbList e CreativeWork mesmo com um plugin de SEO ativo.
- Um plugin de SEO como Rank Math ou Yoast injeta seu próprio BreadcrumbList e Organization na mesma página, somando-se ao schema do Astra e gerando dois blocos do mesmo @type.
- A fonte do breadcrumb no Customizer (General > Breadcrumb > Breadcrumb Source) esta no padrão do Astra em vez de apontar para o Rank Math, fazendo os dois renderizarem markup de breadcrumb ao mesmo tempo.
- O suporte de tema ao Rank Math não foi ajustado pelo filtro astra_rank_math_theme_support, deixando recursos do plugin desalinhados com o schema do tema a partir do Astra 3.6.4.
- Schema adicional inserido manualmente em widget ou bloco de código customizado repete um @type que o Astra ou o plugin de SEO já emitem.

## Como resolver

1. Confirme a duplicidade no Rich Results Test: Antes de mexer no código, valide a URL afetada no Rich Results Test do Google e no Schema Markup Validator do schema.org. Identifique exatamente quais tipos estão duplicados (geralmente BreadcrumbList e Organization) e qual fonte os emite, o tema ou o plugin de SEO.

```
Abra https://search.google.com/test/rich-results
Cole a URL afetada e rode o teste
Anote os @type repetidos e a origem de cada um
```

2. Decida qual fonte de schema manter: Mantenha apenas uma fonte ativa por página. O recomendado e preservar o schema do plugin de SEO (Rank Math ou Yoast), que oferece controle mais granular, e desativar o markup do tema Astra. Isso elimina a duplicidade sem perder os rich snippets.

```
Regra: uma única fonte de schema por @type na página
Recomendado: manter o plugin de SEO, desativar o schema do Astra
```

3. Desative o schema do Astra pelo filtro astra_schema_enabled: Adicione o filtro astra_schema_enabled retornando false no functions.php do tema filho. Esse e o switch oficial da classe Astra_Schema e desliga de uma vez todo o markup que o tema emite, deixando apenas o do plugin de SEO ativo. Use o tema filho para não perder a alteração em atualizações.

```
Acesse o site via FTP ou Gerenciador de Arquivos
Abra wp-content/themes/seu-tema-filho/functions.php
Adicione o filtro astra_schema_enabled retornando false (ver bloco de código)
```

4. Ajuste a fonte do breadcrumb no Customizer: Se o breadcrumb continuar duplicado, defina a fonte como o plugin de SEO. No Customizer do Astra, em General > Breadcrumb > Breadcrumb Source, selecione Rank Math (ou desative o breadcrumb do tema se usar Yoast) para que apenas um markup de BreadcrumbList seja renderizado.

```
Painel WP -> Aparencia -> Personalizar -> General -> Breadcrumb
Em Breadcrumb Source, selecione Rank Math
Publique as alterações do Customizer
```

5. Limpe cache e revalide: Limpe qualquer cache de página e CDN para que o HTML novo, sem o schema do tema, seja servido. Em seguida, rode o Rich Results Test de novo na mesma URL e confirme que cada @type aparece apenas uma vez. So entao solicite reindexacao no Search Console.

```
Limpe o cache do plugin de cache e da CDN
Revalide a URL no https://search.google.com/test/rich-results
Confirme um único bloco por @type antes de pedir reindexacao
```


## Código

```php
<?php
// No functions.php do TEMA FILHO do Astra.
// Desativa todo o schema markup emitido pelo tema Astra,
// deixando o plugin de SEO (Rank Math/Yoast) como fonte unica.
add_filter( 'astra_schema_enabled', '__return_false' );

// Opcional: alinhar o suporte do tema ao Rank Math (Astra 3.6.4+),
// evitando conflito no controle do breadcrumb.
add_filter( 'astra_rank_math_theme_support', '__return_true' );
```

## Perguntas frequentes

### Por que o Astra Pro gera erro de schema markup duplicado

Porque o tema Astra emite seu próprio structured data por padrão, controlado pelo filtro astra_schema_enabled, ao mesmo tempo que um plugin de SEO como Rank Math ou Yoast injeta schema na mesma página. O Google entao recebe dois blocos do mesmo tipo e acusa duplicidade.

### Como desativar todo o schema markup do tema Astra

Adicione o filtro astra_schema_enabled retornando false no functions.php do tema filho. Esse e o switch oficial da classe Astra_Schema e desliga de uma vez Organization, Person, breadcrumb, header, footer, sidebar, navegação e creative work emitidos pelo tema.

### Devo manter o schema do Astra ou o do plugin de SEO

Mantenha o do plugin de SEO, como Rank Math ou Yoast, que oferece controle mais granular sobre os tipos de schema. Desative o markup do Astra para evitar duplicidade. O importante e que apenas uma fonte emita cada tipo por página.

### Quais tipos de schema o Astra adiciona por padrão

Por padrão o Astra adiciona Organization, Person, WPHeader, WPFooter, WPSidebar, SiteNavigationElement, BreadcrumbList e CreativeWork. Esses blocos são gerados pela classe Astra_Schema do tema e e justamente o BreadcrumbList e o Organization que costumam colidir com o plugin de SEO.

### Como resolver o breadcrumb duplicado entre Astra e Rank Math

No Customizer do Astra, va em General > Breadcrumb > Breadcrumb Source e selecione Rank Math. Assim o tema passa a usar o markup do plugin em vez de renderizar o breadcrumb próprio, deixando apenas um BreadcrumbList na página.

### Preciso editar código para corrigir o schema do Astra

Para desativar todo o schema do tema sim, você adiciona o filtro astra_schema_enabled no functions.php do tema filho. Já o conflito so de breadcrumb pode ser resolvido apenas pelo Customizer, sem tocar em código, ajustando a Breadcrumb Source.

### Desativar o schema do Astra prejudica meu SEO

Não, desde que o plugin de SEO continue emitindo o structured data. Você esta apenas removendo a fonte duplicada. Com um único schema valido por página, os rich snippets voltam a aparecer e o Search Console para de acusar itens com problemas.

### Por que o erro de schema apareceu so depois de instalar o plugin de SEO

Porque antes so o Astra emitia schema, sem conflito. Ao instalar Rank Math ou Yoast, surgiu uma segunda fonte do mesmo tipo na página. A solução e desativar o markup do tema com astra_schema_enabled e deixar o plugin como fonte única.

**Fonte:** [Astra Theme Developer Documentation — Astra_Schema (filtro astra_schema_enabled)](https://developers.wpastra.com/astra-theme/reference/classes/astra_schema/)
