1

Dados Estruturados (JSON-LD) na prática: como fazer o Google e as IAs entenderem o seu site

No meu último artigo, mostrei como tirei a gordura de um site em HTML estático e levei o PageSpeed mobile de 64 para 97. Mas deixar o site rápido é só metade do trabalho: depois que o robô do Google — ou um agente de IA como ChatGPT, Gemini e Perplexity — entra na sua página, ele precisa entender o que você faz, onde você atende e por que sua empresa é confiável.

O HTML visual foi feito para seres humanos lerem. Já os buscadores e modelos de IA preferem fatos estruturados, sem ambiguidade. É exatamente isso que o JSON-LD resolve.

Vou mostrar os quatro blocos de dados estruturados que implemento nos nossos sites (tanto em WordPress quanto em HTML puro), como conectá-los da forma certa e os erros que fazem o Google ignorar o seu código.

O que é JSON-LD (e por que não misturar no HTML)

Antigamente, usava-se muito Microdata, espalhando atributos como itemscope e itemprop dentro das tags <div> e <span> do layout. O problema é que isso suja o HTML e qualquer ajuste visual pode quebrar a leitura dos dados.

O JSON-LD (JavaScript Object Notation for Linked Data) resolve isso separando o conteúdo visual dos dados semânticos. Você coloca um bloco <script type="application/ld+json"> no <head> ou no final do <body>. O visitante não vê nada na tela, mas as máquinas recebem um "crachá oficial" com todos os fatos da página.

Os 4 Schemas essenciais para sites de serviços e negócios locais

1. Identidade da empresa (InsuranceAgency / LocalBusiness)

Muita gente usa apenas o tipo genérico Organization. Se o seu negócio tem um nicho específico previsto no Schema.org — no meu caso, InsuranceAgency (corretora de seguros/planos de saúde) —, use-o. Quanto mais específico, melhor.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "InsuranceAgency",
  "@id": "https://exemplo.com.br",
  "name": "Nome da Sua Corretora",
  "url": "https://exemplo.com.br",
  "logo": "https://exemplo.com.br/images/logo.webp",
  "telephone": "+55-19-99999-9999",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Campinas",
    "addressRegion": "SP",
    "addressCountry": "BR"
  },
  "areaServed": [
    { "@type": "City", "name": "Campinas" },
    { "@type": "City", "name": "São Paulo" },
    { "@type": "City", "name": "Jundiaí" }
  ],
  "sameAs": [
    "https://instagram.com",
    "https://linkedin.com"
  ]
}
</script>
  • areaServed: Fundamental para SEO local. Diz explicitamente em quais cidades ou estados você opera, mesmo que seu escritório físico fique em apenas uma.
  • sameAs: Conecta o seu site aos perfis oficiais nas redes sociais e diretórios, ajudando o Google a confirmar que se trata da mesma entidade.

2. O serviço ou produto da página (Service)

Nas páginas internas de cada produto ou linha de planos (por exemplo, uma página dedicada a planos empresariais ou a uma linha específica), uso o schema Service apontando para a empresa dona do serviço.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "@id": "https://exemplo.com.br/planos-empresariais/#service",
  "name": "Planos de Saúde Empresariais",
  "serviceType": "Corretagem de Planos de Saúde",
  "description": "Consultoria e cotação de planos de saúde empresariais e para MEI com atendimento personalizado.",
  "provider": {
    "@id": "https://exemplo.com.br"
  },
  "areaServed": {
    "@type": "State",
    "name": "São Paulo"
  }
}
</script>

3. Perguntas Frequentes (FAQPage)

Mesmo depois que o Google restringiu a exibição visual de perguntas frequentes nos resultados de busca para a maioria dos sites, o schema FAQPage continua valendo ouro para AEO (Answer Engine Optimization). Quando alguém faz uma pergunta direta no ChatGPT ou no Perplexity, páginas com perguntas e respostas bem estruturadas têm muito mais facilidade de serem lidas e citadas como fonte.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Quem tem MEI pode contratar plano de saúde empresarial?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sim. Empresas registradas como MEI podem contratar planos empresariais a partir de 2 vidas (titular mais um dependente ou funcionário), respeitando o prazo mínimo de abertura do CNPJ exigido pela operadora."
      }
    },
    {
      "@type": "Question",
      "name": "Qual o prazo de carência para consultas e exames simples?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Para contratos novos sem aproveitamento de carência, o prazo padrão é de 24 horas para urgência e emergência e até 30 dias para consultas e exames básicos."
      }
    }
  ]
}
</script>

