Schema e rich snippets

aggregateRating do jeito certo: o campo que o Google rejeita em silêncio

É no aggregateRating que a maioria dos rich snippets de estrelas falha em silêncio. Os campos obrigatórios, as regras de honestidade e por que as suas estrelas não aparecem.

Por LucaAtualizado 2026-06-017 min

Quais campos o aggregateRating realmente exige?

O aggregateRating é um objeto pequeno, e as partes que importam são poucas. Você precisa de um ratingValue, a média das classificações, e de uma contagem de quantas avaliações geraram essa média. Essa contagem pode ser expressa como reviewCount (o número de avaliações escritas) ou ratingCount (o número de classificações, incluindo as notas de estrelas sem texto), mas pelo menos um dos dois precisa estar presente.

Todo o resto é opcional. bestRating e worstRating têm como padrão 5 e 1, então você os declara só se a sua escala for diferente. A maioria das lojas nunca vai precisar disso.

  • ratingValue: a média, por exemplo "4,6".
  • reviewCount ou ratingCount: pelo menos um é obrigatório.
  • bestRating: opcional, padrão é 5.
  • worstRating: opcional, padrão é 1.

reviewCount ou ratingCount: qual devo usar?

Use ratingCount quando o número inclui classificações por estrelas sem texto escrito, e reviewCount quando cada entrada do total é uma avaliação escrita de verdade. A distinção importa porque os dois números costumam ser diferentes, e declarar o errado infla o total de um jeito fácil de detectar.

Se cem clientes deram uma nota de estrelas e quarenta escreveram algo, reviewCount é 40 e ratingCount é 100. Você pode declarar os dois. O que não pode fazer é colocar 100 no reviewCount quando só existem 40 avaliações escritas, porque o nome do campo é uma afirmação sobre o que o número representa.

Por que a contagem no aggregateRating precisa bater com as avaliações visíveis na página?

As diretrizes de dados estruturados do Google exigem que o aggregateRating reflita avaliações que o usuário pode realmente ver naquela página. A contagem na marcação e as avaliações renderizadas na página precisam representar o mesmo conjunto. Quando divergem, a marcação é tratada como não representativa da página, o que é motivo para o rich snippet de estrelas ser retido.

Isso pega lojas que mostram dez avaliações em uma página de produto mas declaram uma contagem de duzentas no schema. A intenção pode ser honesta (o produto realmente tem duzentas avaliações em algum lugar), mas se a página só exibe dez, a marcação superestima o que a página contém.

Por que usar a média geral da loja no aggregateRating faz o Google rejeitar as estrelas?

Uma rejeição comum é aplicar uma classificação global única em todos os produtos. Uma loja calcula uma média única com todas as avaliações e a coloca em cada página de produto, então um produto recém-lançado herda a reputação de um best-seller. O Google considera isso enganoso, porque o aggregateRating em um Product é uma afirmação sobre aquele produto, não sobre a loja.

A inflação funciona do mesmo jeito: aumentar artificialmente a contagem, importar avaliações de uma variante descontinuada ou contar avaliações que não estão mais visíveis. Cada um faz com que a página exibida e a marcação declarada discordem, e é a discordância que derruba o snippet.

  • Uma média geral única reutilizada em todas as páginas de produto.
  • Uma contagem maior do que as avaliações que a página renderiza.
  • Avaliações importadas de outro produto ou variante.
  • Contagens que incluem avaliações ocultas, removidas ou não publicadas.

Como verificar se o aggregateRating está correto?

Leia o HTML renderizado, não o Widget. Abra a página de produto, veja o código-fonte ou use o Rich Results Test, e confirme que o objeto aggregateRating está presente no HTML do servidor com um ratingValue e uma contagem. Depois conte as avaliações realmente exibidas na página e verifique se os dois números contam a mesma história.

O Rich Results Test vai apontar campos obrigatórios ausentes, mas não vai detectar um número aparentemente correto que superestima a página. Isso é responsabilidade sua: a ferramenta valida a estrutura, não a veracidade. Uma contagem de trezentas ao lado de doze avaliações visíveis passa no validador e ainda corre risco de rejeição manual.

Por que as estrelas não aparecem mesmo com a marcação validada?

A validação confirma a sintaxe, não a elegibilidade. O aggregateRating pode estar perfeitamente formado e ainda não gerar estrelas se a contagem contradiz a página visível, se a marcação é injetada por um script que o rastreador não executa, ou se o Google simplesmente opta por não exibir o snippet para aquela busca. Os dois primeiros são corrigíveis; o terceiro é decisão deles.

O problema da injeção é o mais silencioso. Muitos apps de avaliações renderizam a classificação em um Widget JavaScript após o carregamento da página, então o aggregateRating que o cliente vê nunca chega ao HTML que o rastreador lê. O campo está correto. Ele simplesmente não está onde o rastreador procura.

O que garante um aggregateRating correto em qualquer situação?

Um aggregateRating correto é renderizado no servidor, específico por produto e honesto: o ratingValue e a contagem ficam no HTML da página antes de qualquer script ser executado, descrevem aquele produto (não a loja inteira) e a contagem bate com as avaliações da página. A maioria dos apps de avaliações foi construída para o cliente na página e renderiza as estrelas em um Widget, o que parece certo e lê errado para um rastreador. Colocar a classificação que você já tem na marcação legível, por produto e com contagem precisa, para que conquiste o snippet na busca e continue citável em resultados de IA, é a lacuna que o BeyondReviews foi criado para fechar.

2 campos
ratingValue mais um reviewCount ou ratingCount: o mínimo para um aggregateRating válido
Google structured data guidelines, 2024
1:1
A contagem na marcação precisa bater com as avaliações realmente visíveis na página
Google structured data guidelines, 2024
Média geral
Usar uma média geral da loja ou inflada em um produto é uma razão comum de rejeição
Schema rejection synthesis, 2025
Perguntas frequentes
Preciso declarar os dois, reviewCount e ratingCount?
Não, você precisa de pelo menos um. Use reviewCount quando cada entrada é uma avaliação escrita, e ratingCount quando o total inclui classificações por estrelas sem texto. Você pode declarar os dois se tiver os dois números, mas não declarar nenhum invalida o aggregateRating.
Posso usar a média geral da loja em todos os produtos?
Não. O aggregateRating em um Product é uma afirmação sobre aquele produto, então uma média geral da loja aplicada em todas as páginas é tratada como enganosa e é uma razão comum para as estrelas serem retidas. Cada produto precisa da sua própria classificação e da sua própria contagem.
Preciso declarar o bestRating?
Só se a sua escala não for de 5. bestRating tem como padrão 5 e worstRating tem como padrão 1, então uma loja com cinco estrelas padrão pode omitir os dois. Declare-os quando você avalia em escala de 10 ou qualquer outra escala, para que o ratingValue seja lido corretamente.
Minha marcação está validada, mas ainda não aparecem estrelas. Por quê?
A validação verifica a sintaxe, não a elegibilidade. As causas mais prováveis são uma contagem que contradiz as avaliações visíveis, marcação injetada por um script que o rastreador não executa, ou o Google optando por não exibir o snippet para aquela busca. Verifique o HTML renderizado e a contagem visível primeiro.