Ogni sito web si basa su strutture di dati. Il codice HTML comprende già elementi di markup (tag) con i quali si possono assegnare a singole parti di testo delle proprietà spe­ci­fi­che, definire l’ap­par­te­nen­za ad una classe o spe­ci­fi­ca­re altre forme di vi­sua­liz­za­zio­ne (come i rich snippet o il Knowledge Graph). Gli svi­lup­pa­to­ri indicano così paragrafi, titoli, elenchi e col­le­ga­men­ti iper­te­stua­li, impostano i grassetti o i corsivi e mettono in risalto elementi come grafici, tabelle o video. I programmi che scan­sio­na­no il codice ricevono in­for­ma­zio­ni det­ta­glia­te circa la struttura di un documento HTML e sulla vi­sua­liz­za­zio­ne degli elementi evi­den­zia­ti tramite tag. Tuttavia, la scansione au­to­ma­ti­ca dei crawler non riesce a com­pren­de­re quali siano i contenuti messi a di­spo­si­zio­ne. Prendiamo, ad esempio, un articolo di news su una piat­ta­for­ma in­for­ma­ti­va: l’immagine a sinistra mostra quali in­for­ma­zio­ni ver­reb­be­ro capite da un programma, a destra, invece, è indicato come una persona va­lu­te­reb­be l’articolo:

Mentre un utente in carne e ossa capisce subito che con l’headline si indica il titolo dell’articolo, con la su­b­head­li­ne si nomina l’autore e il testo in corsivo mostra la data di pub­bli­ca­zio­ne, un programma che scansiona la pagina vede solo le in­for­ma­zio­ni che sono state messe in evidenza nel codice HTML: headline (<h1>), su­b­head­li­ne (<h2>), italic (<i>). Questi elementi sono rilevanti per il crawler di un motore di ricerca che dovrebbe così essere aiutato a valutare la rilevanza della pagina per una ricerca. Perciò molti gestori di siti ar­ric­chi­sco­no i loro documenti HTML con in­for­ma­zio­ni se­man­ti­che leggibili dai crawler, grazie alle quali viene definito il si­gni­fi­ca­to dei singoli contenuti. In questo caso si parla di dati strut­tu­ra­ti.

A che cosa servono i dati strut­tu­ra­ti?

L’idea di strut­tu­ra­re i dati di una pagina in modo tale che le in­for­ma­zio­ni scritte dagli uomini possano essere elaborate dai programmi, risale al concetto di web semantico. Se usati cor­ret­ta­men­te, i dati strut­tu­ra­ti per­met­to­no la scansione au­to­ma­ti­ca dei contenuti delle pagine. Ciò è so­prat­tut­to im­por­tan­te per i motori di ricerca che si basano sui testi come Google, Bing o Yahoo. Se il documento è scritto in un lin­guag­gio di markup corretto, i motori di ricerca riescono a valutare le in­for­ma­zio­ni se­man­ti­che e ad ela­bo­rar­le sotto forma di Knowledge Graph o rich snippet, che sono molto im­por­tan­ti per i gestori dei siti.

I rich snippet sono degli estratti dei contenuti di una pagina, che vengono vi­sua­liz­za­ti nei risultati di ricerca (SERPs) insieme alle in­for­ma­zio­ni prin­ci­pa­li come URL, titolo e de­scri­zio­ne. Il pre­re­qui­si­to prin­ci­pa­le è che tutti i contenuti rilevanti siano stati op­por­tu­na­men­te evi­den­zia­ti nel codice HTML e assegnati ad un tipo di in­for­ma­zio­ne preciso. At­tual­men­te, il leader del settore Google elabora i dati strut­tu­ra­ti, mettendo a di­spo­si­zio­ne i rich snippet per i seguenti tipi di dati:

  • In­for­ma­zio­ni sui prodotti: prezzo, di­spo­ni­bi­li­tà, va­lu­ta­zio­ne e re­cen­sio­ni
  • Ricette: immagine, tempo di pre­pa­ra­zio­ne, calorie e va­lu­ta­zio­ne
  • Re­cen­sio­ni: ri­sto­ran­ti, film, negozi, ecc.
  • Eventi: musical, concerti, mostre o festival con in­di­ca­zio­ni circa la durata dell’evento
  • Software: va­lu­ta­zio­ne, prezzo, re­cen­sio­ni
  • Video: de­scri­zio­ne e immagine di anteprima
  • Articoli di news: titolo, data di pub­bli­ca­zio­ne, in­for­ma­zio­ni sull’autore e immagine

