Schema.org JSON-LD: dados estruturados para a Pesquisa do Google

Como escolher, gerar e validar dados estruturados que correspondam ao conteúdo visível e continuem elegíveis a resultados avançados, sem garantir a exibição deles.

Os dados estruturados do Schema.org são um vocabulário que os mecanismos de busca usam para entender o conteúdo da página. Implementados corretamente, eles transformam um snippet comum em um resultado avançado — com estrelas de avaliação, preços de produtos, horário de funcionamento ou fotos exibidos diretamente nos resultados de pesquisa do Google.

Este artigo cobre o sistema completo: da escolha do formato e da priorização dos schemas até o código JSON-LD concreto para Organization, Product, AggregateRating, Review e ImageObject — com atenção especial aos subtipos que costumam passar despercebidos.

O caminho do JSON-LD: a marcação dentro de <script> → o Google interpreta a estrutura → snippet avançado com estrelas de avaliação e preço direto na SERP.
O Google recomenda oficialmente o JSON-LD como formato preferido. Diferentemente de Microdata e RDFa, o JSON-LD fica dentro de uma tag <script> e não é incorporado à marcação HTML — o que facilita a manutenção e a atualização independentemente do layout.

O que é o Schema.org e por que usar dados estruturados

O Schema.org é um projeto conjunto do Google, Bing, Yahoo e Yandex, lançado em 2011. O vocabulário tem mais de 900 tipos de dados e milhares de propriedades. Todos os tipos herdam do Thing, a raiz, e se ramificam em Person, Organization, Product, Event, CreativeWork, Action e outros.

Visível

Corresponder à página

A marcação deve descrever informações que o leitor pode ver e verificar.

Elegível

Seguir as regras do recurso

Use um tipo suportado e atenda às diretrizes de conteúdo e técnicas dele.

Validar

Testar o grafo

Verifique a sintaxe e os requisitos de política e depois inspecione a página renderizada.

Observar

Sem promessa de exibição

Passar em um teste não garante que o resultado avançado será exibido.

A marcação do Schema.org resolve três problemas de uma vez. Para os mecanismos de busca — identifica entidades sem ambiguidade: isto é uma organização, e não apenas um texto com nome de empresa; isto é um preço de produto, e não apenas um número. Para o usuário — os resultados avançados na SERP tornam o snippet mais informativo antes do clique. Para o negócio — mais CTR e presença no Knowledge Graph.

Formatos: JSON-LD, Microdata, RDFa

Os dados estruturados do Schema.org podem ser adicionados de três formas. Para projetos novos, a escolha é clara: JSON-LD. As outras são suportadas, mas mais difíceis de manter.

FormatoOnde ficaAcoplamento com o HTMLRecomendação do Google
JSON-LDTag <script type="application/ld+json">Separado do HTMLPreferido
MicrodataAtributos itemscope, itemtype, itempropIncorporado em elementos HTMLSuportado
RDFaAtributos vocab, typeof, propertyIncorporado em elementos HTMLSuportado
O JSON-LD é a escolha certa para projetos novos: o código fica isolado do layout, é fácil de gerar dinamicamente e de atualizar sem mexer nos templates HTML. Microdata e RDFa são suportados pelo Google, mas qualquer mudança no layout pode quebrar a marcação sem aviso.

O template base do JSON-LD é o mesmo para qualquer página: uma tag <script> com type application/ld+json, contendo um objeto JSON com os campos obrigatórios @context e @type. A tag pode ficar no <head> ou no fim do <body>. Vários schemas — vários blocos <script> separados.

html
<!-- Base JSON-LD template -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Site Name",
  "url": "https://example.com"
}
</script>

<!-- Multiple schemas — multiple <script> blocks -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Company",
  "url": "https://example.com"
}
</script>

Prioridade dos schemas: o que gera resultados avançados no Google

Nem todo tipo do Schema.org gera um resultado avançado. O Google suporta um conjunto limitado de tipos que trazem melhorias visuais na SERP. Os outros ajudam o Google a entender o conteúdo, mas não mudam a aparência do snippet.

Empresas e organizações

LocalBusiness, Restaurant, Store — horário de funcionamento, endereço, telefone e avaliações no painel de conhecimento. Prioridade máxima para negócios locais.

Produtos e preços

Product + Offer — preço, disponibilidade e avaliações direto no snippet. Google Shopping e rich snippets. Essencial para e-commerce.

Conteúdo e FAQ

Article e outros tipos suportados devem representar com precisão o conteúdo visível. O conteúdo de FAQ continua útil para o leitor, mas não garante a expansão do resultado de pesquisa.

Avaliações

AggregateRating + Review — estrelas de avaliação no snippet. É o elemento visualmente mais destacado. Funciona para Product, LocalBusiness, Recipe, Course.

Tipo de schemaResultado avançado no GooglePrioridade
Product + OfferPreço, disponibilidade e avaliações no snippet; cards do ShoppingCrítico para e-commerce
LocalBusiness + AggregateRatingPainel de conhecimento, Map Pack, estrelasCrítico para negócio local
Article / NewsArticleCarrossel Top Stories, data de publicaçãoAlta para mídia e blogs
BreadcrumbListBreadcrumbs no lugar da URL no snippetAlta para qualquer site
EventCard de evento com data e localMédia para páginas de eventos
RecipeCard de receita com foto, tempo e caloriasMédia para sites de culinária
Organization (non-Local)Knowledge Graph e logo nos resultadosBase para todos os sites

Organization — schema base e todos os subtipos

Organization é o tipo base para qualquer empresa, organização ou marca. A hierarquia de subtipos é ampla — cada subtipo acrescenta campos específicos. Escolher o subtipo certo importa: o Google usa essa informação para definir o contexto do negócio e o que exibir no painel de conhecimento.

TipoPara quemCampos adicionais principais
OrganizationQualquer empresa, ONG ou marca sem endereço físiconame, url, logo, sameAs
LocalBusinessQualquer negócio com endereço físicoaddress, telephone, openingHours, geo
StoreLoja de varejocurrenciesAccepted, paymentAccepted
FoodEstablishmentCafé, restaurante (tipo base)servesCuisine, menu, hasMap
RestaurantRestauranteservesCuisine, menu, acceptsReservations
CafeOrCoffeeShopCafeteriaservesCuisine
FastFoodRestaurantFast foodservesCuisine
MedicalOrganizationInstituição médica (base)medicalSpecialty
HospitalHospitalavailableService, medicalSpecialty
MedicalClinicClínicamedicalSpecialty, availableService
DentistConsultório odontológicoavailableService
LegalServiceEscritório de advocacia—
LawyerAdvogado(a)—
AccountingServiceEscritório de contabilidade / auditoria—
FinancialServiceBanco, seguradora, empresa de investimentos—
RealEstateAgentImobiliária—
AutomotiveBusinessRevenda de veículos, oficina (base)—
AutoDealerConcessionária—
AutoRepairOficina mecânica—
HotelHotelamenityFeature, checkinTime, checkoutTime
SportsActivityLocationLocal esportivo (base)availableService
GymOrHealthClubAcademia / clube de fitness—
GovernmentOrganizationÓrgão governamental—
EducationalOrganizationInstituição de ensino (base)—
CollegeOrUniversityUniversidade / faculdade—
SchoolEscola—
CorporationGrande corporaçãotickerSymbol, legalName

Organization básico

O schema Organization básico é adicionado à página inicial de qualquer site. Ele ajuda o Google a identificar a marca e a relacioná-la a perfis externos por meio de sameAs. O campo @id com um identificador único permite que outros schemas façam referência a essa organização sem duplicar dados.

json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://example.com/#organization",
  "name": "Company Name",
  "legalName": "Example LLC",
  "url": "https://example.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://example.com/logo.png",
    "width": 200,
    "height": 60
  },
  "description": "Brief company description for Knowledge Graph.",
  "foundingDate": "2015",
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-800-123-4567",
    "contactType": "customer service",
    "availableLanguage": "English"
  },
  "sameAs": [
    "https://www.linkedin.com/company/yourcompany",
    "https://twitter.com/yourcompany",
    "https://www.facebook.com/yourcompany"
  ]
}

LocalBusiness — negócio físico com endereço

LocalBusiness é o subtipo mais importante para empresas com localização física. Um schema bem preenchido aumenta as chances de aparecer no Google Map Pack (o bloco de mapa no topo da SERP) e no painel de conhecimento com o horário de funcionamento. Campos principais: address, geo, openingHoursSpecification, telephone, priceRange.

