SEO Brain
Mais artigos de SEO para E-commerce
SEO para E-commerce SEO E-commerce Dados Estruturados SEO Técnico

Schema de produto no e-commerce: guia de implementação de dados estruturados para lojas virtuais

Equipe SEO Brain 8 min de leitura

Implementar schema de produto no e-commerce significa adicionar ao HTML de cada página de produto um bloco de dados estruturados (de preferência em JSON-LD) do tipo Product, com uma Offer que informe preço, moeda e disponibilidade. Esse código ajuda o Google a entender, sem ambiguidade, o que está à venda, por quanto e em que condição, e torna a página elegível para resultados enriquecidos com preço, estoque e avaliações.

A marcação não garante destaque na busca, já que o Google decide quando exibir cada recurso. Mas sem ela, ou com ela mal implementada, a loja fica de fora de formatos que concorrentes já ocupam. Este guia é o passo a passo técnico: o que marcar, como estruturar o JSON-LD, como lidar com variações e como validar em escala.

Snippet de produto e listagem do comerciante: dois usos do mesmo schema

A documentação do Google separa a marcação de produto em duas experiências, e entender a diferença evita marcação incompleta:

  • Snippet de produto (product snippet): vale para páginas que falam de produtos, inclusive reviews e comparativos que não vendem nada. Pode exibir avaliação, faixa de preço e prós e contras.
  • Listagem do comerciante (merchant listing): vale para páginas onde o usuário pode comprar o produto. Exige mais dados e pode alimentar experiências de Shopping, painéis de produto e resultados com informações de frete e devolução.

Para uma loja virtual, o alvo é a listagem do comerciante. Por isso, siga a lista de propriedades dela, que é mais exigente, e você automaticamente cobre o snippet de produto.

Propriedades obrigatórias e recomendadas

Segundo a documentação de listagem do comerciante do Google Search Central, a base é esta:

PropriedadeOnde ficaStatusObservação prática
nameProductObrigatóriaIgual ao nome visível na página
imageProductObrigatóriaURLs absolutas; várias proporções ajudam
offersProductObrigatóriaUse Offer, não AggregateOffer, na listagem do comerciante
priceOfferObrigatóriaNúmero sem símbolo de moeda, ponto como separador decimal
priceCurrencyOfferObrigatóriaBRL para real
availabilityOfferRecomendadaValores do schema.org, como InStock e OutOfStock
itemConditionOfferRecomendadaNewCondition, UsedCondition, RefurbishedCondition
shippingDetailsOfferRecomendadaCusto e prazo de entrega
hasMerchantReturnPolicyOfferRecomendadaPolítica de devolução
brand, gtin, skuProductRecomendadasIdentificadores que ajudam a casar o produto com o catálogo do Google
aggregateRating, reviewProductRecomendadasSó com avaliações reais exibidas na página

Uma regra vale para todas: o que está no schema precisa estar visível na página. Preço diferente, estoque desatualizado ou avaliação que o usuário não vê são motivos clássicos para o Google ignorar a marcação ou, em casos de abuso, aplicar ação manual.

Exemplo de JSON-LD de produto completo

O exemplo abaixo é hipotético (uma loja fictícia vendendo um tênis), mas segue a estrutura que o Google documenta. Ele vai dentro de uma tag <script type="application/ld+json"> no HTML da página de produto:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Tênis de Corrida Leve Pro - Azul",
  "description": "Tênis de corrida com cabedal em malha respirável e entressola de espuma para treinos de média distância.",
  "image": [
    "https://www.lojaexemplo.com.br/img/tenis-leve-pro-azul-1x1.jpg",
    "https://www.lojaexemplo.com.br/img/tenis-leve-pro-azul-4x3.jpg",
    "https://www.lojaexemplo.com.br/img/tenis-leve-pro-azul-16x9.jpg"
  ],
  "sku": "TLP-AZ-42",
  "gtin13": "7890000000000",
  "brand": {
    "@type": "Brand",
    "name": "Marca Exemplo"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "38"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.lojaexemplo.com.br/tenis-de-corrida-leve-pro-azul",
    "priceCurrency": "BRL",
    "price": "399.90",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "0",
        "currency": "BRL"
      },
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "BR"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": 0,
          "maxValue": 1,
          "unitCode": "DAY"
        },
        "transitTime": {
          "@type": "QuantitativeValue",
          "minValue": 2,
          "maxValue": 7,
          "unitCode": "DAY"
        }
      }
    },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "applicableCountry": "BR",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 7,
      "returnMethod": "https://schema.org/ReturnByMail",
      "returnFees": "https://schema.org/FreeReturn"
    }
  }
}

Pontos de atenção no exemplo:

  • O GTIN acima é um valor ilustrativo. Use o código real do produto ou omita o campo; GTIN inventado é pior que nenhum.
  • aggregateRating só deve existir se as avaliações estiverem publicadas na própria página e vierem de clientes reais.
  • Frete e devolução também podem ser declarados uma única vez, no nível da organização, em vez de repetidos em cada produto. Avalie qual opção a sua plataforma gera com mais confiabilidade.

Produtos com variações (cor, tamanho, voltagem)

