Novos dados estruturados do Google melhoram o SEO de produtos

13/07/2026 | SEO

Dados estruturados do Google para produtos e ofertas

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 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:

  • @type com o valor CategoryCode;
  • inCodeSet apontando para uma URL da taxonomia de produtos do Google;
  • codeValue contendo 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:

  • category em texto simples se aproxima de product_type;
  • CategoryCode se aproxima de google_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 validFrom seja 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

  1. Confirme se a página usa o tipo Product e uma estrutura de oferta compatível.
  2. Adicione category em texto, como CategoryCode ou com os dois formatos.
  3. Use a GPC correspondente ao produto e mantenha a classificação igual à do feed.
  4. Defina o início e o fim das promoções no nó que contém o preço promocional.
  5. Inclua datas em ISO 8601, preferencialmente com horário e fuso.
  6. Não utilize priceValidUntil dentro de PriceSpecification.
  7. Remova ou atualize automaticamente datas vencidas.
  8. Compare página, JSON-LD e feed para evitar valores contraditórios.
  9. Teste a marcação com o Teste de pesquisa aprimorada.
  10. 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.

Desenvolvido por Daniel Peres

Sou Daniel Peres, profissional de WordPress há mais de 10 anos e formado em Sistemas para Internet pelo CEFET-RJ. Atuo com desenvolvimento, SEO, performance, segurança e manutenção de sites para empresas e agências.