json
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "@id": "https://example.com/#business",
  "name": "The Birch Restaurant",
  "url": "https://example.com",
  "telephone": "+1-212-555-0100",
  "email": "info@example.com",
  "servesCuisine": ["American", "European"],
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10001",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.7128,
    "longitude": -74.0060
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "12:00",
      "closes": "23:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "12:00",
      "closes": "00:00"
    }
  ],
  "image": "https://example.com/photos/restaurant.jpg",
  "hasMap": "https://maps.google.com/?cid=XXXXXX"
}
Os dias da semana em openingHoursSpecification devem estar em inglês, com inicial maiúscula: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday. Os horários usam o formato de 24 horas HH:MM. Para funcionamento 24 horas, abre em “00:00” e fecha em “23:59”.

sameAs — links para perfis externos

O campo sameAs informa ao Google que a sua organização é a mesma dos perfis em plataformas externas. Esse é o campo-chave para construir o Knowledge Graph — o banco de entidades do Google. Quanto mais fontes confiáveis confirmarem a existência de uma organização, maior a chance de ela aparecer em um painel de conhecimento.

  • Wikidata (a mais confiável): https://www.wikidata.org/wiki/Q...
  • Wikipedia: https://en.wikipedia.org/wiki/...
  • LinkedIn, Twitter/X, Facebook, Instagram
  • Canal da organização no YouTube
  • Perfil da empresa no Google (para negócios locais)
  • Diretórios do setor — registros médicos, ordens de advogados etc.

Product — schema de produto e todos os subtipos

Product é o schema base para qualquer produto ou item. Ele funciona junto com Offer (preço e disponibilidade) e AggregateRating (avaliação). Um schema Product bem implementado gera um resultado avançado no Google: preço, status de disponibilidade e estrelas de avaliação direto no snippet.

TipoCaso de usoObservações
ProductSchema base para qualquer produtoname, image, description obrigatórios
OfferOferta específica: preço + disponibilidadeprice, priceCurrency, availability obrigatórios
AggregateOfferFaixa de preço (várias ofertas)lowPrice, highPrice, offerCount
ProductGroupGrupo de produtos com variantesvariesBy, hasVariant
IndividualProductVariante específica dentro de um ProductGroupisVariantOf → ProductGroup
BrandMarca do produto (aninhada em Product)name obrigatório

Product básico com Offer

O Google exige um conjunto mínimo de campos para um resultado avançado: name, image, description e um Offer aninhado com priceCurrency, price e availability. Sem pelo menos um desses itens, o snippet do produto não será enriquecido.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "description": "Lightweight running shoes with foam sole for road running. Weight 230g, drop 10mm.",
  "sku": "AIRX-001-BLK",
  "mpn": "AIRX001",
  "gtin13": "0123456789012",
  "brand": {
    "@type": "Brand",
    "name": "RunMax"
  },
  "image": [
    "https://example.com/photos/airx-front.jpg",
    "https://example.com/photos/airx-side.jpg",
    "https://example.com/photos/airx-back.jpg"
  ],
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/air-x-pro",
    "priceCurrency": "USD",
    "price": "89.99",
    "priceValidUntil": "2026-12-31",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "RunMax Store"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128"
  }
}
Os valores de availability precisam seguir o vocabulário esperado pelo tipo de schema correspondente. Siga a documentação atual do recurso e valide o valor completo no contexto; não conclua o resultado avançado a partir de um único campo.

AggregateOffer — faixa de preço

Se um produto é oferecido por vários vendedores ou vem em variantes com preços diferentes, use AggregateOffer. Ele mostra uma faixa de preço (lowPrice–highPrice) em vez de um preço único.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Galaxy S25 Smartphone",
  "brand": { "@type": "Brand", "name": "Samsung" },
  "image": "https://example.com/galaxy-s25.jpg",
  "offers": {
    "@type": "AggregateOffer",
    "priceCurrency": "USD",
    "lowPrice": "799",
    "highPrice": "1099",
    "offerCount": "3",
    "offers": [
      {
        "@type": "Offer",
        "name": "128 GB / Black",
        "price": "799",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      },
      {
        "@type": "Offer",
        "name": "256 GB / White",
        "price": "899",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      },
      {
        "@type": "Offer",
        "name": "512 GB / Violet",
        "price": "1099",
        "priceCurrency": "USD",
        "availability": "https://schema.org/PreOrder"
      }
    ]
  }
}

