I motori di ricerca leggono il tuo HTML e provano a capire di cosa parla ogni pagina. Titoli, contenuto, link, tutto interpretato da un algoritmo che fa del suo meglio. Schema.org è la scorciatoia opzionale con cui dici esplicitamente ai motori: "questa pagina è un articolo, l'autore è X, è stato pubblicato il Y, parla di Z". I motori smettono di indovinare.

La ricompensa non è per forza un ranking più alto. La ricompensa sono risultati di ricerca più ricchi: stelline sotto una ricetta, prezzo sotto un prodotto, foto autore accanto a un articolo, data di un evento accanto a una conferenza, snippet FAQ sotto una pagina di aiuto. Le pagine con rich result hanno click-through più alto, e nel tempo questo conta più di un piccolo bump di ranking.

Questo articolo mostra i cinque tipi di Schema che quasi tutti i siti dovrebbero usare, come si scrivono in pratica e come validarli senza diventare esperti.

Come si aggiunge Schema a una pagina

Ci sono tre formati, tutti validi:

  • JSON-LD: un blocco <script type="application/ld+json"> nell'head o nel body. Raccomandato da Google. Il più facile da mantenere perché è separato dal markup HTML.
  • Microdata: attributi inline nell'HTML. Più vecchio, più verboso.
  • RDFa: come Microdata, ancora più verboso. Raramente usato.

Qui usiamo JSON-LD. Ogni esempio qui sotto è un blocco script da incollare nella pagina.

1. Organization (ogni sito, una volta)

Dice ai motori di ricerca chi c'è dietro al sito. Va in homepage, oppure su tutte le pagine se il tuo CMS supporta un blocco globale:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "MIND.DEV",
  "url": "https://mind.dev",
  "logo": "https://mind.dev/favicon.png",
  "foundingDate": "2008",
  "sameAs": [
    "https://www.linkedin.com/company/minddev-it/"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "email": "[email protected]",
    "contactType": "customer service"
  }
}
</script>

Cosa ti dà: il logo e il nome corretti nel Knowledge Panel di Google, un legame più stretto fra il tuo sito e i tuoi profili social, supporto per le feature di "Brand SERP".

sameAs è il campo per collegare i profili social. Google lo usa per confermare "sì, questa pagina LinkedIn appartiene a questa organizzazione".

2. Article (post di blog, news, journal)

Per ogni articolo del sito:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Cos'è davvero un dominio",
  "description": "Un dominio non è il tuo sito, l'hosting o un IP. È una voce in affitto in una rubrica gerarchica.",
  "datePublished": "2025-09-15",
  "dateModified": "2025-09-15",
  "author": {
    "@type": "Organization",
    "name": "MIND.DEV",
    "url": "https://mind.dev"
  },
  "publisher": {
    "@type": "Organization",
    "name": "MIND.DEV",
    "logo": {
      "@type": "ImageObject",
      "url": "https://mind.dev/favicon.png"
    }
  },
  "mainEntityOfPage": "https://mind.dev/it/journal/cosa-e-un-dominio"
}
</script>

Cosa ti dà: una presenza strutturata su Google News (se hai i requisiti), titolo e data dell'articolo nei rich result, supporto per i carosello "Top Stories" nella ricerca mobile.

author può essere anche un Person (con name, url e opzionalmente image). Per un journal pubblicato sotto un brand va bene la forma Organization.

3. Product (e-commerce)

Per ogni pagina prodotto:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Tazzina espresso, set di 6",
  "image": "https://example.com/cups.jpg",
  "description": "Tazzine espresso in ceramica dipinte a mano, 60ml, lavabili in lavastoviglie.",
  "brand": {"@type": "Brand", "name": "Bottega"},
  "sku": "ESP-006",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/espresso-cups",
    "priceCurrency": "EUR",
    "price": "29.00",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "126"
  }
}
</script>

