O Google atualizou a documentação de dados estruturados para listagens comerciais com orientações que tornam a marcação de produtos mais detalhada. A principal novidade é o suporte documentado à propriedade category em Product. A empresa também esclareceu como informar o período de validade de preços promocionais com validFrom, validThrough e priceValidUntil.
Para lojas virtuais, essas mudanças ajudam a aproximar os dados estruturados para produtos presentes na página das informações enviadas pelo Google Merchant Center. Assim, categoria, preço e duração de ofertas podem ser interpretados a partir do próprio site, sem depender exclusivamente do feed.
A propriedade de categoria é recomendada, não obrigatória. Ainda assim, ela pode oferecer ao Google um contexto mais granular sobre cada item e reduzir diferenças entre a classificação da página e a classificação usada no Merchant Center.
- O que mudou nos dados estruturados de listagens comerciais
- A nova propriedade category
- Relação com os feeds do Merchant Center
- Novas orientações para a duração de promoções
- Onde colocar validFrom, validThrough e priceValidUntil
- Como a duração da oferta se relaciona ao feed
- Benefícios para SEO de e-commerce
- Checklist de implementação
- Validação e monitoramento
O que mudou nos dados estruturados de listagens comerciais
A atualização se concentra em duas áreas:
- a classificação de produtos pela propriedade
category; - a definição do início e do fim de preços promocionais.
Antes de analisar a implementação, vale distinguir dois conceitos do Schema.org. Um Type classifica a entidade representada — por exemplo, Product informa que o objeto é um produto. Uma Property descreve uma característica dessa entidade, como nome, marca, preço ou categoria.
Nesse contexto, Product continua sendo o tipo principal, enquanto category passa a fornecer informações adicionais sobre a classificação do item.
A nova propriedade category
A propriedade category aceita duas formas de valor:
- texto simples, para uma categoria personalizada definida pelo próprio lojista;
- objeto
CategoryCode, para uma categoria pertencente à taxonomia de produtos do Google.
Também é permitido usar uma lista que combine textos e objetos estruturados. Isso significa que a página pode informar simultaneamente a organização interna da loja e uma ou mais categorias oficiais do Google.
Categoria em texto simples
O texto simples funciona de maneira semelhante ao atributo product_type de um feed do Merchant Center. Ele representa uma classificação criada pelo próprio negócio, sem obrigação de seguir a taxonomia do Google.
Uma loja de moda, por exemplo, poderia utilizar:
"category": "Moda feminina > Vestidos > Vestidos de festa"
A documentação recomenda manter cada tipo personalizado dentro do limite de 750 caracteres. Embora seja possível criar caminhos extensos, a categoria deve continuar clara e útil para identificar o produto.
Google Product Category com CategoryCode
Quando a intenção é informar uma categoria oficial do Google, deve-se usar o tipo CategoryCode. Ele corresponde ao atributo google_product_category dos feeds.
O objeto exige três componentes:
@typecom o valorCategoryCode;inCodeSetapontando para uma URL da taxonomia de produtos do Google;codeValuecontendo o ID numérico da categoria ou seu caminho completo.
Um exemplo com o ID da categoria:
"category": {
"@type": "CategoryCode",
"inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
"codeValue": "2271"
}
Também é possível usar o caminho:
"category": {
"@type": "CategoryCode",
"inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
"codeValue": "Apparel & Accessories > Clothing > Dresses"
}
No formato de caminho, o sinal > deve separar os níveis. Cada segmento precisa conter pelo menos uma letra. IDs formados apenas por números também são aceitos.
Como combinar várias categorias
A propriedade aceita um array com vários códigos, caminhos e categorias personalizadas. Essa flexibilidade é útil quando o catálogo precisa manter classificações diferentes para fins internos e para o Google.
"category": [
{
"@type": "CategoryCode",
"inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
"codeValue": "2271"
},
{
"@type": "CategoryCode",
"inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
"codeValue": "Apparel & Accessories > Clothing > Dresses"
},
"Vestidos",
"Ocasiões especiais > Casamentos > Vestidos"
]
Não é necessário escolher entre a categoria personalizada e a GPC. As duas podem coexistir desde que representem corretamente o mesmo produto.
Relação com os feeds do Merchant Center
A marcação cria uma correspondência direta entre a página e dois atributos conhecidos dos feeds:
categoryem texto simples se aproxima deproduct_type;CategoryCodese aproxima degoogle_product_category.
Com isso, o lojista pode declarar na página informações que antes costumavam aparecer apenas no feed. O objetivo não é substituir o Merchant Center, mas manter as fontes coerentes.
Se a página diz que o produto pertence a uma categoria e o feed informa outra classificação incompatível, o Google terá sinais divergentes. Por isso, o ideal é gerar a marcação a partir da mesma base de dados usada no catálogo e no feed.
Novas orientações para a duração de promoções
A segunda parte da atualização detalha como indicar o intervalo em que um preço promocional está ativo. Três propriedades participam desse processo:
validFrom: data ou data e hora em que o preço começa a valer;validThrough: data ou data e hora em que o preço deixa de valer;priceValidUntil: data após a qual o preço não estará mais disponível.
validFrom e validThrough aceitam Date ou DateTime. priceValidUntil é documentado como Date, embora a orientação sobre duração de ofertas enfatize o uso do formato ISO 8601 com precisão suficiente para o período configurado.
Um valor com data, horário e fuso pode assumir esta forma:
2026-11-30T23:59:59-03:00
O horário e o fuso reduzem ambiguidades, principalmente em campanhas nacionais, lançamentos programados e operações que atendem regiões diferentes.
Boas práticas para datas promocionais
O Google recomenda:
- informar tanto o início quanto o término da promoção;
- garantir que
validFromseja anterior ou igual à data final; - usar ISO 8601;
- incluir horário e fuso quando possível;
- atualizar a marcação assim que a oferta for encerrada ou prorrogada.
Uma data passada em priceValidUntil pode impedir que a listagem seja exibida. Portanto, deixar promoções vencidas no código não é apenas um problema de precisão: pode afetar a presença do produto nas experiências comerciais da pesquisa.
Onde colocar validFrom, validThrough e priceValidUntil
O local correto depende de onde o preço promocional foi definido.
Preço promocional diretamente em Offer
Quando price no nó Offer representa o preço atual da promoção, as datas podem ser colocadas diretamente nesse mesmo nó. O início usa validFrom; para o encerramento, pode-se usar validThrough ou priceValidUntil.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Produto de exemplo",
"offers": {
"@type": "Offer",
"url": "https://exemplo.com.br/produto",
"price": 89.90,
"priceCurrency": "BRL",
"validFrom": "2026-11-20T08:00:00-03:00",
"priceValidUntil": "2026-11-30T23:59:59-03:00",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"priceType": "https://schema.org/StrikethroughPrice",
"price": 119.90,
"priceCurrency": "BRL"
}
}
}
Nesse exemplo, price contém o valor promocional, enquanto a especificação com StrikethroughPrice representa o preço anterior riscado.
Preço promocional em PriceSpecification
Outra opção é representar o preço promocional e o preço anterior em objetos separados de UnitPriceSpecification. Nesse caso, validFrom e validThrough devem ficar no objeto que contém o preço da promoção.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Produto de exemplo",
"offers": {
"@type": "Offer",
"priceSpecification": [
{
"@type": "UnitPriceSpecification",
"price": 89.90,
"priceCurrency": "BRL",
"validFrom": "2026-11-20T08:00:00-03:00",
"validThrough": "2026-11-30T23:59:59-03:00"
},
{
"@type": "UnitPriceSpecification",
"priceType": "https://schema.org/StrikethroughPrice",
"price": 119.90,
"priceCurrency": "BRL"
}
]
}
}
Há uma restrição importante: priceValidUntil não se aplica ao tipo PriceSpecification. Quando a validade está dentro desse objeto, use validFrom e validThrough.
Como a duração da oferta se relaciona ao feed
As datas da página cumprem função semelhante ao atributo sale_price_effective_date do Merchant Center. Assim como ocorre com a categoria, a informação deixa de existir somente no feed e passa a ser comunicada também pela marcação da página.
Isso ajuda o Google a manter os preços promocionais mais precisos nos resultados. Também diminui o risco de uma oferta vencida continuar sendo apresentada ou de uma promoção válida não ter seu período claramente compreendido.
Benefícios para SEO de e-commerce
Dados estruturados não garantem posições melhores nem a exibição de um resultado enriquecido. A contribuição está na qualidade e na consistência das informações que o Google consegue interpretar.
Com a atualização, os lojistas ganham meios de:
- descrever categorias internas e oficiais na própria página;
- alinhar a marcação aos atributos do Merchant Center;
- informar com precisão quando uma promoção começa e termina;
- reduzir discrepâncias de preço e classificação;
- facilitar a manutenção de catálogos com muitas ofertas;
- fornecer dados mais completos para experiências de compras na pesquisa.
O benefício depende da implementação. Dados incorretos, desatualizados ou diferentes do conteúdo visível podem causar alertas e comprometer a elegibilidade das listagens.
Checklist de implementação
- Confirme se a página usa o tipo
Producte uma estrutura de oferta compatível. - Adicione
categoryem texto, comoCategoryCodeou com os dois formatos. - Use a GPC correspondente ao produto e mantenha a classificação igual à do feed.
- Defina o início e o fim das promoções no nó que contém o preço promocional.
- Inclua datas em ISO 8601, preferencialmente com horário e fuso.
- Não utilize
priceValidUntildentro dePriceSpecification. - Remova ou atualize automaticamente datas vencidas.
- Compare página, JSON-LD e feed para evitar valores contraditórios.
- Teste a marcação com o Teste de pesquisa aprimorada.
- Depois da publicação, acompanhe o Google Search Console.
Validação e monitoramento
O Google recomenda validar os dados estruturados antes da implantação, publicar inicialmente em um conjunto pequeno de páginas e verificar como o buscador interpreta cada URL. A página deve estar acessível ao Google, sem bloqueio por robots.txt, noindex ou autenticação.
Após a atualização, o recrawl e a reindexação podem levar algum tempo. O sitemap ajuda a comunicar mudanças futuras, mas não substitui a manutenção correta das informações do catálogo.
A referência técnica completa está na documentação de dados estruturados para listagens comerciais do Google.
Este conteúdo apresenta uma reescrita editorial original baseada na análise de Roger Montti para o Search Engine Journal, complementada e conferida com a documentação oficial do Google.


