WordPress SEO

JSON-LD no WordPress: schema na prática

Como implementar JSON-LD no WordPress com @graph, @id e sameAs: inventário, fonte única de verdade e as armadilhas mais comuns em sites grandes.
Escrito Por Leandro Vieira em setembro de 2026 /10 min de leitura
Conteúdo escrito por humano
Editor de código exibindo um bloco de JSON-LD no WordPress com nós conectados por @id

JSON-LD no WordPress é a declaração dos seus dados estruturados em um bloco JSON isolado dentro do HTML, seguindo o vocabulário do Schema.org, sem depender da marcação visual do tema.

Schema não é plugin. Schema é declaração de identidade.

E a maioria dos sites WordPress está declarando três coisas diferentes sobre si mesma na mesma página: uma vinda do plugin de SEO, uma do tema, outra de um plugin antigo que ninguém lembra por que instalou.

Quando a máquina encontra contradição no seu JSON-LD, ela não escolhe a versão mais bonita. Ela desconfia do conjunto.

Aqui a gente coloca a mão no código: Camada 2 do framework de GEO Técnico.

A cena que o nosso time mais encontra em auditoria

json ld no wordpress schema na pratica body

Site WordPress grande, empresa de Educação ou Fintech, time de marketing com cinco ou seis editores publicando por semana.

Alguém pergunta: “a gente tem dados estruturados?”. A resposta é sempre a mesma: “tem, o plugin de SEO cuida disso”.

Então você joga a URL no validador e aparecem quatro blocos de JSON-LD. Um Organization do plugin de SEO. Um WebSite do mesmo plugin. Um Article gerado pelo tema, com autor diferente. E um BreadcrumbList órfão de um plugin desativado pela metade.

Nenhum conversa com o outro. Nenhum tem @id. O name da organização muda de página para página.

Primeiro sintoma: schema existe, mas ninguém é dono dele.

O segundo sintoma é político, e dói mais. O marketing quer publicar. Para mexer em schema, precisa de dev. O dev está na fila de outro projeto. O time faz o que dá: instala mais um plugin de schema.

A pilha cresce. Camada sobre camada, cada uma escrita por uma pessoa diferente ao longo de anos, ninguém removendo nada, porque remover dá medo.

Schema quebrado quase nunca é falta de conhecimento técnico. É falta de dono e de fonte única de verdade.

Tem um terceiro sintoma, mais silencioso: o schema está tecnicamente válido, passa no validador, sem erro nenhum, e mesmo assim não diz nada útil. Um Organization com nome e logo, ponto. Sem sameAs, sem @id, sem ligação com autor.

Validação passou. Identidade continua vaga. São coisas diferentes.

Por que JSON-LD e não microdata ou RDFa

Existem três sintaxes possíveis para dados estruturados: microdata, RDFa e JSON-LD. Na prática, trabalhe com JSON-LD.

O motivo é operacional, não ideológico. Microdata e RDFa vivem grudados no HTML: para mudar a marcação você mexe no template, e no WordPress isso significa mexer no tema.

JSON-LD vive em um bloco isolado no <head> ou no rodapé. Você altera a declaração sem tocar na renderização.

Para um time que tem gargalo entre marketing e TI, essa é a diferença entre uma tarefa de meia hora e uma entrada na fila de sprint. A documentação do Google Search Central também aponta JSON-LD como o formato recomendado, o que reduz a discussão interna sobre qual caminho seguir.

Sintaxe

Onde a marcação mora

Custo de alterar

Microdata

Atributos no HTML do template do tema

Ticket para dev front-end, deploy de tema

RDFa

Atributos no HTML do template do tema

Ticket para dev front-end, deploy de tema

JSON-LD

Bloco script isolado, gerado em PHP por plugin ou mu-plugin

Alteração em um único arquivo, sem tocar no layout

Os três conceitos que separam schema decorativo de schema que funciona

@id: nome próprio para cada nó

@id é uma URI única que identifica um nó do seu grafo. Sem ele, cada bloco de Schema.org que você publica é um objeto anônimo, descartável, que morre no fim da página.

Pensa assim: sem @id, você está dizendo “nesta página existe uma organização chamada Apiki”. Com @id, você está dizendo “esta página pertence àquela organização, aquela mesma, a de sempre”.