ProductGroup — produtos com variantes

ProductGroup é um grupo de produtos relacionados que diferem por parâmetros (tamanho, cor, material). Usado em páginas de produto com variantes. Cada variante específica é um Product aninhado, com isVariantOf apontando para o ProductGroup pai.

json
{
  "@context": "https://schema.org",
  "@type": "ProductGroup",
  "name": "Air X Pro Running Shoes",
  "description": "Road running shoes available in multiple colours and sizes.",
  "url": "https://example.com/products/air-x-pro",
  "brand": { "@type": "Brand", "name": "RunMax" },
  "productGroupID": "AIRX-PRO",
  "variesBy": ["https://schema.org/color", "https://schema.org/size"],
  "hasVariant": [
    {
      "@type": "Product",
      "name": "Air X Pro — Black, US 9",
      "sku": "AIRX-BLK-9",
      "color": "Black",
      "size": "US 9",
      "offers": {
        "@type": "Offer",
        "price": "89.99",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      }
    },
    {
      "@type": "Product",
      "name": "Air X Pro — Blue, US 11",
      "sku": "AIRX-BLU-11",
      "color": "Blue",
      "size": "US 11",
      "offers": {
        "@type": "Offer",
        "price": "89.99",
        "priceCurrency": "USD",
        "availability": "https://schema.org/OutOfStock"
      }
    }
  ]
}
Para um resultado avançado de Product, o Google exige: name, image e um Offer aninhado. Sem Offer (preço e disponibilidade), o snippet enriquecido não será exibido. Além disso, brand, sku ou gtin13 aumentam as chances de aparecer no Google Shopping.

AggregateRating e Review — avaliações e resenhas

As estrelas de avaliação nos resultados de pesquisa são o elemento visual mais destacado do snippet. Elas são implementadas por dois tipos relacionados: AggregateRating (a pontuação combinada de todas as avaliações) e Review (uma avaliação individual em texto). Os dois sempre ficam aninhados em um schema pai: Product, LocalBusiness, Recipe, Course, Book etc.

AggregateRating — pontuação combinada

AggregateRating representa a pontuação agregada: valor médio e número de votos. O Google a exibe como estrelas no snippet. Campos obrigatórios: ratingValue (média) e reviewCount ou ratingCount.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "image": "https://example.com/airx.jpg",
  "offers": {
    "@type": "Offer",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "bestRating": "5",
    "worstRating": "1",
    "reviewCount": "128",
    "ratingCount": "215"
  }
}
ratingCount — número total de avaliações (incluindo as que não têm texto). reviewCount — número de avaliações com texto. Se você tem apenas notas em estrelas, sem texto, use ratingCount. Se tem apenas avaliações em texto, use reviewCount. Os dois campos podem ser informados juntos.

Review — avaliações individuais

Review é o schema de uma avaliação individual em texto. Ele fica aninhado no objeto pai pela propriedade review. Cada Review contém um autor, uma nota e o texto da avaliação. O Google pode exibir um trecho do texto da avaliação no resultado avançado.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "image": "https://example.com/airx.jpg",
  "offers": {
    "@type": "Offer",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128"
  },
  "review": [
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "name": "Great shoes for daily runs",
      "reviewBody": "Been running in them for 3 months — sole holds up well, feet don't tire. Recommend for road running.",
      "datePublished": "2026-03-15",
      "author": {
        "@type": "Person",
        "name": "Alex K."
      }
    },
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4",
        "bestRating": "5"
      },
      "reviewBody": "Good cushioning, but runs a little small. Order half a size up.",
      "datePublished": "2026-04-01",
      "author": {
        "@type": "Person",
        "name": "Maria S."
      }
    }
  ]
}
Exigência crítica do Google: as avaliações na marcação precisam ser avaliações reais de usuários reais do seu site. É proibido mostrar apenas avaliações de 5 estrelas, ocultar as negativas ou publicar avaliações escritas pela equipe editorial. As violações resultam em ação manual e na perda dos resultados avançados.

