Entity SEO and Semantic Publishing

Illustrazione con logo dell'app The Entities' Swissknife - Studio Makoto Agenzia di Marketing e Comunicazione

The Entities’ Swissknife: la app che ti semplifica il lavoro

The Entities’ Swissknife è una app per l’Entity SEO, l’Entity Linking e la Semantic Publishing sviluppata in Python e interamente dedicata a favorire l’ottimizzazione dei testi intorno alle entità riconosciute da Google NLP API o TextRazor API. Oltre all’estrazione delle Entità, The Entities’ Swissknife permette di fare Entity Linking e Semantic Publishing, generando automaticamente lo schema markup necessario a esplicitare ai motori di ricerca quali sono le entità a cui si riferisce il contenuto della nostra pagina web.

The Entities’ Swissknife può aiutarti a:

  • sapere come gli algoritmi di NLU (Natural Language Understanding) “comprendono” il tuo testo in modo da poterlo ottimizzare fino a quando i topic che sono più importanti per te hanno il miglior punteggio di rilevanza/salienza;
  • analizzare le pagine dei tuoi competitor in SERP per scoprire possibili lacune nei tuoi contenuti;
  • generare il markup semantico in JSON-LD da iniettare nello schema della tua pagina per esplicitare ai motori di ricerca di quali topic tratta la tua pagina; 
  • analizzare testi brevi come il copy di un annuncio o una bio/descrizione per una about page. Puoi mettere a punto il testo fin quando Google riconosce con sufficiente confidenza le entità per te rilevanti e assegna loro la giusta salienza.

Scritta da Massimiliano Geraci per Studio Makoto, The Entities’ Swissknife è stata rilasciata pubblicamente su Streamlit, una piattaforma che a partire dal 2020 si è garantita un posto di tutto rispetto tra i data scientist che utilizzano Python.

Può essere utile chiarire innanzitutto cosa si intende per Entity SEO, Semantic Publishing, Schema Markup per poi tuffarci nell’utilizzo di The Entities’ Swissknife.

In questo video mostro un workflow di Semantic Publishing che include l’uso di Classyschema, Schema Path, SNIP, WordLift e The Entities’ Swissknife.

Entity SEO

L’Entity SEO è un approccio avanzato della SEO che riguarda l’attività di ottimizzazione on-page. L’entity SEO, in accordo con l’evoluzione semantica dei motori di ricerca (Semantic Search Engine), tiene conto non delle keyword ma delle entità (o sub-topic) che costituiscono il topic della pagina.
Lo spartiacque che segna la nascita dell’Entity SEO è rappresentato dall’articolo pubblicato nel Blog ufficiale di Google, che annuncia la realizzazione del suo Knowledge Graph.
Il celebre titolo “from strings to things” esprime in modo netto e chiaro quale sarebbe stata la principale tendenza nella Search negli anni a venire a Montain view.

Per capirci e semplificare le cose, possiamo dire che “things” è più o meno un sinonimo di entità.
In generale, le entità sono oggetti o concetti che possono essere identificati in modo univoco, spesso persone, luoghi e cose, “things” appunto.

È più facile capire cosa sia un’entità facendo riferimento ai topic, termine che Google preferisce usare nelle sue comunicazioni per un pubblico più ampio.
A ben vedere, i topic sono più ampi semanticamente rispetto alle cose. A loro volta, le cose – le things – che appartengono a un topic, e concorrono a definirlo, sono entità.
Perciò, un’entità è qualsiasi concetto o oggetto appartenente al mondo, o a uno dei tanti “mondi possibili” (per esempio quelli letterari o comunque di fantasia), tanto per citare il mio caro prof. Umberto Eco.

Semantic publishing

La Semantic Publishing è l’attività di pubblicazione di una pagina su internet a cui si aggiunge un layer, uno strato semantico sotto forma di dati strutturati che descrivono la pagina stessa. La Semantic Publishing aiuta motori di ricerca, assistenti vocali o agenti intelligenti d’altro tipo a comprendere significato, contesto e struttura della pagina, rendendo la ricerca delle informazioni e l’integrazione dei dati più efficiente.
La pubblicazione semantica si basa sull’adozione di dati strutturati e sul collegamento fra le entità trattate in un documento e le stesse entità presenti in vari database pubblici.

Una pagina web, per come appare stampata sullo schermo, contiene informazioni in un formato non strutturato, o scarsamente strutturato (per esempio la suddivisione di paragrafi e sotto-paragrafi) pensate per essere comprese dagli umani.