4. Trilha de navegação (BreadcrumbList)

Ajuda os buscadores a entenderem a hierarquia do seu site e deixa a URL muito mais limpa e clicável nos resultados do Google.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Início",
      "item": "https://exemplo.com.br"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Planos Empresariais",
      "item": "https://exemplo.com.brplanos-empresariais/"
    }
  ]
}
</script>

O pulo do gato: conectando tudo com @id

Repare no bloco do item 2 (Service). Em vez de repetir o nome, telefone e endereço da empresa dentro do campo provider, eu coloquei apenas:

"provider": {
  "@id": "https://exemplo.com.br"
}

Quando você define um @id único para a sua empresa e referencia esse mesmo identificador nos serviços, artigos e páginas do domínio, você cria um grafo conectado (Knowledge Graph próprio). Em vez de blocos soltos, o Google enxerga uma rede única onde a empresa X presta o serviço Y na cidade Z.

3 erros que invalidam seus Dados Estruturados

  1. Marcar conteúdo que não existe na tela: Esta é a regra número um do Google. Se você colocar uma pergunta no FAQPage ou uma nota de avaliação no JSON-LD que não está escrita de forma visível no HTML da página, você corre o risco de receber uma ação manual por spam estruturado.
  2. Vírgula sobrando no último item: O JSON é rígido. Uma vírgula depois da última propriedade antes de fechar } quebra o bloco inteiro e faz o robô ignorar tudo.
  3. Confiar 100% na configuração padrão de plugins: Plugins de SEO no WordPress geram um schema básico bom, mas muitas vezes deixam a empresa como Organization genérica e sem areaServed. Vale a pena inspecionar o código-fonte gerado e complementar o que falta.

Checklist de validação antes de publicar

  • Teste de Pesquisa Aprimorada (Google Rich Results Test): Cole a URL ou o trecho de código para garantir que não há erros de sintaxe e ver para quais recursos visuais do Google a página está elegível.
  • Validador oficial do Schema.org (validator.schema.org): O teste do Google só valida os tipos que geram destaque visual na busca. O validador do Schema.org confere todos os tipos e propriedades (como Service e areaServed), garantindo que a estrutura esteja limpa para qualquer buscador ou IA.
  • Search Console (aba Melhorias): Nos dias seguintes à publicação, acompanhe os relatórios de Breadcrumbs e Perguntas frequentes para confirmar que o Google processou as páginas sem alertas.

Implementar JSON-LD bem feito não traz milagre da noite para o dia, mas elimina a adivinhação. Você deixa de torcer para o algoritmo entender o seu site e passa a entregar os fatos prontos.

Carregando publicação patrocinada...
1

Vale um contraponto importante sobre o papel do JSON-LD nas IAs (AEO): um estudo recente da Ahrefs com 1.885 páginas não encontrou aumento relevante de citações ao adicionar schema, e testes práticos com ChatGPT e Perplexity mostram que esses sistemas tratam o JSON-LD apenas como texto comum na página, e não como camada semântica especial. Além disso, o próprio Google já deixou claro na documentação sobre recursos de IA que não exige dados estruturados específicos para aparecer no AI Overviews ou no AI Mode. Ou seja, para ser citado, um FAQ claro e visível no HTML pesa muito mais do que o bloco QAPage (FAQPage foi oficialmente descontinuado pelo Google).

No Google tradicional, embora a documentação oficial cite que os dados estruturados ajudam a compreender o conteúdo da página, o Google já reforçou que eles não são fator de ranqueamento. Na prática, o retorno direto no buscador se concentra na elegibilidade para os Rich Results documentados.

O JSON-LD bem implementado pode ser uma "boa prática" para os recursos visuais ainda ativos, mas não para melhorar AEO ou rankear melhor.

E onde você encontrou o suporte do Google ao Service?