Sem @id você não tem um grafo de entidades. Você tem um monte de cartão de visita solto, um por página.

@graph: uma fonte de verdade por página

Em vez de cuspir quatro blocos de JSON-LD independentes, você emite um único bloco com um array de nós conectados entre si por referência de @id.

Organização, site, página, artigo, autor, breadcrumb. Tudo em um objeto, tudo se apontando.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://seudominio.com.br/#organization",
      "name": "Sua Empresa",
      "url": "https://seudominio.com.br/",
      "logo": "https://seudominio.com.br/logo.png",
      "sameAs": ["https://www.linkedin.com/company/sua-empresa"]
    },
    {
      "@type": "WebSite",
      "@id": "https://seudominio.com.br/#website",
      "url": "https://seudominio.com.br/",
      "publisher": { "@id": "https://seudominio.com.br/#organization" }
    },
    {
      "@type": "WebPage",
      "@id": "https://seudominio.com.br/artigo/#webpage",
      "isPartOf": { "@id": "https://seudominio.com.br/#website" }
    },
    {
      "@type": "Article",
      "@id": "https://seudominio.com.br/artigo/#article",
      "isPartOf": { "@id": "https://seudominio.com.br/artigo/#webpage" },
      "author": { "@id": "https://seudominio.com.br/autor/nome/#person" },
      "publisher": { "@id": "https://seudominio.com.br/#organization" }
    },
    {
      "@type": "Person",
      "@id": "https://seudominio.com.br/autor/nome/#person",
      "name": "Nome Real",
      "jobTitle": "Coordenador de Conteúdo",
      "worksFor": { "@id": "https://seudominio.com.br/#organization" },
      "sameAs": ["https://www.linkedin.com/in/nome"]
    }
  ]
}

sameAs: o documento de identidade da entidade

sameAs é o campo onde você lista os perfis oficiais da entidade em outros lugares: LinkedIn, GitHub, página institucional, base de conhecimento pública.

É o que permite reconciliar “esta organização aqui” com “aquela organização que eu já vi lá fora”. O vocabulário completo está no próprio Schema.org.

Schema sem sameAs é identidade sem documento.

As quatro perguntas que toda página bem declarada responde

Esse é o modelo mental que eu quero que você leve para dentro do seu WordPress, nessa ordem:

  1. Que site é este? Nó WebSite com @id fixo, ligado ao publisher.

  2. Quem publica? Nó Organization com @id fixo, name padronizado, url, logo e sameAs com os perfis oficiais.

  3. Que página é esta? Nó WebPage ligado ao WebSite por isPartOf e ao BreadcrumbList real da URL.

  4. Quem escreveu e sobre o quê? Nó Article ligado a um nó Person com @id próprio, e o Person ligado à organização por worksFor.

Quatro perguntas, quatro nós, um @graph. Isso é noventa por cento do trabalho de Camada 2 em conteúdo editorial.

Não é volume de marcação. É coerência de marcação. Um grafo pequeno e consistente vale mais que dez tipos declarados que se contradizem.

Cinco movimentos para implementar JSON-LD no WordPress

Movimento 1: inventário do que já sai do site

Antes de escrever uma linha, você precisa saber o que o seu site já declara.

Abra uma página de artigo, uma de serviço e a home. Rode no Schema Markup Validator e no teste de resultados enriquecidos do Google. Conte quantos blocos de JSON-LD aparecem e anote quem gera cada um.

No WordPress os suspeitos são sempre os mesmos: plugin de SEO, tema comprado em marketplace, plugin de FAQ, plugin de review, plugin de eventos e algum snippet colado no functions.php por um freelancer em 2019.

Movimento 2: escolher a fonte de verdade

Uma só. Ou o plugin de SEO gera o grafo inteiro e você desliga o resto, ou você assume o controle e desliga o do plugin.

Plugin de SEO maduro expõe filtro em PHP para alterar ou remover nós do grafo. Isso é preferível a duplicar, porque duplicar é o que gera contradição.

Se o schema vem do tema, isso é dívida técnica: trocar de tema apaga a sua identidade. Tire de lá e coloque em plugin próprio ou em mu-plugin.

Movimento 3: travar a organização