Differenze fra un motore di ricerca Lessicale e un motore di ricerca Semantico

Mentre un tradizionale motore di ricerca Lessicale si basa grosso modo sul matching delle keyword, ossia semplici stringhe di testo, un motore di ricerca Semantico è in grado di “comprendere” – o almeno ci prova – il significato delle parole, la loro correlazione semantica, il contesto in cui sono inserite all’interno di un documento o di una query, arrivando così a una più precisa comprensione dell’intento di ricerca dell’utente in modo da generare risultati più rilevanti. 
Un motore di ricerca Semantico deve queste sue capacità ad algoritmi di NLU, Natural Language Understanting, nonché alla presenza di dati strutturati.

SEO e scrittura per un Semantic Search engine

Scrivere per un motore di ricerca Semantico vuol dire scrivere in modo semplificato sia a livello di vocabolario che di sintassi (in questo senso la Semantic SEO ha riportato in auge l’uso degli indici di leggibilità), e soprattutto si concentra sull’intento dell’utente e tiene in considerazione gli argomenti correlati che l’utente potrebbe cercare in futuro.

L’altro aspetto fondamentale riguarda la struttura dei contenuti, la creazione di cluster di contenuti – specifiche strutture composte da un articolo centrale detto pillar e una serie di articoli di supporto interlinkati in modo che sviluppino un topic comprendo tutti i possibili sub-topic (per approfondire ti consiglio questo articolo di Samuel Schitt sui topic cluster e la SEO).

E fin qui, in fondo, le novità non sono così sconvolgenti.
È piuttosto la progettazione del proprio sito come fosse un knowledge graph, anche dal punto di vista dei link interni, a fare davvero la differenza. Mostrare – e dichiarare attraverso i Dati Strutturati tutte le entità di cui parliamo, i loro attributi (che possono essere ulteriori entità) e le loro relazioni.

Cosa sono e a cosa servono i Dati Strutturati

Si parla di dati strutturati quando i dati sono in un formato standardizzato, hanno una struttura ben definita, sono conformi a un modello di dati, seguono un ordine persistente e sono facilmente accessibili da esseri umani e macchine.

I dati strutturati sono quei metadati che si aggiungono al codice HTML e coi quali è possibile rendere esplicite in un modo immediatamente comprensibile dalle macchine:

  • la struttura di una pagina, ossia le varie parti di cui è composta, o le unità discrete di contenuto in essa presenti (un video, un accordion con le FAQ, un elenco/feed di prodotti, ecc.);
  • le relazioni fra le varie unità discrete di contenuto presenti sulla pagina come sul sito;
  • il soggetto principale a cui il sito è riferito (un brand, un business locale, i servizi offerti) o chi ne ha creato i contenuti e se questi contenuti sono degli articoli, dei post di un blog, magari speakable, ossia pronti a essere letti da un assistente vocale, o, ancora, contenuti multimediali come un video; 
  • a un livello ulteriore di granularità, i dati strutturati permettono di esplicitare il topic trattato a livello di pagina, ossia, come ho spiegato all’inizio, le entità espresse che costituiscono il topic trattato.

I dati strutturati possono essere espressi in diversi linguaggi e con diversi vocabolari di riferimento.

Topic Modeling e Content Modeling

La mappatura delle unità discrete di contenuto (Content Modeling) a cui accennavo, può essere utilmente svolta in fase di design e può essere messa in relazione con la mappa dei topic trattati o da trattare (Topic Modeling) e ancora ai dati strutturati che esprimono entrambi.
È una pratica affascinante che permette di progettare un sito e svilupparne i contenuti
mirando alla trattazione esaustiva di un topic e ad acquisire Topical Authority.
La Topical Authority può essere descritta come la “profondità della competenza” di un emittente così come viene percepita dai motori di ricerca. Agli occhi dei motori, puoi diventare una fonte autorevole  delle informazioni che riguardano quella rete (semantica) di entità che definiscono il topic scrivendo costantemente contenuti originali di alta qualità ed esaustivi.

La nascita del consorzio schema.org

Proprio perché i dati strutturati possono essere espressi in molteplici modi, nel 2011 i big della Search, originariamente con Yahoo in testa, e a seguire Google, Bing e anni dopo Yandex, hanno costituito il consorzio schema.org che ha il compito di sviluppare quel vocabolario fatto di tipi e proprietà (e valori) che permette di definire il contenuto di una pagina web con sempre maggiori dettagli immediatamente comprensibili alle macchine.
I dati strutturati, necessari alla Pubblicazione Semantica, vengono dunque espressi dallo schema markup (il vocabolario di schema.org) e se ne raccomanda l’implementazione in formato JSON-LD. 

