Schema.org Product: como configurar e por que monitorar (rich snippets)
Snippet rico com preço e estrela aumenta CTR em até 35% — e some sem aviso quando alguém atualiza um template. Veja como configurar Schema.org direito e monitorar pra nunca perder.
- O que é
Product+Offer+AggregateRatingem Schema.org — e por que são 3 coisas distintas. - JSON-LD válido x snippet rico exibido: por que o Google às vezes ignora o seu Schema correto.
- Os 6 erros que fazem o snippet sumir sem aviso.
- Como monitorar Schema.org em produção pra detectar regressão em horas, não meses.
Snippet rico no Google é o que separa a sua loja — com preço e avaliação na busca — da loja do concorrente, que mostra só "Sua loja - Comprar online". Em e-commerce brasileiro, a diferença de CTR entre ter ou não ter rich snippet chega a +35% em pesquisas de produto específico. E quando você o perde por um bug de template, ninguém percebe — até a planilha de receita do mês cair.
Product structured dataPor que isso importa em e-commerce
Schema.org é vocabulário, JSON-LD é formato. [1] O Google lê o JSON-LD da sua página, entende que aquilo é um produto com preço, e — se tudo estiver certo — exibe o rich snippet na busca. Isso afeta três coisas, todas com peso financeiro:
- CTR na SERP (Search Engine Results Page).
- Elegibilidade para Google Shopping orgânico (Free Listings).
- Sinal de qualidade que indiretamente afeta ranking.
A estrutura mínima de Product em JSON-LD
Para o Google exibir snippet rico com preço, estoque e avaliação, você precisa marcar 3 tipos:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Notebook Acer Aspire 5 i5 8GB 512GB SSD",
"image": [
"https://loja.exemplo/img/notebook-1200.jpg",
"https://loja.exemplo/img/notebook-800.jpg"
],
"description": "Notebook Acer Aspire 5 com Intel Core i5...",
"sku": "ACER-A515-571G",
"gtin13": "7891234567890",
"brand": { "@type": "Brand", "name": "Acer" },
"offers": {
"@type": "Offer",
"url": "https://loja.exemplo/produto/notebook-acer",
"priceCurrency": "BRL",
"price": "3499.00",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "127"
}
}
</script>Os 6 erros que fazem o snippet sumir
1. price como string com vírgula
Brasil usa vírgula como separador decimal. JSON-LD usa ponto. "price": "3.499,00" é inválido. Tem que ser "price": "3499.00". Erro número um em template brasileiro genérico.
2. availability com texto livre
O Google espera URLs Schema.org, não strings:
| ❌ Errado | ✅ Certo |
|---|---|
"availability": "Em estoque" | "availability": "https://schema.org/InStock" |
"availability": "Indisponível" | "availability": "https://schema.org/OutOfStock" |
"availability": "Sob encomenda" | "availability": "https://schema.org/PreOrder" |
3. AggregateRating sem reviewCount > 0
Cair em "reviewCount": "0" ou ausente faz o Google rejeitar oAggregateRating inteiro — você perde as estrelas. Se você não tem reviews, não inclua o bloco, deixe ausente em vez de zerado.
4. Product dentro de iframe ou carregado por JS
Google rasteia HTML inicial. JSON-LD que aparece só depois de chamada JavaScript pode passar batido. Em SPA (Single Page Application) e PWA Magento, isso é recorrente — o conteúdo precisa estar no HTML renderizado pelo servidor.[3]
5. image com URL relativa ou imagem fora de proporção
URLs absolutas, com https://. Tamanho mínimo recomendado de 1200 × 1200 px para imagens de produto. Imagem muito pequena ou com proporção quebrada pode fazer o Google ignorar o snippet inteiro.
6. priceValidUntil no passado
Se o template setou priceValidUntil com data fixa (ex.: "2024-12-31") e ela passou, o Google remove o preço do snippet. Soluções: tirar o campo, ou setar dinamicamente uma data 30+ dias no futuro.
Como testar de fato
Validação pontual
- Rich Results Test do Google — search.google.com/test/rich-results. Diz se você é elegível e mostra erros específicos.
- Schema Markup Validator — validator.schema.org. Mais técnico, mostra warnings (não fatais para o Google) que valem corrigir.
- Nosso validador de dados estruturados — versão simplificada que extrai os blocos JSON-LD e mostra erros.
Search Console
O relatório Aprimoramentos → Produto do Search Console mostra quantas URLs têm Schema válido, quantas têm warning e quantas estão com erro. Confira semanalmente — picos súbitos de erro indicam regressão de template.
Monitoramento contínuo
Para detectar regressão em horas, configure um teste sintético que baixe HTML de uma página de produto a cada hora, extraia o bloco application/ld+json e valide contra o esquema mínimo. Alerte se sumir, ficar inválido ou perder campo essencial.
É exatamente o que a Especialista Loja Virtual faz — incluindo comparação com baseline e alerta no Discord/Slack quando preço/estoque some do JSON-LD.
/staging/ que estava igual em prod. Demorou 6 dias para alguém perceber. Recuperação completa levou 4 semanas.Além de Product: o que mais marcar
- BreadcrumbList em categoria e produto — para o Google mostrar breadcrumb na SERP em vez de URL.
- Organization ou LocalBusiness (se você tem loja física) na home — afeta knowledge panel.
- WebSite + SearchAction — habilita sitelinks searchbox em marcas conhecidas.
- FAQPage em página de produto com perguntas reais — gera accordion direto na SERP. Atenção: o Google reduziu drasticamente a exibição de FAQ em 2023, mas ainda aparece em buscas informacionais. [4]
Resumo prático
- Use JSON-LD, não Microdata. Coloque no
<head>ou final do<body>, renderizado pelo servidor. - Em
price: ponto decimal, número, sem moeda no campo. - Em
availability: sempre URL Schema.org. - Em
AggregateRating: só inclua se tiver reviews reais (> 0). - Monitore Search Console + valide automaticamente em prod. Snippet sumindo devagar é o pior — mais barato detectar em 24h do que em 30 dias.
Referências
- Schema.org. Product type — official documentation. schema.org/Product
- Google Search Central. Product structured data — JSON-LD recommended. developers.google.com/search/docs/appearance/structured-data/product
- Google Search Central. JavaScript SEO basics — Render-blocking and timing. developers.google.com/search/docs/crawling-indexing/javascript
- Search Engine Land. Google FAQ rich results visibility changes (Aug 2023). searchengineland.com
- HTTP Archive Web Almanac 2024. Structured Data chapter. almanac.httparchive.org/en/2024/structured-data
- Ahrefs. The impact of rich snippets on CTR — study of 2M SERPs. ahrefs.com/blog
Perguntas frequentes
- JSON-LD ou Microdata?
- JSON-LD, recomendado oficialmente pelo Google desde 2016. É mais limpo (separado do HTML), fácil de versionar e menos suscetível a bugs em mudança de tema. Microdata ainda funciona, mas é fonte recorrente de regressão.
- Por que tenho Schema válido mas o Google não exibe rich snippet?
- Google exibe rich snippet se: (1) o Schema é válido; (2) a qualidade do conteúdo é boa; (3) a URL é considerada confiável. Schema correto é necessário, não suficiente. Verifique também sinais de qualidade da página (Core Web Vitals, links externos, autoridade do domínio).
- AggregateRating sem reviews pode ficar ausente?
- Sim, deve ficar ausente. Incluir o bloco com "reviewCount: 0" faz o Google rejeitar o AggregateRating inteiro — você perde as estrelas em todas as buscas. Melhor não ter o bloco do que ter zerado.
Continue lendo
Monitore tudo isso automaticamente
A Especialista Loja Virtual roda navegação real no seu site a cada poucos minutos, alerta no Discord, Slack ou e-mail e mostra screenshot do incidente. Comece grátis.
