Como funciona esta verificação
O Scanaris procura no HTML da tua página todas as etiquetas <script type="application/ld+json">, tenta interpretar cada uma como JSON e verifica se o resultado contém @context ou @type, que é o que distingue um bloco de schema.org de um JSON qualquer. Basta que um seja válido para não haver achado. Se não houver nenhum, ou os que há não se conseguem interpretar (uma vírgula a mais, aspas por fechar), abre um achado de severidade baixa. Não avalia se o tipo escolhido é o adequado nem se faltam propriedades; só se existe algo que a Google e os assistentes de IA possam ler.
Porque importa
Os dados estruturados são a forma de dizer a uma máquina, sem ambiguidade, o que é a tua página: isto é uma organização com este nome e este logótipo, isto é um artigo escrito por esta pessoa nesta data, isto é um produto a este preço com estas avaliações. A Google usa-os para os resultados enriquecidos (estrelas, preços, perguntas expansíveis, migalhas de pão) e para perceber entidades. Os assistentes de IA usam-nos para o mesmo mas com mais peso, porque lhes poupam interpretar o HTML: uma página com Article e Organization bem definidos tem mais probabilidades de ser citada com atribuição correta do que uma em que o modelo tem de adivinhar quem a escreveu. É severidade baixa porque não os ter não te tira de nenhum índice; só te torna mais difícil de perceber.
Como corrigir
Na home, no mínimo Organization e WebSite:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://teudominio.com/#org",
"name": "A tua empresa",
"url": "https://teudominio.com/",
"logo": "https://teudominio.com/logo.png",
"sameAs": ["https://github.com/tuaempresa", "https://www.linkedin.com/company/tuaempresa"]
},
{
"@type": "WebSite",
"url": "https://teudominio.com/",
"name": "A tua empresa",
"publisher": { "@id": "https://teudominio.com/#org" }
}
]
}
</script>
- Por tipo de página:
ArticleouBlogPostingnos posts (comauthor,datePublished,dateModified);Productcomoffersnas fichas de produto;SoftwareApplicationse vendes software;FAQPageonde houver perguntas e respostas reais;BreadcrumbListpara as migalhas de pão. - Nuxt:
useHead({ script: [{ type: 'application/ld+json', innerHTML: JSON.stringify(data) }] })em cada página, ou o módulo de schema.org que o gera a partir de componentes. - Next.js: uma etiqueta
<script type="application/ld+json">no layout ou na página com o JSON serializado. - WordPress: o Yoast e o Rank Math geram
Organization,WebSite,Articlee migalhas de pão sem tocar em código.
Os dados devem coincidir com o que se vê na página: a Google penaliza marcar avaliações ou preços que não existem. E o sameAs com os teus perfis públicos é o que liga a tua entidade ao que os modelos já sabem de ti noutras fontes.
Confirma que está corrigido
curl -s https://teudominio.com | grep -oE '<script type="application/ld\+json">[^<]*' | head -c 600
Deve sair o teu JSON. Depois cola-o no teste de resultados enriquecidos da Google ou no validador do schema.org: ambos te dizem se está sintaticamente correto e que propriedades recomendadas faltam.
Perguntas frequentes
JSON-LD ou microdados no HTML?
JSON-LD. É o formato que a Google recomenda, vai num bloco à parte sem sujar o template e é o mais fácil de gerar a partir de qualquer framework.
Pus FAQPage e a Google não mostra as perguntas expansíveis.
Desde 2023 a Google só mostra esse resultado enriquecido a sites governamentais e de saúde. A marcação continua a ser útil para os assistentes de IA extraírem as tuas perguntas e respostas, que é para isso que esta verificação a mede. Porque é que uns sites são citados e outros não, conta-o dados estruturados e citações de IA.
Isto substitui o título e a descrição?
Não, complementa-os. O título e a meta description continuam a ser o que a Google mostra; mede-os metadados SEO. Os dados estruturados são o que as máquinas percebem para além disso.