I migliori plugin WordPress per iniettare le entità nello schema markup

Nonostante l’adozione di schema abbia raggiunto il 40% dei siti web, l’implementazione avviene spesso in modo non ottimale e questo per via del fatto che i webmaster si limitano spesso all’utilizzo di plugin che automatizzano il processo di pubblicazione del markup senza in effetti fare tutte quelle personalizzazioni che servono a rappresentare al meglio ogni pagina.
Se si utilizza WordPress, suggerisco i plugin SNIP o uSchema, che permettono di creare dei template, da assegnare alle varie pagine, con proprietà che si possono modificare a livello di singola pagina.
Nel nostro caso particolare, come abbiamo visto, si tratta delle proprietà about, mentions, e sameAs.

Entity linking / Wikification

L’Entity Linking è il processo di identificare le entità in un documento testuale e mettere in relazione queste entità con i loro identificatori unici in una Knowledge Base.
Si parla di Wikification quando le entità presenti nel testo sono mappate alle entità presenti nelle risorse della Wikimedia Foundation, ossia Wikipedia e Wikidata.

The Entities’ Swissknife ti aiuta a strutturare il tuo contenuto, per poi renderlo più facilmente comprensibile ai motori di ricerca, estraendo le entità presenti nel testo che vengano poi wikificate.
Se si selezionano le API di Google NLP l’Entity Linking avverrà anche verso le entità corrispondenti presenti nel Google Knowledge Graph.

Le property “about”, “mentions” e “sameAs” dello schema markup

Le entità possono essere iniettate nel markup semantico al fine di dichiarare esplicitamente che il nostro documento tratta di alcuni specifici luoghi, prodotti, brand, concetti, o oggetti.
Le property del vocabolario schema che vengono utilizzate per la Pubblicazione Semantica e che fanno da ponte fra dati strutturati ed Entity SEO, sono le property “about”, “mentions” e “sameAs”.


Si tratta di proprietà tanto potenti quanto purtroppo sottoutilizzate dai SEO, soprattutto da parte di chi utilizza i dati strutturati al solo scopo di poter ottenere i Rich Result (FAQ, stelle delle recensioni, caratteristiche di un prodotto, video, ricerca interna del sito, ecc.) creati da Google sia per migliorare l’aspetto e le funzionalità della SERP ma anche per incentivare l’adozione di questo standard.
Dichiara il topic/entità principale del tuo documento (pagina web) con la proprietà about e usa, invece, la proprietà mentions per dichiarare i topic secondari, anche a scopo di disambiguazione.

Come usare correttamente le property about e mentions

La proprietà about dovrebbe riferirsi a 1-2 entità al massimo, e queste entità dovrebbero essere presenti nel titolo H1.
Le proprietà ‘mentions’ non dovrebbero essere più di 3-5 a seconda della lunghezza dell’articolo. Come regola generale, un’entità (o sub-topic) dovrebbe essere esplicitamente menzionata nello schema markup se c’è un paragrafo, o una porzione sufficientemente significativa del documento dedicata all’entità. Tali entità “menzionate” dovrebbero anche essere presenti nel relativo headline, H2 o successivi.

Una volta selezionate le entità da usare come valori delle property mentions ed about, The Entities’ Swissknife effettua l’Entity-Linking, attraverso la property sameAs, e genera lo schema markup da annidare in quello che hai creato per la tua pagina.

Per utilizzare The Entities’ Swissknife

Occorre inserire la propria API keyword di TextRazor o uploadare le credenziali (il file JSON) relativo alle API di Google NLP. 
Per ottenere le API key è sufficiente iscriversi gratuitamente al sito di TextRazor o alla Google Cloud Console seguendo queste semplici istruzioni.
Entrambe le API prevedono una quota giornaliera gratuita di “chiamate” (call), più che sufficiente per l’uso personale.

Entity SEO e Semantic Publishing: Insert TextRazor API KEY - Studio Makoto Agenzia di Marketing e Comunicazione
Insert TextRazor API KEY – Studio Makoto Agenzia di Marketing e Comunicazione
Entity SEO e Semantic Publishing: Upload Google NLP API key as a JSON file - Studio Makoto Agenzia di Marketing e Comunicazione
Upload Google NLP API key as a JSON file – Studio Makoto Agenzia di Marketing e Comunicazione