Cosa ti dà: prezzo e disponibilità sotto il risultato di ricerca, stelline se hai recensioni, a volte il badge "spedizione gratis" se aggiungi anche shippingDetails. WooCommerce, Shopify, Magento lo supportano tutti tramite plugin o template.

4. FAQ (pagine FAQ, pagine di aiuto)

Per pagine organizzate come domande e risposte:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Quanto dura una registrazione di dominio?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Da 1 a 10 anni, a seconda del TLD e del prezzo che paghi."
      }
    },
    {
      "@type": "Question",
      "name": "Posso trasferire un dominio subito dopo la registrazione?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. ICANN impone un blocco di 60 giorni dopo la registrazione durante il quale il trasferimento ad un altro registrar non è permesso."
      }
    }
  ]
}
</script>

Cosa ti dà: un blocco FAQ espandibile direttamente nel risultato di ricerca, con ogni domanda cliccabile. Spinta di CTR forte quando si attiva.

5. BreadcrumbList (ogni sito con una gerarchia)

Per la struttura di navigazione:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {"@type": "ListItem", "position": 1, "name": "Home", "item": "https://mind.dev/"},
    {"@type": "ListItem", "position": 2, "name": "Journal", "item": "https://mind.dev/it/journal"},
    {"@type": "ListItem", "position": 3, "name": "Cos'è un dominio"}
  ]
}
</script>

Cosa ti dà: il percorso a briciole sotto il risultato di ricerca al posto dell'URL grezzo. Aspetto più pulito, CTR leggermente migliore.

Come validare

Due strumenti gratuiti, niente registrazione:

Schema.org Validator su validator.schema.org. Incolla un URL o il JSON grezzo, ottieni una lista di warning ed errori. Severo, a volte cattura cose che gli altri strumenti si perdono.

Google Rich Results Test su search.google.com/test/rich-results. Stessa idea, focalizzato su quello che Google capisce e su cosa fa scattare i rich result nella loro ricerca. Lo strumento più utile perché ti dice "il tuo schema Article è valido, ecco il rich result che produrrebbe".

Passa un URL su entrambi prima di pubblicare cambiamenti significativi. Entrambi gratis, entrambi rispondono in 10 secondi.

Cosa Schema non fa

Qualche limite onesto:

  • Non garantisce i rich result. Puoi avere un markup FAQ perfetto e Google decidere comunque di non mostrare il rich result FAQ per la tua pagina. Decidono loro. In particolare per le FAQ, Google ha stretto i criteri più volte dal 2023.
  • Non aumenta il ranking direttamente. Il beneficio di ranking, se c'è, è indiretto: i rich result prendono più click, più click migliorano la pagina nel tempo.
  • Non aggiusta un contenuto debole. Una pagina con schema ricco e contenuto povero non rankera.
  • Mentire nello schema è una manual penalty. Mettere aggregateRating: 5 su una pagina senza recensioni è una violazione delle linee guida di Google e può portare a un'azione manuale che spazza via tutti i rich result dal tuo dominio. Marca solo quello che è davvero presente nella pagina.

Un piano pragmatico

Se parti da zero:

  1. Aggiungi lo schema Organization in homepage. Cinque minuti.
  2. Aggiungi lo schema Article automaticamente a ogni post del blog tramite il CMS. WordPress con Yoast o Rank Math lo fa senza che tu scriva JSON.
  3. Se hai un negozio, configura lo schema Product nella piattaforma e-commerce. Quasi tutte lo fanno nativamente.
  4. Aggiungi BreadcrumbList se il sito ha una gerarchia. Anche questo viene gestito automaticamente da quasi tutti i CMS.
  5. Salta le FAQ a meno che tu non abbia davvero una pagina FAQ.

Valida con i due strumenti qui sopra. Rivalida dopo ogni cambio di template. L'investimento è piccolo, il ritorno in rich result, quando arriva, è reale e stabile.