Il tuo sito visivamente funziona bene, ma dietro le quinte il codice è un disordine — titoli usati a caso, tabelle costruite in modo non standard, struttura senza logica. Per un visitatore umano non cambia nulla, ma per l’AI è puro rumore: non riesce a capire cosa sia importante e cosa no, e alla fine decide di usare un’altra fonte. Non è un problema di ranking su Google — è un problema di comprensione: l’AI perde informazioni chiave su di te perché non riesce a leggerti con precisione. Sistemare il codice richiede meno di una mattina, e i risultati in termini di visibilità AI sono immediati.
Sai qual è il primo test che faccio quando analizzo un sito che non compare nelle risposte AI? Non guardo i contenuti. Non guardo i backlink. Apro il codice sorgente e guardo la struttura HTML. E nella maggior parte dei casi, trovo lo stesso problema: heading che saltano dal titolo principale a un sottotitolo di terzo livello, sezioni senza landmark, blocchi di contenuto che galleggiano nel markup senza nessuna relazione gerarchica tra loro.
Il punto è che per un lettore umano, la pagina sembra perfetta. Il design è pulito, i font sono giusti, il testo scorre bene. Ma l’AI non vede il design. Vede il codice. E se il codice non ha una struttura semantica coerente, il contenuto perde la sua gerarchia — e un contenuto senza gerarchia è un contenuto che l’AI fa più fatica a processare, spezzare in chunk utili e restituire come risposta.
Il markup che l’AI legge davvero
Quando parlo di markup semantico non parlo di estetica del codice o di best practice per sviluppatori pignoli. Parlo del modo in cui un sistema RAG — quello che alimenta le risposte di ChatGPT, Perplexity, Gemini — interpreta la struttura della tua pagina per decidere cosa estrarre.
I sistemi RAG convertono le pagine in testo e poi le spezzano in chunk. Ma non tagliano a caso: usano i segnali strutturali del documento per capire dove finisce un concetto e dove ne inizia un altro. I titoli di sezione sono i segnali più forti. Un heading gerarchico corretto — titolo principale, sottosezioni, sotto-sottosezioni — crea una mappa che il sistema usa per isolare blocchi auto-contenuti di informazione.
Volpini et al. nel 2026 hanno definito con precisione il vantaggio delle pagine con struttura semantica ricca:
“Enhanced pages transform opaque entity URIs into readable, structured information by resolving linked relationships and presenting them as human-readable content.”
“Readable, structured information” — è la chiave. Le pagine che trasformano informazioni opache in contenuto leggibile e strutturato sono quelle che i sistemi AI riescono a processare con meno ambiguità. E la struttura semantica HTML è il primo livello di questa trasformazione: senza di essa, il contenuto è testo piatto, indifferenziato, senza punti di ancoraggio per il retrieval.
Perché il JSON-LD non basta
Se hai letto il mio articolo sui dati strutturati, sai già che il JSON-LD ha un paradosso: funziona per i parser di Google e Bing, ma non produce benefici misurabili nei sistemi RAG. Lo stesso paper di Volpini et al. lo dice in modo esplicito:
“JSON-LD markup remains valuable for search engines with dedicated parsers (Google, Bing), but it provides no measurable benefit in RAG-based systems that treat pages as flat text.”
Ecco perché il markup semantico HTML diventa fondamentale. Il JSON-LD vive nell’head della pagina, invisibile al testo che il RAG processa. Il markup semantico, invece, è dentro il testo: sono gli heading che danno gerarchia, i tag <header>, <nav>, <main>, <footer> che definiscono i confini logici del contenuto. Quando il sistema converte la tua pagina in testo piatto, questi segnali strutturali guidano la segmentazione.
La differenza tra una pagina con markup semantico e una senza è la differenza tra un libro con indice e capitoli e un muro di testo senza interruzioni. Entrambi contengono le stesse parole. Ma uno è navigabile, l’altro no.
Il dato che cambia la prospettiva
Quando Volpini et al. hanno confrontato le pagine con struttura semantica ricca (le “enhanced pages”) rispetto a quelle con il solo JSON-LD, il risultato è stato netto:
“Enhanced pages exposed 2.4x more discoverable links than JSON-LD pages (102.2 vs. 41.9).”
2.4 volte più link scopribili. Questo non significa solo “più link nella pagina” — significa che il sistema riesce a scoprire e seguire 2.4 volte più connessioni quando la struttura HTML è semanticamente ricca. Le relazioni tra entità, i collegamenti tra concetti, i riferimenti incrociati diventano accessibili perché la struttura li rende espliciti.
In termini pratici: se la tua pagina ha heading gerarchici corretti, landmark che delimitano le sezioni, attributi aria dove servono per chiarire il ruolo dei componenti, il sistema AI riesce a estrarre più informazioni utili dalla stessa quantità di contenuto. Non perché il contenuto sia diverso — perché la struttura lo rende leggibile.
Gli errori che vedo più spesso
Dopo aver analizzato centinaia di siti, i pattern sbagliati si ripetono. Il primo è l’heading che salta livelli: dal titolo principale si passa direttamente a un heading di terzo livello perché “visivamente il font era troppo grande”. Il problema è che la scelta dell’heading non dovrebbe dipendere dal design — per quello ci sono i CSS. L’heading definisce la gerarchia logica del documento, e se salta un livello, il sistema perde un gradino nella struttura.
Il secondo errore è usare <div> per tutto. Un sito costruito interamente con div generici è come un edificio senza cartelli: le stanze esistono, ma nessuno sa qual è l’ingresso, qual è il soggiorno, qual è il ripostiglio. I tag semantici — <header>, <nav>, <main>, <article>, <footer> — sono quei cartelli. Dicono al sistema cosa contiene ogni blocco prima ancora di leggerlo.
Il terzo è il più subdolo: heading usati per scopi decorativi. Titoli di sezione inseriti come heading solo perché il CMS li formatta in un certo modo, senza nessuna relazione con la gerarchia del contenuto. Ogni heading fuori posto è un segnale falso che confonde la segmentazione.
E poi c’è un quarto pattern che non è propriamente un errore tecnico, ma produce lo stesso danno: pagine dove il contenuto principale è annegato tra sidebar, widget, banner e blocchi ripetuti. Se il tag <main> contiene più rumore che segnale, il chunk che il sistema estrae sarà diluito. Il rapporto tra contenuto utile e markup accessorio conta — e un landmark <main> che racchiude solo il contenuto rilevante aiuta il sistema a isolare ciò che vale la pena processare.
Cosa puoi verificare subito
Apri il codice sorgente delle tue pagine principali e controlla tre cose. Primo: c’è un solo titolo principale per pagina? Secondo: i titoli di sezione seguono un ordine gerarchico senza salti? Terzo: il contenuto principale è racchiuso in un tag <main> o almeno in un tag con ruolo esplicito?
Se anche uno di questi check fallisce, il sistema AI sta facendo più fatica del necessario a capire la struttura del tuo contenuto. Puoi usare l’estensione HeadingsMap nel browser per visualizzare l’albero degli heading della pagina in un secondo — ti mostra subito se ci sono salti o incongruenze nella gerarchia.
Questo è un primo passo per individuare i problemi di superficie. Ma la struttura semantica va oltre gli heading: landmark, attributi aria, organizzazione dei template, rapporto tra contenuto e markup accessorio — sono interventi che richiedono competenza tecnica specifica e una visione d’insieme su come il sito comunica con i crawler AI.
Il filo che tiene insieme tutto
Il markup semantico non è un aspetto isolato. Si collega a tutto ciò di cui ti ho parlato negli articoli sulla crawlability — perché se il crawler arriva sulla tua pagina ma trova una struttura piatta, il contenuto che estrae sarà meno utilizzabile. Si collega alla page experience perché i segnali tecnici di qualità si sommano. Si collega all’HTTPS perché la fiducia tecnica è un pacchetto, non un singolo fattore.
E se pensi che i dati strutturati in JSON-LD risolvano il problema, ti invito a rileggere cosa ho scritto sulla doppia strategia: il JSON-LD parla ai parser, il markup semantico parla all’AI. Servono entrambi. Ma se devi scegliere da dove partire, parti dalla struttura HTML — perché è quella che il sistema RAG legge per prima.
Il prossimo passo è capire come la freschezza dei contenuti si integra con tutto questo: una struttura semantica perfetta su contenuti obsoleti è comunque un problema. Ma una a una, queste ottimizzazioni costruiscono un profilo tecnico che i motori AI riconoscono come affidabile — e da cui preferiscono estrarre le risposte.