ImageObject — fotos nos dados estruturados

As imagens no Schema.org podem ser especificadas de duas formas: como uma string com a URL ("image": "https://example.com/photo.jpg") ou como um ImageObject com metadados. Uma string basta para a maioria dos schemas, mas, para Article, Recipe e HowTo, o Google recomenda o ImageObject — ele permite informar dimensões, legenda e formato.

Tipo de schemaRequisitos de imagemLargura mínima
ProductPelo menos uma imagem do produto; fundo branco de preferência800 px recomendado
Article / NewsArticlePelo menos 3 imagens: 16:9, 4:3, 1:11.200 px
RecipeImagem do prato pronto é obrigatóriaQualquer; 1.200×628 é o ideal
LocalBusinessFotos da entrada, do interior e da fachadaQualquer
Organization (logo)Retangular, com fundo branco ou transparente112×112 mín., proporção de até 1×10
Exemplo de marcação de imagem do Schema.org via JSON-LD:
json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "image": [
    {
      "@type": "ImageObject",
      "url": "https://example.com/airx-front.jpg",
      "width": 1200,
      "height": 1200,
      "caption": "Air X Pro — front view"
    },
    {
      "@type": "ImageObject",
      "url": "https://example.com/airx-side.jpg",
      "width": 1200,
      "height": 1200,
      "caption": "Air X Pro — side view"
    }
  ],
  "offers": {
    "@type": "Offer",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
Para Article, o Google exige pelo menos uma imagem com 1.200 px de largura e proporção de 16:9, 4:3 ou 1:1. Forneça as três variações — o Google escolhe a correta para cada posição. As imagens precisam ser rastreáveis (não bloqueadas no robots.txt) e ter uma URL estável.

Combinando schemas em uma página

Vários schemas em uma mesma página são adicionados como blocos <script> separados. Veja a marcação completa de uma página de produto: a organização vendedora, as breadcrumbs, o produto com preço, a avaliação e a Review.

html
<!-- Schema 1: Selling organisation (on all site pages) -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://example.com/#organization",
  "name": "RunMax Store",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png"
}
</script>

<!-- Schema 2: Breadcrumbs -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com" },
    { "@type": "ListItem", "position": 2, "name": "Footwear", "item": "https://example.com/shoes" },
    { "@type": "ListItem", "position": 3, "name": "Air X Pro" }
  ]
}
</script>

<!-- Schema 3: Product with price, rating and review (on product page) -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "description": "Road running shoes.",
  "sku": "AIRX-001",
  "brand": { "@type": "Brand", "name": "RunMax" },
  "image": "https://example.com/airx.jpg",
  "offers": {
    "@type": "Offer",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2026-12-31",
    "seller": { "@id": "https://example.com/#organization" }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128",
    "bestRating": "5"
  },
  "review": {
    "@type": "Review",
    "reviewRating": { "@type": "Rating", "ratingValue": "5" },
    "author": { "@type": "Person", "name": "Alex K." },
    "reviewBody": "Excellent shoes, run in them every day.",
    "datePublished": "2026-04-10"
  }
}
</script>
Vendedor (seller): { "@id": "https://example.com/#organization" } — uma referência à organização definida antes, pelo seu @id. Isso se chama vinculação de grafo: o Google conecta as entidades em um Knowledge Graph unificado, sem duplicar dados.

Validação de dados estruturados

Depois da implementação, valide sempre a marcação. O Google oferece duas ferramentas oficiais, e o Search Console mostra o quadro real do que o rastreador vê nas páginas indexadas.

Passo 1Rich Results Test

Abra search.google.com/test/rich-results e informe uma URL ou HTML. A ferramenta mostra quais resultados avançados estão disponíveis para o schema, quais campos são obrigatórios e o que foi preenchido de forma incorreta. É o único lugar para confirmar se a marcação vai de fato gerar melhorias visuais na SERP.

Passo 2Schema Markup Validator

Abra validator.schema.org para a validação completa contra o padrão do Schema.org (e não só os tipos que o Google suporta). Ela verifica as propriedades obrigatórias de cada tipo e alerta sobre combinações incompatíveis — útil para schemas aninhados complexos.