I vantaggi dei rich snippet con­si­sto­no es­sen­zial­men­te nel fatto che occupano maggiore spazio tra i risultati di ricerca, emergendo rispetto agli altri e venendo così cliccati mag­gior­men­te. È possibile ampliare la vi­sua­liz­za­zio­ne di questi risultati tramite brea­d­crumbs (una tecnica di na­vi­ga­zio­ne) e il Sitelinks Search Box.

Dopo alcune di­chia­ra­zio­ni, Google ha attivato il Sitelinks Search Box per le ricerche na­vi­ga­zio­na­li, in cui il sito cercato viene già desunto dalla ricerca del brand, del nome del marchio o dell’URL, ma rimane ancora poco chiaro quale pagina del sito si voglia visitare. Agli utenti è così permesso di navigare nelle pagine di­ret­ta­men­te dalle SERPs, senza cliccare inu­til­men­te prima di trovare la pagina de­si­de­ra­ta.

I Brea­d­crumbs mostrano la posizione di un risultato nella struttura di un sito e aiutano gli utenti dei motori di ricerca ad orien­tar­si:

Quali risultati vengono vi­sua­liz­za­ti ampliati con elementi ag­giun­ti­vi, rimane a di­scre­zio­ne del motore di ricerca. Si consiglia però di mettere cor­ret­ta­men­te in risalto gli elementi del proprio sito, in quanto i motori di ricerca riescono a generare rich snippet, brea­d­crumbs o un Sitelinks Search Box, solo in presenza di dati strut­tu­ra­ti.

Strut­tu­ra­re i dati sul proprio sito

Per rendere i contenuti leggibili dai crawler grazie ai dati strut­tu­ra­ti, da un po’ di tempo sono di­spo­ni­bi­li quattro formati standard: i mi­cro­for­ma­ti, RDFa, i microdati e JSON-LD. I primi tre si basano su markup semantici, inseriti di­ret­ta­men­te nel codice HTML. Inoltre, a seconda del formato, si applicano i classici attributi HTML o nuovi elementi di markup. Da alcuni anni è in aumento l’utilizzo del formato dati JSON-LD, che consente un’an­no­ta­zio­ne agevole di uno script.

Mi­cro­for­ma­ti

Il formato mi­cro­for­ma­ti (in inglese mi­cro­for­ma­ts) serve per il markup semantico dei documenti HTML e XHTML. Qui si applicano anche i classici attributi HTML come class, rel e rev, che possono essere estratti dal codice delle pagine e con­sen­to­no ai programmi, come ai crawler, di scan­sio­na­re le in­for­ma­zio­ni se­man­ti­che. Un’ap­pli­ca­zio­ne classica è il markup dei dati di contatto con il mi­cro­for­ma­to hCard, che viene integrato nel codice HTML come class="vcard":

Classico markup dei dati di contatto in HTML

01<div>
02<div>Nome Cognome</div>
03<div>Azienda</div>
04<div>Numero di telefono</div>
05<a href="http://homepage.it/">http://homepage.it</a>
06</div>

Classico markup dei dati di contatto con il mi­cro­for­ma­to hCard

01<div class="vcard">
02<div class="fn">Nome Cognome </div>
03<div class="org">Azienda</div>
04<div class="tel"> Numero di telefono </div>
05<a class="url" href="http://homepage.it/">http://homepage.it/</a>
06</div>