Variações são o ponto em que mais lojas erram. Existem dois cenários comuns:

  1. Uma URL por variação (por exemplo, /tenis-leve-pro-azul e /tenis-leve-pro-preto): cada página leva um Product próprio, com preço e estoque daquela variação.
  2. Uma URL com seletor de variação: o Google documenta o tipo ProductGroup, com hasVariant listando cada Product filho e variesBy indicando o atributo que muda (cor, tamanho etc.). O identificador comum do grupo vai em productGroupID.

O erro mais frequente é marcar apenas a variação padrão e deixar availability como InStock mesmo quando aquele tamanho está esgotado. Se o estoque é por variação, a marcação também precisa ser. Quando o produto inteiro sai de linha, a forma de tratar a página muda; detalhamos isso no artigo sobre produto esgotado e SEO.

Implementação: renderização, templates e escala

Em uma loja com milhares de SKUs, ninguém escreve JSON-LD à mão. A marcação nasce no template de produto e puxa os campos do banco de dados. Alguns cuidados:

  • Prefira o HTML inicial. A documentação de listagem do comerciante recomenda colocar os dados estruturados de produto no HTML inicial e alerta que marcação gerada por JavaScript pode tornar o rastreamento de Shopping menos frequente e menos confiável.
  • Uma fonte de verdade. Preço e estoque do schema devem sair do mesmo lugar que alimenta a vitrine e o feed do Merchant Center. Divergência entre os três é uma das causas mais comuns de reprovação de itens.
  • Elimine marcações duplicadas. Tema, app de avaliações e plugin de SEO podem gerar, cada um, o seu bloco Product. Resultado: dois produtos com preços diferentes na mesma página. Escolha uma fonte e desligue as outras.
  • Formato numérico. 399.90, nunca R$ 399,90. Vírgula decimal e símbolo de moeda quebram a leitura do preço.
  • Complemente com outros tipos. BreadcrumbList na página de produto e Organization na home reforçam o contexto. O panorama de todos os tipos está no nosso guia de schema markup e dados estruturados.

Como validar e monitorar

Validar uma vez não basta, porque preço e estoque mudam todo dia. Um fluxo prático:

  1. Antes de publicar: teste URLs de amostra (produto simples, com variação, esgotado, em promoção) no Teste de pesquisa aprimorada do Google e corrija todos os erros críticos.
  2. Depois de publicar: use a Inspeção de URL do Search Console para confirmar que o Google vê a marcação na versão renderizada.
  3. No dia a dia: acompanhe os relatórios de aprimoramento de produtos e de listagens do comerciante no Search Console. Picos de erros costumam coincidir com troca de tema, instalação de app ou mudança no cadastro.
  4. Amostragem periódica: compare, em uma amostra de produtos, preço e disponibilidade do schema com o que aparece na tela e no feed.

Erros comuns que travam os resultados enriquecidos

  • Avaliações marcadas sem estarem visíveis, ou copiadas de outro site.
  • price com zero para produtos “sob consulta”. Se não há preço público, não há listagem do comerciante para aquele item.
  • priceValidUntil com data já vencida, esquecida desde a última promoção.
  • Uso de AggregateOffer na página de um único vendedor, que não atende a listagem do comerciante.
  • Imagens bloqueadas no robots.txt ou servidas só via JavaScript.
  • Marcação de produto em páginas de categoria, apontando vários produtos como se fossem a entidade principal da página.

Perguntas frequentes

Schema de produto melhora o ranqueamento?

Dados estruturados não são, por si, um fator de ranqueamento direto. O ganho está na elegibilidade para resultados enriquecidos, que podem tornar o resultado mais informativo e atrativo no clique. Eles também reduzem a ambiguidade sobre preço e disponibilidade, o que ajuda o Google a exibir o produto nas experiências certas.

Preciso usar JSON-LD ou posso usar microdados?

O Google aceita JSON-LD, microdados e RDFa. Na prática, JSON-LD é o mais simples de manter, porque fica num bloco separado do layout e não quebra quando o tema muda. Para lojas que trocam de tema com frequência ou usam vários apps, essa separação evita muita dor de cabeça.

Posso marcar avaliações importadas de marketplaces?

O caminho seguro é marcar apenas avaliações coletadas e exibidas na própria página do produto, de clientes reais. Importar notas de terceiros sem exibi-las de forma transparente, ou selecionar só as positivas, contraria as diretrizes de dados estruturados e pode levar o Google a desconsiderar a marcação.

Schema de produto bem feito é menos sobre o código e mais sobre consistência: o mesmo preço, o mesmo estoque e as mesmas avaliações na tela, no JSON-LD e no feed. Ele é uma das peças do quadro maior descrito no nosso guia completo de SEO para e-commerce. Se você quer auditar a marcação do catálogo inteiro e corrigir templates sem quebrar a loja, conheça a nossa consultoria de SEO para e-commerce.

Fontes

Seu schema de produto está gerando erros no Search Console? Fale com a nossa equipe e receba uma análise gratuita do seu site.

Vamos Conversar

Contrate Seu Especialista em SEO

Solicite uma análise gratuita do seu site e descubra como nossa Consultoria em SEO pode aumentar seu tráfego orgânico

Entre em contato

Estamos prontos para ajudar sua empresa a crescer organicamente. Entre em contato e receba uma análise personalizada.

E-mail

contato@seobrain.com.br

WhatsApp

(11) 96141-2794

Localização

São Paulo, Brasil