Nella versione attualmente online non è necessario inserire alcuna key perché ho deciso di permettere l’uso delle mie API (le key sono inserite come secrets su Streamlit) fintanto che non eccederà la mia personale quota giornaliera, approfittane!

Entity SEO e Semantic Publishing: The Entities' Swissknife - Studio Makoto Agenzia di Marketing e Comunicazione
The Entities’ Swissknife – Studio Makoto Agenzia di Marketing e Comunicazione

Quando scegliere le API di TextRazor o quelle di Google NLP

Dalla sidebar di destra è possibile selezionare, dai rispettivi dropdown menu, se utilizzare le API di TextRazor o quelle di Google NLP. Inoltre, si può decidere se l’input sarà un URL o un testo.

Entity SEO e Semantic Publishing: 
Selezionare le API TextRazor - Studio Makoto Agenzia di Marketing e Comunicazione
Selezionare le API TextRazor – Studio Makoto Agenzia di Marketing e Comunicazione

Personalmente preferisco usare le API di TextRazor per iniettare le entità nei dati strutturati e quindi per la Semantic Publishing vera e propria. Queste API, infatti, estraggono sia l’URI della relativa pagina su Wikipedia che l’ID (la Q) delle entry su Wikidata.

Se sei interessato ad aggiungere, come property sameAs del tuo schema markup, anche l’URL del Knowledge Panel relativo all’entità da esplicitare, a partire dall’ID dell’entità all’interno del Google Knowledge Graph, allora dovrai utilizzare le API di Google.

Copy Sandbox

Se vuoi utilizzare The Entities’ Swissknife come Copy sandbox, ossia vuoi testare come viene compreso un copy di vendita oppure la descrizione di un prodotto, o la tua biografia nella tua Entity home, allora è meglio utilizzare le API di Google, dato che è da lui che il nostro copy dovrà essere capito.

Entity SEO e Semantic Publishing: The Entities’ Swissknife come Copy sandbox - Studio Makoto Agenzia di Marketing e Comunicazione
The Entities’ Swissknife come Copy sandbox – Studio Makoto Agenzia di Marketing e Comunicazione

Le altre opzioni

È possibile estrarre le entità solo da meta_title, meta_description ed headline 1-4.
Di default The Entities’ Swissknife, che usa le API pubbliche di Wikipedia per fare scraping della definizione delle entità, si limita, per risparmiare tempo, alle sole entità selezionate come valori di about e mentions. È possibile però spuntare l’opzione per “scrappare” le descrizioni di tutte le entità estratte e non solo quelle selezionate.

Se si scelgono le API di TextRazor c’è la possibilità di estrarre anche Categorie e Topic del documento secondo le tassonomie di media topics, di oltre 1200 termini, curate di IPCT.

Entity SEO e Semantic Publishing: API TextRazor: estrarre Categorie e Topic - Studio Makoto Agenzia di Marketing e Comunicazione
API TextRazor: estrarre Categorie e Topic – Studio Makoto Agenzia di Marketing e Comunicazione
Entity SEO e Semantic Publishing: 
Tabella delle Categorie e dei Topic - Studio Makoto Agenzia di Marketing e Comunicazione
Tabella delle Categorie e dei Topic – Studio Makoto Agenzia di Marketing e Comunicazione

Calcolo della frequenza delle entità e possibili fallback

Il conteggio delle occorrenze di ogni entità è riportato in tabella come anche nella tabella riservata alle prime 10 entità più frequenti.
Nonostante sia stato implementato uno stemmer (snowballstemmer library) per non tenere conto delle forme maschile/femminile e singolare/plurale, il conteggio della frequenza delle entità è riferito alle entità cosiddette “normalizzate” e non alle stringhe, parole esatte con cui le entità sono espresse nel testo.
Per esempio, se nel testo è presente la parola SEO l’entità normalizzata corrispondente è “Search Engine Optimization” e la frequenza dell’entità nel testo potrebbe risultare falsata, o anche 0, nel caso in cui nel testo, l’entità sia sempre espressa attraverso la stringa/keyword SEO. Di fatto, le care vecchie keyword altro non sono che le stringhe attraverso le quali vengono espresse le entità.

In conclusione, The Entities’ Swissknife è un potente strumento che può aiutarti a migliorare il posizionamento sui motori di ricerca attraverso il ricorso alla pubblicazione semantica e alle entity linking che rendono il tuo sito search engine friendly.
Per qualsiasi commento o chiarimento sono disponibile su Twitter @max_geraci.

Domande Frequenti

Originally posted 2022-04-05 00:46:49.

Massimiliano Geraci

Content Marketer e SEO Specialist