Mentre i dati di contatto vengono evi­den­zia­ti nel lin­guag­gio HTML solo tramite elementi non specifici <div>, l’in­se­ri­men­to del mi­cro­for­ma­to hCard con l’attributo class="vcard" consente delle an­no­ta­zio­ni se­man­ti­che per le singole in­for­ma­zio­ni, come ad esempio nomi, or­ga­niz­za­zio­ni o numeri di telefono. Un vantaggio di questo tipo di markup è la sem­pli­ci­tà di ap­pli­ca­zio­ne, in quanto si ricorre ai già co­no­sciu­ti attributi HTML. Ciò no­no­stan­te le pos­si­bi­li­tà di an­no­ta­zio­ni se­man­ti­che tramite i mi­cro­for­ma­ti risultano per questo limitate ad una scelta non am­plia­bi­le di elementi pre­de­fi­ni­ti. Inoltre l’utilizzo dell’attributo class può generare dei conflitti con il codice CSS. Un’API per l’estra­zio­ne dei dati non è sup­por­ta­ta nei mi­cro­for­ma­ti.

RDFa

RDFa sta per “Resource De­scrip­tion Framework in At­tri­bu­tes”. Il W3C consiglia di usare questo formato per integrare le af­fer­ma­zio­ni RDF in HTML, XHTML e in diverse varianti XML. Al posto di basarsi sui classici attributi HTML, il formato RDFa ne introduce di nuovi, che con­sen­to­no un’an­no­ta­zio­ne semantica più complessa. L’esempio seguente mostra i dati di contatto come dati strut­tu­ra­ti nel formato RDFa:

Markup dei dati di contatto con RDFa

01<div xmlns:v="http://rdf.data-vo­ca­bu­la­ry.org/#" typeof="v:Person">
02<div property="v:name">Nome Cognome </div>
03<div property="v:af­fi­lia­tion">Azienda</div>.
04<div property="v:tel">Numero di telefono </div>
05<a href="http://www.homepage.it" rel="v:url">www.homepage.it</a>.
06</div>

Se i dati vengono evi­den­zia­ti nel formato RDFa, deve essere definito sin dall’inizio il nome dell’elemento. L’attributo typeof determina il soggetto di un’af­fer­ma­zio­ne RDF e indica con quale tipo di dati viene associato il soggetto. L’attributo property definisce il predicato dell’af­fer­ma­zio­ne e indica una proprietà per il contenuto di un elemento. L’alta com­ples­si­tà dell’an­no­ta­zio­ne e la pos­si­bi­li­tà di definire un proprio vo­ca­bo­la­rio rientrano tra i vantaggi di strut­tu­ra­re i dati tramite RDFa. Grazie a prefissi il codice può rimanere compatto. RDFa supporta un’in­ter­fac­cia di pro­gram­ma­zio­ne di tipo DOM (Document Object Model Ap­pli­ca­tion Pro­gram­ming Interface) con la quale si possono estrarre i dati strut­tu­ra­ti di una pagina web e uti­liz­zar­li per ap­pli­ca­zio­ni in­te­rat­ti­ve. Prima rap­pre­sen­ta­va uno svan­tag­gio l’ap­pli­ca­zio­ne del formato prin­ci­pal­men­te ai linguaggi XML e XHTML, ma ora è possibile integrare il formato RDFa anche nell’HTML5. Un vo­ca­bo­la­rio stan­dar­diz­za­to per la notazione con RDFa si trova su schema.org. Il tutorial “Markup con RDFa secondo Schema.org” fornisce una guida det­ta­glia­ta al riguardo.

Microdati