Passo 3Google Search Console

Search Console → Aprimoramentos → selecione o tipo de schema. Essa seção mostra erros reais em páginas indexadas. Os erros aqui são o que de fato bloqueia os resultados avançados agora, em URLs ativas — o sinal mais útil para agir.

Verificação rápida: confirme se o JSON-LD está na resposta HTML do servidor, e não apenas adicionado via JavaScript. Abra o DevTools → Network → encontre a primeira requisição → Preview → procure por script type="application/ld+json". Se o bloco não aparecer, o Googlebot pode não ver a marcação.

Checklist de dados estruturados

Implementação base do JSON-LD

  • Tag <script type="application/ld+json"> adicionada no <head> ou no fim do <body>
  • Cada bloco contém @context: "https://schema.org" e @type
  • Todas as entidades principais têm um @id único no formato URL com fragmento (#nome)
  • JSON válido — sem vírgulas sobrando e com todas as aspas fechadas
  • A marcação está na resposta HTML do servidor (não apenas via JavaScript)

Organization / LocalBusiness

  • Subtipo correto escolhido (Restaurant, Dentist, AutoDealer etc.), em vez de Organization genérico
  • Preenchidos: name, url, telephone, address (para LocalBusiness)
  • geo adicionado com coordenadas precisas (latitude, longitude)
  • openingHoursSpecification preenchido com nomes de dias em inglês e horários HH:MM
  • sameAs com pelo menos perfis em redes sociais e Wikidata (se houver)

Product

  • Preenchidos: name, description, image (pelo menos uma imagem)
  • Offer aninhado com: price, priceCurrency, availability, priceValidUntil
  • availability usando a URL completa: https://schema.org/InStock
  • sku e/ou gtin13 informados para o Google Shopping
  • AggregateRating aninhado se a página tiver avaliações de usuários

Avaliações e resenhas

  • AggregateRating contém ratingValue, reviewCount, bestRating, worstRating
  • Os valores de AggregateRating correspondem aos dados reais do site
  • Review está aninhado dentro do objeto pai (Product / LocalBusiness), e não isolado
  • Cada Review tem author (Person), reviewRating, datePublished, reviewBody
  • As avaliações na marcação são avaliações reais de usuários reais

FAQ

A marcação do Schema.org influencia diretamente os rankings do Google?
Ela ajuda o Google a entender os recursos elegíveis da página, mas o Google não garante um resultado avançado e não descreve a marcação como um atalho direto para o ranqueamento. Use-a para representar com precisão os fatos visíveis.
Dá para adicionar dados estruturados pelo Google Tag Manager?
Tecnicamente, sim — o GTM pode injetar uma tag <script> com JSON-LD. Mas o Google prefere a marcação na resposta HTML do servidor, e não adicionada via JavaScript. A marcação injetada pelo GTM pode não ser reconhecida corretamente no rastreamento se o Googlebot não executar JS nessa página. A abordagem ideal é gerar o JSON-LD no servidor.
Quantas avaliações devo incluir na marcação de Review?
O Google não exige um número fixo. Na prática: se forem menos de 10 avaliações, inclua todas. Se forem centenas, de 3 a 5 recentes bastam. A qualidade importa mais: cada Review precisa de texto, autor e data. Poucas avaliações podem impedir o Google de mostrar estrelas no snippet.
Por que os resultados avançados não aparecem, mesmo com a marcação aprovada na validação?
Há vários motivos: (1) o Google ainda não rastreou a página de novo — aguarde 1–4 semanas ou solicite nova indexação; (2) o reviewCount está baixo; (3) a página viola as políticas do Google (por exemplo, as avaliações parecem manipuladas); (4) os resultados avançados desse tipo de schema competem com outros recursos da SERP. Verifique em Search Console → Aprimoramentos.
Como informar o preço para uma loja internacional?
Use uma Offer separada por moeda, ou várias Offers dentro de AggregateOffer. O campo priceCurrency usa códigos ISO 4217: USD, EUR, GBP, JPY. O Google exibe o preço do país e do idioma para os quais a página foi feita. Confira se o hreflang está configurado corretamente, para que cada versão de idioma veja a marcação na própria moeda.

Check it with SpiderHead

Free and local: run the audit on your own machine.

Try it