Um nó Organization com @id fixo, no padrão https://seudominio.com.br/#organization.

O name precisa ser idêntico em todo lugar: rodapé, LinkedIn, schema, título institucional. Sem razão social em um canto e nome fantasia em outro.

Esse nó é declarado uma vez e referenciado por todas as páginas. Não replique o objeto inteiro em cada template.

Movimento 4: pessoas de verdade, não rótulos

Aqui está o problema mais comum em site com muitos editores. O WordPress te dá o WP_User de graça, mas o autor virou “admin” ou “Equipe de Conteúdo”.

Isso não é entidade. É rótulo.

O trabalho é criar nó Person com @id próprio por autor real, ligar ao Organization via worksFor, popular jobTitle e sameAs com o LinkedIn do autor, e garantir que a página de autor exista, seja indexável e traga credencial real.

Campo customizado resolve isso sem virar projeto de seis semanas.

Movimento 5: conectar tudo

Cada Article aponta para o Person via author e para o Organization via publisher. Cada WebPage aponta para o WebSite via isPartOf.

E o BreadcrumbList tem que ser coerente com a hierarquia real de URLs, não com o menu que o time de design desenhou.

Três armadilhas que a gente vê toda semana

  • Schema que mente. Declarar FAQPage em uma página sem FAQ visível para o usuário, ou AggregateRating sem avaliação real, é risco e não atalho: a marcação precisa refletir o que está renderizado.

  • Schema injetado por JavaScript. Se o seu JSON-LD só existe depois que o JavaScript roda, você criou uma dependência a mais para ser lido. Emita no HTML servido, direto do PHP, porque é mais barato e mais previsível.

  • Camada de cache desalinhada. Site grande roda page cache e edge agressivos. Já vimos grafo correto em staging e grafo velho servido pelo edge em produção por semanas, então valide a versão em cache, não só a versão local.

É como uma casa com três placas de número diferentes na fachada. O carteiro não escolhe a mais bonita: ele desconfia do endereço inteiro.

Perguntas frequentes sobre JSON-LD no WordPress

Preciso de plugin para gerar JSON-LD no WordPress?

Não necessariamente. Um plugin de SEO maduro já emite um grafo razoável e expõe filtros em PHP para você ajustar nós, o que costuma ser o caminho mais rápido. Se o seu grafo exige nós que o plugin não cobre, gere o JSON-LD em um plugin próprio ou mu-plugin, nunca no tema.

Ter mais tipos de schema declarados melhora o resultado?

Não. Antes de declarar tipo novo, prove que o grafo básico está consistente: um Organization com @id fixo, uma Person por autor real e nenhum bloco duplicado. Grafo pequeno e coerente vale mais que dez tipos que se contradizem.

JSON-LD garante citação em respostas de IA?

Não, e nenhum fornecedor sério vai prometer isso. Schema bem estruturado aumenta a chance de a máquina reconhecer, nomear e atribuir crédito ao seu conteúdo, o que é diferente de garantia de aparecer em toda resposta gerada.

Conclusão

JSON-LD no WordPress não é um campo a preencher. É a resposta que o seu site dá quando a máquina pergunta quem ele é, quem publica e quem escreveu.

E a resposta só funciona se for uma. Fonte única de verdade, @id fixo, @graph conectado, sameAs populado, nenhum bloco duplicado.

Medimos. Testamos. Validamos. Escalamos. Nessa ordem, e sempre depois do inventário.

Se você quer ver como isso se encaixa nas outras camadas, vale passar pelo nosso guia de GEO Técnico e pelo checklist de visibilidade para IA no WordPress. Se preferir olhar o seu grafo com o nosso time, é só chamar: WordPress que aparece na IA? Fale conosco.

Me conta: quantos blocos de JSON-LD apareceram quando você jogou a sua home no validador?

Leandro Vieira

Uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress.
Qual nota você da para este artigo?
Ruim

O que você achou disso?

Clique nas estrelas

Média da classificação 0 / 5. Número de votos: 0

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Excelente
Artigos Relacionados

Construa seu site WordPress sob medida com os maiores especialistas em WordPress da America Latina
Conheça a Apiki

Faça um comentário
Cadastre-se rápido

Fazer Login