Schema Markup / JSON-LD: Como implementar dados estruturados sem erros
Dados estruturados são, provavelmente, a parte do SEO técnico onde vejo mais implementações mal feitas, não por falta de vontade, mas porque a maioria dos guias por aí está desatualizada ou explica a teoria sem mostrar os erros reais que aparecem quando se implementa isto num site real, sobretudo em sites construídos com frameworks como React ou plataformas como a Lovable.
Este é um guia prático, com foco no que realmente importa implementar para este ano, no que já não vale a pena, e nos erros mais comuns que vejo repetidamente em auditorias.
- Última Atualização: 26 Julho 2026 , 2:58 pm
- Tempo estimado de leitura: 7 minutes
O que é o Schema Markup e porque é importante
Schema markup é um vocabulário estruturado (mantido pela organização schema.org) que descreve, de forma explícita, o que uma página representa, um artigo, um produto, uma empresa, um evento. Em vez de o Google ter de “adivinhar” isto a partir do texto e do HTML, tu dizes-lhe diretamente.
O formato recomendado, e praticamente o único que o Google recomenda ativamente — é o JSON-LD: um bloco de código em formato JSON, inserido dentro de uma tag <script type=”application/ld+json”>, normalmente no <head> do documento. Ao contrário do Microdata ou do RDFa (que misturam o schema diretamente com os atributos HTML), o JSON-LD mantém os dados estruturados separados do HTML visível, o que o torna muito mais fácil de manter e muito menos propenso a erros.
Há duas razões práticas para investires nisto:
- Elegibilidade para rich results: resultados visualmente destacados na pesquisa (estrelas de avaliação, preços, breadcrumbs, imagens);
- Compreensão do conteúdo por sistemas automatizados: incluindo motores de IA, que usam dados estruturados como sinal de contexto para perceber do que trata a página.
Importante: schema correto não garante rich results. A elegibilidade depende também da qualidade do conteúdo e de restrições específicas por tipo de schema, o Google decide, com base em vários sinais, se mostra ou não o resultado enriquecido.
O que mudou em 2026?
Nos últimos dois anos, o Google retirou suporte a vários tipos de rich results, não por penalização, mas porque decidiu simplificar a página de resultados. Isto é importante porque muitos guias de schema ainda recomendam táticas que já não fazem sentido:
- HowTo: rich results retirados no desktop já em 2023;
- FAQPage : desde 2023 já estava restrito a websites governamentais e de saúde. Em maio de 2026, essa retirada foi concluída para a generalidade dos sites. Se implementaste
FAQPageà espera de aparecer com um dropdown na SERP, esse resultado deixou de existir; - Book Actions, Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement, Vehicle Listing: todos retirados em 2025 por baixa utilização.
O Google foi claro: isto não afeta o ranking, e podes deixar o markup destes tipos no site sem problema, só não vais ter o resultado visual associado.
O que continua totalmente suportado e vale a pena priorizar
- Article / BlogPosting: para artigos de blog.
- Product + Review / AggregateRating: para páginas de produto.
- Organization: para a identidade da marca.
- LocalBusiness: para negócios com presença física ou área de serviço.
- BreadcrumbList: para a navegação estrutural do site.
- VideoObject: para conteúdo em vídeo.
Como implementar, passo a passo
1. Identifica o tipo de conteúdo de cada página
Antes de escreveres uma linha de código, define claramente que tipo de schema.org corresponde a cada template do teu site. Um erro comum é tentar aplicar Article a páginas que na verdade são de produto, ou aplicar LocalBusiness à página inteira do site em vez de apenas à página relevante.
2. Escreve o JSON-LD
Exemplo simples e correto de Article, para um artigo de blog:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Título do artigo",
"description": "Breve descrição do artigo.",
"author": {
"@type": "Person",
"name": "Francisco Paredes",
"url": "https://franciscoparedes.pt"
},
"publisher": {
"@type": "Organization",
"name": "Francisco Paredes SEO",
"logo": {
"@type": "ImageObject",
"url": "https://franciscoparedes.pt/logo.png"
}
},
"datePublished": "2026-07-01",
"dateModified": "2026-07-15",
"image": "https://franciscoparedes.pt/imagens/artigo.jpg",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://franciscoparedes.pt/seo-blog/exemplo-artigo/"
}
}
Repara em três coisas que fazem a diferença entre um schema “que existe” e um schema “que funciona”:
- datePublished e dateModified reais, e atualizados quando o conteúdo é revisto, não copiados de outro artigo;
- author como entidade Person própria, não apenas texto solto, isto ajuda a construir sinais de autoria consistentes;
- mainEntityOfPage a apontar para o URL canónico exato da página.
3. Insere o script no local certo
Coloca o bloco <script type=”application/ld+json”> no <head> (preferencialmente) ou antes do fecho do <body>. O importante é que esteja presente no HTML renderizado que o Google recebe, o que nos leva ao erro técnico mais comum.
4. Valida antes de publicar
Usa o Rich Results Test do Google e o Schema Markup Validator (schema.org) para confirmar que o código é válido e elegível. Nunca publiques schema “às cegas” sem testar.
Os erros mais comuns que vejo em auditorias
Schema que só existe no código-fonte, não na página renderizada
Este é o erro técnico mais crítico, e o mais comum em sites construídos com React, Vue ou plataformas como a Lovable: o schema é injetado via JavaScript no lado do cliente, mas se o Googlebot não conseguir renderizar corretamente esse JavaScript (ou se o schema depender de dados que só carregam depois de uma chamada assíncrona), o Google simplesmente não o vê. Testa sempre com a opção “ver como o Google” no Rich Results Test, não apenas com “Inspecionar elemento” no browser.
Múltiplos blocos de schema em conflito
Vejo com frequência sites com dois ou três blocos Organization diferentes, cada um com dados ligeiramente diferentes (nome, morada, logótipo), inseridos por plugins diferentes que não comunicam entre si. Isto confunde o Google sobre qual é a informação correta. Usa @graph para consolidar múltiplas entidades relacionadas num único bloco coerente, ligando-as por @id.
Dados que não correspondem ao conteúdo visível
O Google exige que o schema reflita fielmente o que está visível na página. Marcar uma avaliação média de 4.8 estrelas quando isso não é visível em lado nenhum da página é uma violação direta das guidelines, e pode levar a uma ação manual.
Esquecer de atualizar o schema quando o conteúdo muda
Um dateModified desatualizado, ou um preço em Product que já não corresponde ao preço real da página, são inconsistências que minam a confiança do Google nos teus dados estruturados como um todo, não só nessa página.
Implementar tipos deprecados à espera de resultados que já não existem
Como referi acima, continuar a investir tempo em FAQPage ou HowTo à espera de um rich result específico é, hoje, tempo mal aproveitado, a não ser que o teu site seja um dos poucos verticais ainda elegíveis.
Checklist rápido antes de publicares schema
- Confirma o tipo de schema correto para o conteúdo da página;
- Escreve o JSON-LD com todos os campos obrigatórios (consulta a documentação do schema.org para o tipo específico);
- Confirma que os dados no schema correspondem exatamente ao que está visível na página;
- Verifica que o script aparece no HTML renderizado, não só no código-fonte;
- Valida no Rich Results Test e no Schema Markup Validator;
- Se tiveres múltiplas entidades relacionadas (ex: artigo + autor + organização), consolida com @graph;
- Revê e atualiza sempre que o conteúdo da página mudar.
Schema bem feito é a base, não o destino
Dados estruturados corretos não vão, por si só, catapultar-te para o topo do Google, mas são a camada de compreensão que permite que tudo o resto (conteúdo, autoridade, sinais técnicos) seja lido corretamente, tanto pelo Google como, cada vez mais, pelos motores de IA que consomem o teu website para construir respostas.
Se não tens a certeza se o teu schema está implementado corretamente, ou se suspeitas que pode estar a ser injetado de forma que o Google não consegue ler (comum em sites SPA), fala comigo, faço uma análise técnica ao teu site e mostro-te exatamente o que está, e o que não está, a ser lido corretamente.
Partilha este artigo:
