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
- Marcar conteúdo que não existe na tela: Esta é a regra número um do Google. Se você colocar uma pergunta no
FAQPageou 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. - 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. - 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
Organizationgenérica e semareaServed. 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 (comoServiceeareaServed), 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.