Implementação de Dados Estruturados de Produto

Objetivo

Este guia orienta agências parceiras na correta implementação de dados estruturados de Produto (Product) e Oferta (Offer) em páginas de produto (PDP) das lojas Wake.
O objetivo é garantir conformidade com as diretrizes do Google, habilitar resultados enriquecidos (rich snippets), aumentar a visibilidade orgânica e reduzir erros no Search Console.

Quando aplicar

  • Apenas em páginas de produto com compra possível (1 produto por URL).
  • Variantes (cor, tamanho, etc.) devem refletir a seleção atual da PDP.
  • O JSON-LD deve ser renderizado no HTML inicial (SSR) para preço e estoque.

📘

É bom saber:

O JSON-LD (JavaScript Object Notation-Linked Data) é um formato de dados estruturados recomendado pelo Google para descrever o conteúdo de uma página de forma legível por máquinas.

Na prática, ele é inserido dentro da página como um bloco <script type="application/ld+json"> que não afeta o que o usuário vê, mas dá ao Google e outros motores de busca informações organizadas sobre produtos, ofertas, artigos, eventos etc.

Campos mínimos obrigatórios

O Google exige o preenchimento correto dos seguintes campos:

  • Product.name → Nome do produto.
  • Product.image[] → URLs de imagens rastreáveis (formatos 1:1, 4:3, 16:9).
  • Product.offers com:
    • Offer.price → Preço ativo (> 0).
    • Offer.priceCurrency → Código da moeda ISO 4217 (ex.: BRL).
    • Offer.availability → Disponibilidade (ex.: https://schema.org/InStock).
    • Offer.url → URL canônica da PDP.

Campos recomendados (prioridade alta)

Sempre que disponíveis:

  • sku (SKU interno).
  • gtin (8, 12, 13 ou 14).
  • brand.name (marca).
  • color, size, material, pattern.;
  • aggregateRating e review (quando houver avaliações).
  • itemCondition (novo, usado, etc.).

Preços e promoções

  • Preço ativo: usar offers.price.
  • Preço promocional: offers.price recebe o valor atual; adicionar UnitPriceSpecification com priceType: "StrikethroughPrice" para o preço original.
  • Preço para membros: usar UnitPriceSpecification com validForMemberTier.

Frete e devolução

  • shippingDetails (recomendado):;
    • shippingRate (mesma moeda do preço).
    • shippingDestination.addressCountry (código ISO-2, ex.: "BR").
    • deliveryTime (handlingTime + transitTime).
  • Política de devolução: preferir configuração global na Organization, só usar hasMerchantReturnPolicy no produto em casos específicos.

Exemplo mínimo (Wake placeholders)

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "{{ product.name }}",
  "image": [
    "{{ product.image_1x1_url }}",
    "{{ product.image_4x3_url }}",
    "{{ product.image_16x9_url }}"
  ],
  "sku": "{{ product.sku }}",
  "brand": { "@type": "Brand", "name": "{{ product.brand_name }}" },
  "description": "{{ product.short_description | strip_html | truncate: 500 }}",
  "offers": {
    "@type": "Offer",
    "url": "{{ request.canonical_url }}",
    "priceCurrency": "{{ product.currency_code }}",
    "price": {{ product.price }},
    "availability": "https://schema.org/{{ product.availability_schema_enum }}",
    "itemCondition": "https://schema.org/{{ product.item_condition_schema_enum }}"
  }
}
</script>

QA e validação

  1. Validar cada template no Rich Results Test (https://search.google.com/test/rich-results).
  2. Testar URLs no Search Console → Inspeção de URL e solicitar recrawl.
  3. Monitorar relatórios de Snippets de produto e Informações de produtos do comerciante no Search Console.