Como corrigir o erro de schema markup no SEOPress
O que é erro de schema markup no SEOPress?
Schema markup no SEOPress e o JSON-LD que o plugin injeta no cabeçalho da página pelo módulo Structured Data Types, descrevendo o conteúdo (Article, FAQ, Product, LocalBusiness) para os buscadores. O erro de schema invalido aparece quando esse JSON-LD não segue o vocabulario do schema.org: falta uma propriedade que o Google marca como obrigatoria, um campo dinâmico aponta para um valor que não existe no post, ou duas marcacoes do mesmo tipo são emitidas na mesma URL. Quando isso ocorre, o Google ignora a marcacao e a página perde o rich result, mesmo que o conteúdo esteja correto.
Como identificar
- No Google Search Console, em Aprimoramentos, aparece a mensagem ‘Campo obrigatório ausente’ ou ‘Campo X ausente (opcional)’ para a URL.
- No Rich Results Test (search.google.com/test/rich-results) o item aparece com ‘Erro’ em vermelho e a propriedade faltante listada abaixo do tipo.
- No Schema.org Validator (validator.schema.org) o mesmo tipo de schema aparece duas vezes para a URL, sinalizando marcacao duplicada.
- A página perde o rich snippet (estrelas, FAQ sanfonada, breadcrumb) que antes exibia na SERP.
- Após editar um schema automático em SEO -> Schemas, a alteração não reflete no código-fonte da página porque o cache não foi limpo.
Como prevenir
- Mantenha apenas um gerador de schema ativo por site: escolha SEOPress ou outro plugin de SEO, nunca os dois emitindo o mesmo tipo.
- Em lojas WooCommerce, desative o JSON-LD padrão do WooCommerce assim que ativar o schema Product do SEOPress.
- Antes de publicar um tipo de schema novo, valide um post de amostra no Rich Results Test e so depois aplique o schema automático ao tipo de post inteiro.
- Garanta que todo post que recebe schema Article tenha imagem destacada e autor definidos, para não gerar propriedade obrigatoria vazia.
- Acompanhe o relatório de Aprimoramentos do Search Console periodicamente para pegar erros novos antes que afetem o rich result.
Causa
- Uma propriedade obrigatoria do tipo escolhido não foi preenchida: por exemplo, um schema Article sem image ou sem author, ou um Product sem offers. Sem o valor obrigatório o Google não usa a marcacao.
- Um campo dinâmico do schema automático aponta para um dado que aquele post não tem (a imagem destacada esta vazia, ou a variavel mapeada não retorna valor), entao a propriedade sai como string vazia no JSON-LD.
- Schema duplicado: o tema, o WooCommerce (JSON-LD padrão do Product) ou outro plugin de SEO como o Rank Math emite o mesmo tipo na mesma URL, e os dois blocos conflitam no Rich Results Test.
- O JSON-LD padrão do WooCommerce continua ativo junto com o schema Product do SEOPress, gerando dois Product incompletos na página de produto.
- Um schema manual aplicado em SEO -> Schemas com condicao 'Show this schema if is' ampla demais (todo o site) sobrepoe o schema correto de tipos especificos de post.
- O cache de página ou de objeto servindo uma versão antiga da URL, exibindo o JSON-LD anterior ao ajuste feito no metabox Structured Data Types.
Como resolver
- Identifique o tipo e a propriedade que falham: Rode a URL no Rich Results Test do Google e anote exatamente qual tipo de schema esta em erro e qual propriedade aparece como ausente. Esse e o alvo da correção, não reescreva o schema inteiro.
https://search.google.com/test/rich-results - Confirme se ha schema duplicado: Cole a mesma URL no Schema.org Validator. Se o mesmo tipo (por exemplo Article ou Product) aparecer duas vezes, a causa e duplicacao, e a correção e remover a fonte extra, não editar o SEOPress.
https://validator.schema.org - Localize o schema no SEOPress: No painel, abra o módulo de schema para ver se a marcacao em erro vem de um schema automático (global por tipo de post) ou de um schema manual aplicado naquele post pelo metabox.
SEO -> PRO -> Structured Data Types (schema.org) SEO -> Schemas Editar o post -> metabox Structured Data Types - Preencha a propriedade obrigatoria ou corrija o campo dinâmico: Se a falha for propriedade ausente, defina um valor para ela no schema. Se for campo dinâmico vazio, troque a fonte da variavel ou cadastre o dado no post (por exemplo, defina a imagem destacada para alimentar a propriedade image).
Defina a imagem destacada do post para preencher image Mapeie author para 'Manual text on each post' quando a variavel vier vazia - Elimine a duplicacao na fonte: Quando o duplicado vier do WooCommerce, desative o JSON-LD padrão dele para deixar so o schema do SEOPress. Quando vier de outro plugin de SEO ativo no mesmo site, desligue a saida de schema de um dos dois para não manter dois geradores no ar.
SEO -> PRO -> WooCommerce -> marcar 'Remove default JSON-LD structured data (WooCommerce 3+)' - Limpe o cache e revalide: Salve, limpe o cache de página e de objeto e rode a URL de novo no Rich Results Test até o erro sumir. No Search Console, peca a validação da correção no relatório de Aprimoramentos e aguarde, pois pode levar dias.
Limpar cache do plugin de cache e do CDN Search Console -> Aprimoramentos -> Validar correção
add_filter( 'seopress_pro_schemas_auto_article', function ( $schema ) {
// garante a propriedade obrigatoria 'image' quando o post nao tem imagem destacada
if ( empty( $schema['image'] ) ) {
$schema['image'] = 'https://exemplo.com.br/wp-content/uploads/logo-fallback.png';
}
// garante 'author' quando a variavel dinamica retorna vazia
if ( empty( $schema['author'] ) ) {
$schema['author'] = array(
'@type' => 'Person',
'name' => get_the_author_meta( 'display_name', get_post_field( 'post_author', get_the_ID() ) ),
);
}
return $schema;
} );














