ai
Schema del tipo di contenuto
MetricSpot verifica un `@type` JSON-LD che corrisponda a cos'è davvero la pagina — Article, Product, HowTo, FAQPage, ecc. Senza, gli agenti IA devono indovinare.
Cosa verifica questo controllo
Parsifica ogni blocco <script type="application/ld+json"> sulla pagina e verifica che almeno uno dichiari un @type corrispondente allo scopo effettivo della pagina. Un post di blog dovrebbe dichiarare Article (o BlogPosting / NewsArticle); una pagina prodotto Product; una guida step-by-step HowTo; una pagina FAQ FAQPage. Una pagina che emette solo schema WebPage o WebSite fallisce — questi tipi sono troppo generici per dire qualcosa di utile agli agenti.
Perché è importante
JSON-LD è l’impalcatura che agenti IA e motori di ricerca usano per capire una pagina senza parsare la prosa. Quando @type è specifico, ChatGPT, Perplexity e Google AI Overviews sanno quali campi estrarre (headline, author, datePublished per un Article; price, availability, aggregateRating per un Product) e come citare la pagina nelle risposte.
Quando @type manca o è generico, l’agente ripiega su euristiche basate sul testo del corpo — più lente, meno accurate e molto più propense a saltare la tua pagina a favore di un concorrente con marcatura migliore. La stessa logica si applica ai rich result Google: solo i tipi specifici sbloccano le funzionalità SERP (stelle delle recensioni, schede ricetta, accordion FAQ) che alzano il click-through rate.
Come sistemarlo
Scegli il @type che meglio corrisponde alla pagina ed emetti un blocco JSON-LD completo nell’<head>.
Article / BlogPosting / NewsArticle — per contenuto editoriale. Usa NewsArticle per notizie datate; BlogPosting per post di blog; il semplice Article è il default sicuro.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to enable HSTS on nginx",
"datePublished": "2026-05-11",
"dateModified": "2026-05-11",
"author": {
"@type": "Person",
"name": "Jane Doe",
"url": "https://example.com/authors/jane-doe"
},
"image": "https://example.com/og/hsts.png",
"mainEntityOfPage": "https://example.com/blog/hsts"
}
</script>
HowTo — per guide step-by-step (ricette, istruzioni di riparazione, tutorial di setup). Campi richiesti: name, step.
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "Enable HSTS on nginx",
"step": [
{ "@type": "HowToStep", "name": "Add the header", "text": "Add `add_header Strict-Transport-Security ...` to your server block." },
{ "@type": "HowToStep", "name": "Reload nginx", "text": "Run `nginx -t && systemctl reload nginx`." }
]
}
FAQPage — solo quando la pagina è genuinamente un Q&A. Vedi Schema FAQ per il pattern completo.
Product — per pagine prodotto individuali. Includi offers, aggregateRating, review quando li hai.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "MetricSpot Premium",
"description": "Unlimited audits, scheduled monitoring, PDF reports.",
"brand": { "@type": "Brand", "name": "MetricSpot" },
"offers": {
"@type": "Offer",
"price": "29.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
Next.js — inietta tramite <Script> dell’App Router o un helper di metadati:
import Script from "next/script";
export default function Post() {
const schema = {
"@context": "https://schema.org",
"@type": "BlogPosting",
headline: "How to enable HSTS on nginx",
datePublished: "2026-05-11",
author: { "@type": "Person", name: "Jane Doe" }
};
return (
<Script id="ld" type="application/ld+json">
{JSON.stringify(schema)}
</Script>
);
}
Astro — imposta il JSON-LD nell’<head> del tuo layout:
---
const schema = { "@context": "https://schema.org", "@type": "BlogPosting", /* … */ };
---
<script type="application/ld+json" set:html={JSON.stringify(schema)} />
WordPress — Yoast SEO, Rank Math e SEOPress emettono tutti automaticamente schema Article per i post. Controlla il sorgente renderizzato per confermare che @type sia Article / BlogPosting, non solo WebPage. Per le pagine prodotto, WooCommerce emette di default lo schema Product.
Dopo aver pubblicato, valida con il Rich Results Test di Google e il Schema Markup Validator. Vedi anche: Dati strutturati JSON-LD, Schema organization.
Domande frequenti
Una pagina può avere più blocchi @type?
Sì — comune e consigliato. Un post di blog tipicamente spedisce Article + BreadcrumbList + Organization. Ognuno va nel suo blocco <script type="application/ld+json">, oppure combinali in un singolo array @graph. Non andare in conflitto (non dichiarare la pagina sia come Article sia come Product).
Dovrei usare Article o BlogPosting?
BlogPosting è una sottoclasse di Article — leggermente più specifica, nessuno svantaggio. Usa BlogPosting per contenuti di blog, NewsArticle per notizie datate, Article per contenuti editoriali evergreen o guide tecniche. Google li tratta equivalentemente per i rich result.
E se la mia pagina non rientra in nessun tipo di schema?
Le pagine landing generiche possono rimanere su WebPage — questo controllo le segnalerà come warning soft piuttosto che come fallimento netto. Ma la maggior parte dei casi “non rientra” in realtà rientra in qualcosa: una pagina pricing è un Product o Service, una pagina about è AboutPage, una pagina contatti è ContactPage. Sfoglia l’elenco completo dei tipi di schema.org prima di accontentarti di WebPage.
Fonti
Ultimo aggiornamento 2026-05-11