I microdati (microdata) sono elementi dell’HTML5 definiti se­pa­ra­ta­men­te, che ampliano il vo­ca­bo­la­rio esistente del lin­guag­gio di markup con attributi necessari per l’in­te­gra­zio­ne delle an­no­ta­zio­ni se­man­ti­che. Come i mi­cro­for­ma­ti e RDFa, anche questo formato utilizza attributi semplici tramite tag HTML per assegnare proprietà agli elementi. La sintassi dei microdati si basa su un vo­ca­bo­la­rio che descrive gli elementi (chiamati items) come coppie di valori e nomi. Questo formato di markup si presenta così come un com­pro­mes­so tra fles­si­bi­li­tà, rag­giun­gi­bi­li­tà e una minore com­ples­si­tà. I microdati sup­por­ta­no il formato nativo di espor­ta­zio­ne JSON, che consente la tra­smis­sio­ne e la me­mo­riz­za­zio­ne dei dati strut­tu­ra­ti, e i microdati con un’in­ter­fac­cia di pro­gram­ma­zio­ne di tipo DOM. Anche questo formato è com­pa­ti­bi­le con il vo­ca­bo­la­rio di Schema.org. Nel tutorial di ap­pro­fon­di­men­to “Markup con microdati secondo Schema.org” potete leggere alcuni esempi di ap­pli­ca­zio­ne.

JSON-LD

Il formato JSON-LD è lo standard più recente nel lin­guag­gio semantico dei dati delle pagine web. L’acronimo sta per “Ja­va­Script Object Notation for Linked Data“, cioè se­ria­liz­za­zio­ne dei dati collegati tra di loro basati su oggetti Ja­va­Script. Google indica JSON-LD come il formato di markup più semplice, ma non lo supporta ancora per tutti i tipi di dati. Al contrario dei mi­cro­for­ma­ti, RDFa e dei microdati, JSON-LD non si basa sugli attributi nei tag HTML, ma viene inserito in uno script un blocco con dati JSON in un punto qualsiasi del codice HTML. A questo proposito il tutorial “Markup con JSON-LD secondo Schema.org” mostra come funziona e a cosa bisogna prestare at­ten­zio­ne nel markup con JSON-LD.

Il progetto Schema.org

Google, Bing, Yahoo e Yandex, i prin­ci­pa­li motori di ricerca, hanno dato vita ad una community con il nome di Schema.org con l’obiettivo di unificare l’an­no­ta­zio­ne semantica dei contenuti web. Sul sito omonimo di questo progetto comune è indicato un set unitario di schemi per i dati strut­tu­ra­ti. Schema.org supporta i formati RDFa, micordati e JSON-LD. Una de­scri­zio­ne det­ta­glia­ta del progetto si trova nell’articolo di ap­pro­fon­di­men­to su Schema.org.

Testare i dati strut­tu­ra­ti su Google

Il markup dei documenti HTML tramite notazioni se­man­ti­che richiede una certa sen­si­bi­li­tà. Per evitare errori, si consiglia di im­ple­men­ta­re per gradi il codice sorgente di una pagina e di con­va­li­da­re i markup dopo ogni passaggio. A questo proposito Google mette a di­spo­si­zio­ne gra­tui­ta­men­te lo Strumento di test per i dati strut­tu­ra­ti. Così i gestori di un sito possono inserire singoli frammenti di codice o l’URL di un sito e ve­ri­fi­ca­re se sono presenti errori nel codice sorgente. Inoltre Google offre con l’Evi­den­zia­to­re di dati uno strumento con cui è possibile taggare i dati di­ret­ta­men­te sul sito tramite il browser. Per questo le parti in­te­res­sa­te vengono evi­den­zia­te sem­pli­ce­men­te con il mouse e dotate di una parola chiave. È da notare che per questo tipo di an­no­ta­zio­ne semantica, i markup non possono essere applicati di­ret­ta­men­te nel codice sorgente. I campi taggati possono essere scan­sio­na­ti solo da Google e uti­liz­za­ti per una vi­sua­liz­za­zio­ne ampliata nelle SERPs. Gli altri motori di ricerca come Bing o Yahoo non riescono a capire queste relazioni se­man­ti­che.

Vai al menu prin­ci­pa­le