SEO dell’HTML
Come la struttura HTML, gli elementi e la semantica influenzano la SEO — come Google analizza e renderizza il tuo markup, quali elementi legge direttamente, l'errore di head malformato che elimina silenziosamente i tag, e perché l'HTML valido/semantico aiuta la comprensione senza essere un fattore di ranking diretto.
Lingue
L'HTML SEO consiste nello scrivere e strutturare il markup in modo che i motori di ricerca possano eseguire la scansione, il rendering, l'analisi e la comprensione di una pagina. Il fatto più liberatorio: Google afferma che 'il web in generale non è HTML valido', quindi raramente si basa su una rigorosa correttezza semantica — esegue tutto attraverso un lexer/normalizzatore HTML, analizza l'HTML grezzo per link e contenuti, poi esegue il rendering con un Chromium headless (il Web Rendering Service) e indicizza il DOM renderizzato. Elementi specifici vengono letti direttamente — title, heading, a href, img alt e og:title alimentano elementi come il titolo del link nei risultati di ricerca. Il modo di errore poco coperto: un elemento non valido all'interno della head fa sì che Google ignori tutto ciò che segue, eliminando silenziosamente un title, canonical o hreflang. L'HTML valido non è un fattore di ranking e l'HTML semantico non è un 'moltiplicatore magico' (Mueller: non è un segnale di qualità, ma 'ci aiuta a comprendere meglio le pagine') — l'obiettivo è evitare gli errori di parsing che la validità avrebbe rilevato, non inseguire un validatore verde. Questo hub rimanda all'approfondimento sull'HTML semantico per una trattazione elemento per elemento.
TL;DR — L’HTML SEO consiste nello scrivere l’HTML della tua pagina in modo che i motori di ricerca possano trovare, leggere e comprendere la pagina. La buona notizia: Google è molto indulgente con il markup disordinato — dice letteralmente “il web in generale non è HTML valido” e funziona comunque. Non hai bisogno di codice perfetto e validato. Hai bisogno che gli elementi importanti (titolo, intestazioni, link, testo alternativo e i tag nel tuo
Evidence for this claim Google reliably crawls links when they are HTML a elements with resolvable href attributes. Scope: Googlebot link discovery requirements. Confidence: high · Verified: Google Search Central: Crawlable links Evidence for this claim Google processes only supported elements in the document head and may ignore elements appearing after an invalid head element. Scope: Google's parsing of metadata in the HTML head. Confidence: high · Verified: Google Search Central: Valid page metadata<head>) siano presenti e non accidentalmente rotti.
Cos’è l’HTML SEO
Ogni pagina web è costruita con HTML — i tag che contrassegnano cosa è un’intestazione, cosa è un link, cosa è un’immagine, cosa è un paragrafo. L’HTML SEO è semplicemente la pratica di scrivere quel markup in modo che un motore di ricerca possa indicizzarlo, leggerlo e capire di cosa tratta la pagina.
È facile pensare che oggi la SEO sia tutta contenuti e link. Ma i motori di ricerca leggono ancora il tuo HTML grezzo per capire le basi: qual è il titolo, dove sono i link da seguire, cosa mostrano le immagini, quale URL è quello canonico. Se sbagli l’HTML, puoi nascondere queste cose a Google senza rendertene conto.
Gli elementi che contano davvero
Una manciata di elementi HTML fa la maggior parte del lavoro SEO:
<title>— il titolo della pagina, nel<head>. Google lo usa (insieme alla tua intestazione principale) per creare il titolo cliccabile nei risultati di ricerca.- Intestazioni (
<h1>–<h6>) — descrivono la struttura del tuo contenuto. - Link (
<a href="…">) — è così che i motori di ricerca scoprono altre pagine. Un link deve essere un vero<a href>perché un bot possa seguirlo in modo affidabile. - Testo alternativo delle immagini (
<img alt="…">) — descrive l’immagine per i motori di ricerca e gli screen reader. - Tag
<head>— il tuo tag canonico, meta robots e hreflang vivono tutti qui.
La buona notizia: Google è indulgente
Non hai bisogno che il tuo HTML superi un validatore per posizionarti. La guida SEO di Google dice il web in generale non è HTML valido, e Google ha costruito i suoi sistemi per gestire il mondo reale disordinato — allo stesso modo in cui il tuo browser si riprende da una pagina con qualche tag rotto.
L’unico errore che vale la pena conoscere
Il modo più chiaro in cui l’HTML può danneggiarti silenziosamente è un <head> rotto. Se metti un elemento che non appartiene lì (come un <img> o un <iframe>) dentro il tuo <head>, Google smette di leggere il resto del <head> — il che può eliminare silenziosamente il tuo titolo, il tag canonico o hreflang. Non è una “penalità”, è semplicemente Google che non vede i tag che vengono dopo l’errore.
Vuoi la versione più approfondita — come Google effettivamente analizza e renderizza il tuo HTML, se l‘“HTML semantico” aiuta il posizionamento e come Bing legge il markup in modo diverso? Passa alla scheda Avanzate.
TL;DR — L’HTML SEO consiste nel strutturare il markup in modo che i motori di ricerca possano indicizzare, renderizzare, analizzare e comprendere una pagina. Il fatto liberatorio: Google dice “il web in generale non è HTML valido, quindi Google Search può raramente dipendere da significati semantici nascosti nella specifica HTML.” Normalizza tutto attraverso un lexer HTML, analizza l’HTML grezzo per link/contenuti, poi renderizza con un Chromium headless (il Web Rendering Service) e indicizza il DOM renderizzato. Elementi specifici alimentano direttamente la SERP —
Evidence for this claim Google reliably crawls links when they are HTML a elements with resolvable href attributes. Scope: Googlebot link discovery requirements. Confidence: high · Verified: Google Search Central: Crawlable links Evidence for this claim Google processes only supported elements in the document head and may ignore elements appearing after an invalid head element. Scope: Google's parsing of metadata in the HTML head. Confidence: high · Verified: Google Search Central: Valid page metadata<title>, intestazioni eog:titlesono input nominati per il titolo del link. Il fallimento netto e poco coperto: un elemento non valido in<head>fa sì che Google ignori tutto ciò che viene dopo, eliminando silenziosamente un<title>, canonico o hreflang. L’HTML valido non è un fattore di ranking; l’HTML semantico “ci aiuta a comprendere meglio le pagine” (Mueller) ma non è un segnale di qualità. Cerca i modi di fallimento che la validità catturerebbe, non un validatore verde.
Cos’è realmente l’HTML SEO
L’HTML SEO è la pratica ampia che copre qualsiasi elemento HTML o scelta strutturale che influisce su come un motore di ricerca esegue la scansione, analizza, renderizza e comprende una pagina. È il livello sottostante alle questioni di contenuti e link in cui si concentra la maggior parte delle conversazioni SEO — il markup che decide se Google può persino vedere il tuo titolo, i tuoi link e il tuo canonical in primo luogo.
Si sovrappone, ma non è la stessa cosa, dell’HTML semantico — la pratica più ristretta
di scegliere elementi come <article>, <nav>, <main> e <section> per il loro
significato strutturale piuttosto che ripiegare su <div> non stilizzati. Questa profondità elemento-per-
elemento è un argomento a sé (vedi l’approfondimento sull’HTML semantico annidato sotto questo
hub); qui voglio il quadro completo di come il markup incontra la pipeline di ricerca.
Come Google analizza e renderizza effettivamente il tuo HTML
Questa è la parte che quasi ogni checklist “tag HTML per la SEO” salta, ed è la parte che spiega effettivamente perché i consigli sui tag funzionano nel modo in cui funzionano.
Google legge il tuo HTML in due fasi. Dalle
Nozioni di base sulla SEO JavaScript di Google:
prima, “crawling a URL and parsing the HTML response works well for classical
websites or server-side rendered pages where the HTML in the HTTP response contains
all content,” e “Googlebot then parses the response for other URLs in the href
attribute of HTML links and adds the URLs to the crawl queue.” Poi, fase due:
“Googlebot queues all pages with a 200 HTTP status code for rendering… Once
Google’s resources allow, a headless Chromium renders the page and executes the
JavaScript,” dopo di che “Googlebot parses the rendered HTML for links again” e
“Google also uses the rendered HTML to index the page.”
Quindi: HTML grezzo prima (veloce, per la scoperta dei link e il contenuto iniziale), poi il DOM renderizzato dopo che un Chromium headless — il Web Rendering Service — esegue il tuo JavaScript. L’indice finale è costruito dall’HTML renderizzato. L’implicazione pratica è quella che sottolineo nel mio lavoro sulla SEO JavaScript: il contenuto presente nella tua risposta iniziale del server viene visto più rapidamente e in modo più affidabile rispetto al contenuto che esiste solo dopo l’esecuzione del JavaScript lato client.
Il lexer HTML — perché Google tollera markup disordinato
Prima di tutto ciò, Google normalizza il tuo HTML. Gary Illyes lo ha descritto su Search Off the Record: “we push all the HTML through an HTML lexer… we normalize the HTML,” e anche i tag di intestazione sono “normalized through rendering,” con Google che cerca di “understand the styling that was applied on the h tags, so we can determine the relative importance.” Queste righe provengono da una trascrizione del forum del podcast piuttosto che dalla trascrizione primaria di Google — trattale come riportate, non come fonte primaria.
Questo è lo stesso modello che insegno nel mio Come funziona la ricerca deck: lexer HTML → normalizza → albero DOM + CSSOM → albero di rendering → indice. È esattamente il motivo per cui Google non ha bisogno che il tuo HTML sia impeccabile. Non sta leggendo il testo sorgente grezzo alla ricerca di tag perfetti; sta analizzando il tuo markup in un albero normalizzato prima, recuperando dai frammenti rotti come fa un browser. Il che ci porta alla citazione più liberatoria dell’intero argomento.
”Il web in generale non è HTML valido”
La Guida introduttiva alla SEO di Google lo dice chiaramente, in una sezione intitolata letteralmente cose su cui non dovresti concentrarti:
“The web in general is not valid HTML, so Google Search can rarely depend on semantic meanings hidden in the HTML specification.”
La stessa guida aggiunge che avere intestazioni in rigoroso ordine semantico è “fantastico per gli screen reader, ma dal punto di vista della Ricerca Google, non importa se le usi fuori ordine,” e che non esiste “un numero magico e ideale di intestazioni che una determinata pagina dovrebbe avere. Tuttavia, se pensi che siano troppe, probabilmente lo sono.”
Leggilo come un permesso di smettere di inseguire un validatore W3C perfettamente verde. La validità non è un fattore di ranking. Il motivo per preoccuparsi del markup rotto è più ristretto e più specifico: certi tipi di invalidità rompono il parsing in modi che nascondono i tuoi contenuti.
Quali elementi HTML Google legge direttamente
Alcuni elementi non vengono solo analizzati per un vago “comprensione” — Google li nomina come input diretti a ciò che appare nella SERP. Dalla documentazione sui Title Links, Google determina il title link da “contenuto negli elementi <title>, titolo visivo principale mostrato sulla pagina, elementi di intestazione, come elementi <h1>, contenuto nei meta tag og:title,” e altro testo in evidenza stilizzato.
Gli elementi che vale la pena sistemare — e dove andare per approfondimenti sull’implementazione di ciascuno, poiché questo hub instrada piuttosto che riprodurre:
<title>— l’input primario per il title link. Approfondimenti su come scriverlo e testarlo si trovano nel dedicato articolo sul title tag.- Metadati
<head>— canonical, meta robots, hreflang. Il<head>è, secondo Google, “l’elemento primario per specificare metadati su una pagina.” Approfondimenti: canonical tag e meta robots. - Intestazioni (
<h1>–<h6>) — strutturali e normalizzate attraverso il rendering (Google considera anche il CSS applicato). Approfondimenti su queste si trovano nel dedicato articolo sugli header tags — non ottimizzare eccessivamente l’ordine. - Link (
<a href>) — il meccanismo per la scoperta degli URL. Se il tuo “link” è un gestore di clic su un<div>senzahref, Googlebot potrebbe non mettere mai in coda quell’URL. <img alt>— comprensione delle immagini più accessibilità. Approfondimenti: articolo sull’alt text.og:titlee testo in evidenza stilizzato — input aggiuntivi per il title link.
L’unico errore che rompe silenziosamente tutto: un <head> malformato
Questo è il bug HTML SEO più concreto e meno trattato nella documentazione di Google. Da Valid Page Metadata for Google Search:
“Se usi un elemento non valido nell’elemento
<head>, Google ignora qualsiasi elemento che appare dopo l’elemento non valido.”
I figli validi di <head> sono una breve whitelist: title, meta, link, script, style, base, noscript e template. Se inserisci qualcos’altro lì — un <img> fuori posto, un <iframe>, un tag non chiuso o uno <script> conforme alle specifiche che inietta uno di questi — i browser troncano il <head> in quel punto, spingendo tutto ciò che segue nel <body>. Se il tuo <title>, rel=canonical o i tag link hreflang si trovano dopo l’elemento problematico, Google potrebbe semplicemente non vederli mai. Come dice Google, “usare HTML valido per i metadati della pagina garantisce che Google possa usare i metadati come documentato.”
Questa è la modalità di errore che rende l‘“HTML valido” degno di attenzione — non il punteggio del validatore, ma la conseguenza. Come individuarlo: visualizza il sorgente e conferma che i tuoi tag critici siano dentro <head>; esegui la pagina attraverso un validatore; e usa URL Inspection di GSC per vedere l’HTML renderizzato che Google ha effettivamente ricevuto.
A title and meta description placed before an invalid image element in the head can be read normally. The invalid element creates a parsing boundary. Canonical, robots, and hreflang metadata placed after that boundary may be ignored or moved into the body. Verify the consequence by checking source and rendered HTML, not by chasing a perfect validation score.
© Patrick Stox LLC · CC BY 4.0 ·
HTML vs. HTML semantico: aiuta la comprensione, non è un segnale di ranking
Ecco la tensione che questo hub esiste per risolvere. Usare elementi semantici — <article>, <nav>, <header>, <section> — invece di zuppa di <div> aumenta il tuo ranking?
La risposta più chiara è quella di John Mueller. Rispondendo a un SEO che sosteneva che la gerarchia dei tag semantici debba essere un segnale di qualità, ha detto:
“I don’t see it as a quality signal, but it definitely helps us to better understand pages, so that we can show them better for the appropriate queries in search.”
Tutta la sfumatura è in una frase. L’HTML semantico non è un input diretto di ranking/qualità, ma è un aiuto alla comprensione — e una migliore comprensione può indirettamente aiutare Google a abbinare la tua pagina alle query giuste. Martin Splitt ha detto separatamente che gli elementi semantici usati correttamente danno alle pagine un vantaggio nell’essere comprese. La cornice “vantaggio SEO” di Splitt è parafrasata dalla copertura del webinar, non una citazione verbatim verificata — non la metto tra virgolette. Splitt è stato anche diretto sul fatto che la struttura dei titoli non è un requisito rigoroso: “it does not make a difference if you have an H1 and then H2, H2, H2… fundamentally, it doesn’t make that much of a difference.”
La versione moderna e pratica di questo problema è la div soup: le librerie di componenti React, Vue e Tailwind di default emettono <div> per tutto. Non è una penalità di ranking, ma elimina i punti di riferimento strutturali (sezioni, <nav>, <main>) che aiutano sia la comprensione di Google che l’accessibilità. Raggiungere l’elemento giusto non costa nulla e può solo aiutare. Il caso elemento per elemento per farlo è compito dell’articolo dedicato semantic HTML in questo sottocluster — questo hub traccia solo la linea: aiuto alla comprensione, sì; moltiplicatore di ranking magico, no.
L’HTML valido conta per la SEO?
Risposta breve: non come fattore di ranking diretto. Google non ha mai nominato la validità W3C come uno di questi, e “the web in general is not valid HTML.” La giusta riformulazione è questa: la validità non è l’obiettivo — evitare i modi di fallimento che la validità avrebbe catturato è l’obiettivo. Un errore di validazione vale la pena di essere corretto quando cambia effettivamente il contenuto, i metadati, i link, l’accessibilità o il rendering che un visitatore o un crawler riceve — non perché il punteggio non è 100%. Un <head> malformato che espelle il tuo canonical, un tag non chiuso che nasconde contenuto, un elemento che spinge hreflang nel <body> — quelli sono problemi SEO reali e indiretti, e capita che siano esattamente le cose che un validatore segnala. Insegui le conseguenze, non il segno di spunta verde.
Come Bing legge l’HTML in modo diverso
Bing inquadra l’HTML strutturale in modo più letterale di Google. La sua descrizione di lunga data di come il bot tratta i tag di intestazione è che “the <h1>, <h2>, and deeper tags… are regarded by the bot as more like XML than HTML in that they describe the data they contain” — descrittori di contenuto, non stile visivo. Le Webmaster Guidelines di Bing nominano esplicitamente le intestazioni come segnali strutturali: “<H1>–<H6> Header tags — Define the structure of your page and helps Bing understand the content of each paragraph.” Entrambe le righe di Bing sono riutilizzate da citazioni già verificate nella ricerca sui tag di intestazione del sito; le pagine di Bing vengono renderizzate via JS e resistono alla ricontrollatura automatica — verifica prima di trattarle come definitive.
Per i siti che ottimizzano per entrambi i motori, il punto è piccolo ma reale: la lettura di Google è più consapevole del render-tree/contesto CSS (pesa lo stile applicato), mentre Bing si affida di più ai tag strutturali grezzi come descrittori di dati. Una struttura pulita e significativa serve entrambi.
Errori comuni di SEO HTML
<head>malformato — il grande problema sopra; un elemento non valido elimina ogni tag successivo.- Contenuto renderizzato solo da JS lato client senza fallback server-rendered — indicizzato in ritardo, nel secondo passaggio (render), se non mai.
- Div soup senza punti di riferimento semantici — nessuna penalità, ma segnale strutturale perso e accessibilità peggiore.
- “Link” che non sono
<a href>— gestori di click su<div>che Googlebot non può accodare come URL. - Direttive
<head>multiple o in conflitto — due canonical, o una canonical che contraddice la tua meta robots. - Titoli scelti per dimensione visiva, non per struttura (e testo stilizzato con CSS che si spaccia per titolo) — Google normalizza e pesa lo stile renderizzato, quindi la discrepanza offusca la tua struttura.
Dove si colloca questo hub
Questo è l’hub per il sottocluster SEO HTML. Il suo compito è la copertura e la navigazione,
non la profondità esaustiva su ogni singolo elemento. L’articolo dedicato
HTML semantico annidato sotto di esso gestisce
il trattamento elemento per elemento di <article>, <section>, <nav>, <header>,
<main> e <aside>. L’attributo lang HTML ha il suo approfondimento
dedicato — cosa dichiara realmente <html lang="en">, come differisce da hreflang,
e perché Google lo ignora per il rilevamento della lingua mentre Bing lo tratta come un segnale
minore. La profondità dei titoli vive in tag title, la profondità
dei titoli vive in tag header, la profondità delle immagini vive
in testo alt, la profondità delle direttive <head> vive in
tag canonical e
meta robots, e la storia del rendering approfondisce
in SEO JavaScript. Inizia qui per
il modello mentale; dirama per i dettagli.
Riepilogo AI
Una sintesi della versione Advanced:
- SEO HTML = strutturare il markup così che i motori possano eseguire crawl, renderizzare, analizzare e comprendere una pagina. È il livello sotto contenuti e link.
- Google è indulgente: “il web in generale non è HTML valido, quindi Google Search può raramente dipendere da significati semantici nascosti nella specifica HTML.” La validità non è un fattore di ranking.
- Parsing in due fasi: prima HTML grezzo (scoperta dei link + contenuto iniziale), poi un Chromium headless (il Web Rendering Service) renderizza/esegue JS e Google indicizza il DOM renderizzato. Il contenuto server-rendered è visto più velocemente del contenuto solo client-side-JS.
- Un lexer HTML normalizza tutto prima (Illyes; lo stesso lexer → normalizza → DOM/CSSOM → albero di rendering → modello di indicizzazione che Patrick insegna) — che è il motivo per cui il markup disordinato è tollerato.
- Elementi letti direttamente:
<title>, titoli/<h1>eog:titlesono input nominati per il title link della SERP;<a href>guida la scoperta degli URL;<img alt>per le immagini. - La modalità di errore netta: un elemento non valido in
<head>fa sì che Google ignori tutto ciò che segue — eliminando silenziosamente un title, canonical o hreflang. - HTML semantico: Mueller — “Non lo vedo come un segnale di qualità, ma sicuramente ci aiuta a comprendere meglio le pagine.” Aiuto alla comprensione, non un input diretto di ranking. Div soup non è una penalità ma perde segnale strutturale.
- Bing tratta i tag di intestazione “più come XML che HTML” — descrittori di dati, non stile.
- Riformulazione: la validità non è l’obiettivo; evitare i fallimenti di parsing che la validità catturerebbe lo è. Dirama all’approfondimento sull’HTML semantico per la profondità degli elementi.
Documentazione ufficiale
Documentazione di fonte primaria dai motori di ricerca.
- Guida introduttiva alla SEO — “il web in generale non è HTML valido,” ordine dei titoli e quanto concentrarsi sul markup.
- Metadati di pagina validi per la Ricerca Google — la whitelist del
<head>e la regola per cui un elemento non valido tronca tutto ciò che lo segue. - Comprendere le basi della SEO JavaScript — la pipeline in due fasi crawl → render → indicizzazione e il Web Rendering Service.
- Influenzare i titoli dei link nella Ricerca Google — gli elementi (title,
<h1>,og:title) che Google legge per costruire il titolo SERP. - Crawling e indicizzazione — l’hub principale per robots, canonicalizzazione e metadati.
Bing / Microsoft
- Linee guida per i webmaster di Bing — H1–H6 indicati come segnali strutturali che Bing legge paragrafo per paragrafo.
- Architettura dei contenuti per la SEO (SEM 101) — la descrizione di Bing dei tag di intestazione come “più simili a XML che a HTML”.
Per approfondire
- Come i browser analizzano davvero l’HTML (e cosa significa per la SEO) — Search Off the Record (feb 2026): Splitt e Illyes sul perché la specifica HTML è permissiva e su come l’analisi influisce sul posizionamento di hreflang/canonical.
Citazioni dalla fonte
Dichiarazioni ufficiali di Google e Bing. Ogni link è un deep link che salta al passaggio citato nella pagina di origine, quando disponibile.
Google — il web non è HTML valido
- “The web in general is not valid HTML, so Google Search can rarely depend on semantic meanings hidden in the HTML specification.” (traduzione) «Il web in generale non è HTML valido, quindi la Ricerca Google può raramente dipendere dai significati semantici nascosti nella specifica HTML.» — Guida introduttiva alla SEO di Google. Vai alla citazione
- “Having your headings in semantic order is fantastic for screen readers, but from Google Search perspective, it doesn’t matter if you’re using them out of order.” (traduzione) «Avere i titoli in ordine semantico è fantastico per gli screen reader, ma dal punto di vista della Ricerca Google non importa se li usi fuori ordine.» — Guida introduttiva alla SEO di Google.
Google — il <head> e i metadati
- “If you use an invalid element in the
<head>element, Google ignores any elements that appear after the invalid element.” (traduzione) «Se usi un elemento non valido nell’elemento<head>, Google ignora qualsiasi elemento che appare dopo l’elemento non valido.» — Metadati di pagina validi per la Ricerca Google. - “Using valid HTML for page metadata ensures that Google can use the metadata as documented.” (traduzione) «Usare HTML valido per i metadati di pagina garantisce che Google possa usare i metadati come documentato.» — Metadati di pagina validi per la Ricerca Google.
Google — come l’HTML viene analizzato e renderizzato
- “Googlebot then parses the response for other URLs in the
hrefattribute of HTML links and adds the URLs to the crawl queue.” (traduzione) «Googlebot analizza quindi la risposta per altri URL nell’attributohrefdei link HTML e aggiunge gli URL alla coda di crawl.» — Comprendere le basi della SEO JavaScript. - “Googlebot queues all pages with a
200HTTP status code for rendering… Once Google’s resources allow, a headless Chromium renders the page and executes the JavaScript.” (traduzione) «Googlebot mette in coda tutte le pagine con codice di stato HTTP200per il rendering… Quando le risorse di Google lo consentono, un Chromium headless renderizza la pagina ed esegue il JavaScript.» — Comprendere le basi della SEO JavaScript. - “Google also uses the rendered HTML to index the page.” (traduzione) «Google usa anche l’HTML renderizzato per indicizzare la pagina.» — Comprendere le basi della SEO JavaScript.
Google — elementi letti per la SERP
- Google costruisce il titolo del link da “content in
<title>elements… heading elements, such as<h1>elements… content inog:titlemeta tags,” e altro testo in evidenza. (traduzione) «contenuto negli elementi<title>… elementi di intestazione, come gli elementi<h1>… contenuto nei meta tagog:title» Vai alla citazione
John Mueller, Google — l’HTML semantico non è un segnale di qualità
- “I don’t see it as a quality signal, but it definitely helps us to better understand pages, so that we can show them better for the appropriate queries in search.” (traduzione) «Non lo vedo come un segnale di qualità, ma sicuramente ci aiuta a comprendere meglio le pagine, così da poterle mostrare meglio per le query appropriate nella ricerca.» Leggi la copertura Riportato tramite la copertura di Search Engine Roundtable del tweet originale di Mueller (il tweet stesso non è più raggiungibile) — conferma la formulazione esatta nel browser prima di trattarlo come citazione definitiva.
Gary Illyes, Google — il lexer HTML (riportato tramite un thread di trascrizione di Search Off the Record)
- “we push all the HTML through an HTML lexer… we normalize the HTML,” and header tags are “normalized through rendering,” with Google trying to “understand the styling that was applied on the h tags, so we can determine the relative importance.” (traduzione) «spingiamo tutto l’HTML attraverso un lexer HTML… normalizziamo l’HTML», e i tag di intestazione sono «normalizzati attraverso il rendering», con Google che cerca di «capire lo stile applicato ai tag h, così da determinare l’importanza relativa». Leggi la copertura
Bing / Microsoft — le intestazioni come descrittori di dati
- “The
<h1>,<h2>, and deeper tags… are regarded by the bot as more like XML than HTML in that they describe the data they contain.” — Bing Webmaster Blog, “Architecting Content for SEO.” - “
<H1>–<H6>Header tags — Define the structure of your page and helps Bing understand the content of each paragraph.” — Bing Webmaster Guidelines.
Lista di controllo SEO per HTML
Una rapida verifica per confermare che i motori di ricerca possano leggere il markup che conta:
- Ogni pagina importante ha un
<title>e i suoi tag<head>critici (canonical, meta robots, hreflang) — e sono dentro<head>, non spinti nel<body>. -
<head>contiene solo figli validi (title,meta,link,script,style,base,noscript,template) — nessun<img>/<iframe>fuori posto o elemento iniettato da script che lo tronca. - La navigazione interna usa veri link
<a href>, non gestori di clic su<div>. - Le immagini hanno testo
altsignificativo. - Il contenuto chiave è nella risposta iniziale del server, non prodotto solo da JavaScript lato client.
- Le intestazioni descrivono la struttura (non solo la dimensione visiva); il CSS non sta simulando intestazioni
con
<div>stilizzati. - Elementi semantici (
<nav>,<main>,<article>,<header>) usati dove si adattano — non un muro di<div>indifferenziati. - Solo una di ogni direttiva
<head>in conflitto (un canonical; canonical e meta robots non si contraddicono). - Controllato a campione l’HTML renderizzato in GSC URL Inspection — i tag che ti aspetti sono effettivamente presenti dopo il rendering.
- Eseguita la pagina attraverso un validatore per individuare gli errori di parsing (non per inseguire un punteggio perfetto).
Esecuzione di un audit SEO HTML ampio
Il compito di questo hub è il routing, quindi un passaggio di audit completo registra qui le prove a livello di documento, poi consegna ogni risultato all’articolo che possiede la correzione — non rimettere in discussione le regole su titolo, intestazione, canonical, immagini o elementi semantici in questa lista di controllo.
- Stato della risposta e tipo di contenuto. Conferma che l’URL restituisca
200con un tipo di contenuto HTML prima di leggere qualsiasi altra cosa — un reindirizzamento o una risposta non-HTML rende inutili tutte le altre verifiche. - Risposta HTML iniziale (view-source). Ciò che viene inviato nella risposta HTTP grezza — questo è ciò che la prima scansione di Google analizza per link e contenuti.
- DOM renderizzato (GSC URL Inspection o uno strumento browser headless). Ciò che esiste dopo l’esecuzione di JavaScript — questo è ciò che viene effettivamente indicizzato. Confrontalo con il passaggio 2 piuttosto che assumere che corrispondano.
- Contenuti di
<head>. Conferma che siano presenti solo figli validi e che i tag title, canonical, robots e hreflang vengano prima di qualsiasi elemento sospetto sia nel sorgente che nell’output renderizzato. Instrada i risultati a tag title, tag canonical e meta robots. - Contenuto primario e link crawlable. Conferma che il contenuto principale e i link
<a href>che un lettore vede siano presenti in entrambi gli artefatti dei passaggi 2 e 3. Instrada i risultati sui link a link interni. - Errori del parser e della console. Nota eventuali errori della console del browser durante il rendering — possono indicare lo stesso JavaScript che sta silenziosamente rompendo il
<head>o nascondendo contenuti. - Instrada ogni difetto, non risolverlo qui. Un attributo alt mancante va a testo alt; una lacuna strutturale dei landmark va a HTML semantico; una questione sull’ordine dei titoli va a tag header. Il ruolo di questo hub termina con “ecco cosa c’è che non va e dove viene risolto”.
I modelli mentali
1. Lexer → normalizza → DOM/CSSOM → albero di rendering → indicizza. Google non legge il tuo sorgente grezzo cercando tag perfetti. Esegue tutto attraverso un lexer HTML, lo normalizza, costruisce un DOM e un CSSOM, forma un albero di rendering e indicizza quello. Questo è il motivo per cui l’HTML disordinato è tollerato — e perché ciò che viene renderizzato è ciò che conta.
2. Due fasi: HTML grezzo, poi HTML renderizzato. La prima fase analizza la risposta HTTP per link e contenuti (veloce). La seconda fase renderizza con un Chromium headless e ri-analizza il DOM per l’indicizzazione. Chiediti per qualsiasi contenuto mancante: è nell’HTML grezzo, o solo dopo JS? Il primo è più sicuro.
3. La validità non è l’obiettivo — lo sono le modalità di errore.
“Il web in generale non è HTML valido.” Non inseguire un validatore verde. Insegui la specifica invalidità che rompe il parsing: un <head> malformato, un tag non chiuso che nasconde contenuti, un elemento che espelle il tuo canonical. La validità è un mezzo per individuare questi problemi, non un fine.
4. Aiuto alla comprensione vs. segnale di ranking. L’HTML semantico “ci aiuta a comprendere meglio le pagine” (Mueller) ma “non è un segnale di qualità.” Separa le due affermazioni e l’intero dibattito sull’HTML semantico si placa: usa l’elemento giusto perché aiuta la comprensione e l’accessibilità — non perché stai comprando un aumento di ranking.
5. Il <head> è fragile; proteggilo.
Un elemento sbagliato nel <head> fa cadere ogni tag successivo. Tratta il <head> come una breve whitelist che non devi contaminare — la regola di igiene HTML a più alto impatto che esista.
Cheat sheet SEO HTML
Elementi che contano e perché
| Elemento | Cosa ne fa Google |
|---|---|
<title> | Input primario per il titolo del link; metadati della pagina |
<h1>–<h6> | Struttura; normalizzati attraverso il rendering (lo stile è considerato) |
<a href> | Scoperta degli URL — deve essere un href reale per essere messo in coda |
<img alt> | Comprensione delle immagini + accessibilità |
og:title (meta) | Input aggiuntivo per il titolo del link |
rel=canonical / meta robots / hreflang | Direttive <head> — nascoste se il <head> si rompe |
Figli validi di <head> (la whitelist)
title, meta, link, script, style, base, noscript, template —
qualsiasi altra cosa tronca il <head>, e Google ignora ogni tag successivo.
Fatti rapidi
- “The web in general is not valid HTML” — la validità non è un fattore di ranking.
- Google analizza in due fasi: HTML grezzo → DOM renderizzato (Chromium headless); l’HTML renderizzato viene indicizzato.
- HTML semantico: “not a quality signal” ma “helps us to better understand pages” (Mueller).
- Bing tratta i tag di intestazione “more like XML than HTML” — descrittori di contenuto.
- Un elemento non valido in
<head>→ Google ignora tutto ciò che lo segue.
Errori HTML SEO che meritano di essere nominati direttamente
Ciascuno di questi è un errore HTML reale ed evitabile trattato sopra — qui riformulato come perché è sbagliato più cosa fare invece, così la correzione è attuabile piuttosto che solo descrittiva.
<head> malformato
Perché è sbagliato: un elemento non valido all’interno di <head> — un <img> fuori posto, un
<iframe>, un tag non chiuso, o uno <script> che ne inietta uno — fa sì che
Google ignori ogni elemento che viene dopo. Se il tuo <title>,
rel=canonical o i tag hreflang si trovano più avanti nel <head>, scompaiono
silenziosamente da ciò che Google vede.
Correzione: mantieni <head> solo con i suoi figli validi (title, meta, link,
script, style, base, noscript, template) e metti i tuoi tag più
importanti — title, canonical, robots — all’inizio, prima di qualsiasi cosa generata da script.
Contenuto renderizzato solo da JavaScript lato client
Perché è sbagliato: Google analizza prima la risposta HTML grezza, poi mette in coda una seconda passata in cui un Chromium headless renderizza ed esegue JavaScript prima di indicizzare. Il contenuto che esiste solo dopo l’esecuzione di JS lato client viene visto più tardi, in quella seconda passata, e potrebbe non essere indicizzato in modo affidabile.
Correzione: invia il contenuto che conta di più (testo principale, link chiave) nella risposta iniziale del server piuttosto che affidarti solo al rendering lato client.
”Link” che non sono veri elementi <a href>
Perché è sbagliato: un gestore di clic su un <div> o <span> che naviga tramite
JavaScript non è un vero link per quanto riguarda la logica della coda di scansione di
Googlebot — la scoperta degli URL si basa sugli attributi href. Una pagina raggiungibile solo
tramite tale gestore potrebbe non essere mai messa in coda.
Correzione: usa un vero <a href="…"> per qualsiasi cosa che dovrebbe essere scansionabile,
anche se alleghi anche un gestore di clic per l’esperienza utente.
Direttive <head> multiple o in conflitto
Perché è sbagliato: due tag canonical, o un canonical che contraddice la tua direttiva meta robots, invia a Google segnali contrastanti su quale URL sia autoritativo e se la pagina debba essere indicizzata — Google deve risolvere il conflitto da solo, e potrebbe non risolverlo nel modo che intendevi.
Correzione: invia esattamente un tag canonical per pagina e assicurati che non contraddica il meta tag robots sulla stessa pagina.
Intestazioni scelte per dimensione visiva invece che per struttura
Perché è sbagliato: Google normalizza i tag di intestazione attraverso il rendering e
valuta lo stile CSS applicato per giudicare l’importanza relativa. Un
<h2> stilizzato per sembrare minuscolo, o un <div> stilizzato per sembrare un’intestazione,
offusca quel segnale invece di chiarire la struttura.
Correzione: scegli i livelli di intestazione per il loro posto nella struttura del contenuto e usa CSS solo per stilizzare — non per fingere — ciò che è o non è un’intestazione.
Zuppa di div senza punti di riferimento semantici
Perché è sbagliato: impostare ogni elemento su un <div> non stilizzato (un effetto
collaterale comune delle librerie di componenti React/Vue/Tailwind) non attiva una
penalità di ranking, ma rimuove i punti di riferimento strutturali (<nav>,
<main>, <article>) che aiutano sia la comprensione di Google sia
l’accessibilità.
Correzione: usa l’elemento semantico che corrisponde al ruolo del contenuto —
<nav> per la navigazione, <main> per il contenuto primario, <article> per un
pezzo autonomo — non costa nulla e aiuta solo la comprensione.
Problemi comuni
Tre sintomi distinti e visibili al lettore legati agli errori HTML sopra — cosa osserverai effettivamente, perché sta accadendo e come risolverlo.
Sintomo: tag title o canonical mancante da ciò che Google vede
- Causa: un elemento non valido presente in precedenza in
<head>— un<img>fuori posto, un<iframe>o uno<script>che ne inietta uno — tronca il<head>in quel punto e Google ignora ogni elemento successivo. Se il<title>o il tag canonical si trova più avanti, semplicemente non viene mai visto. - Correzione: visualizza il sorgente della pagina e conferma che i tag critici siano effettivamente
all’interno di
<head>e prima di qualsiasi elemento sospetto. Rimuovi o sposta l’elemento non valido, poi ricontrolla.
Sintomo: contenuto indicizzato in ritardo, o per niente
- Causa: il contenuto esiste solo dopo l’esecuzione di JavaScript lato client. Google analizza prima la risposta HTML grezza (veloce), poi mette in coda la pagina per una seconda passata più lenta in cui un Chromium headless esegue il rendering ed esegue JS prima dell’indicizzazione — il contenuto che dipende interamente da quella seconda passata viene visto più tardi, e in modo meno affidabile, rispetto al contenuto presente nella risposta iniziale.
- Correzione: conferma che il contenuto sia presente nell’HTML renderizzato lato server (non solo nel DOM renderizzato lato client) e, se non lo è, spostalo nella risposta iniziale o aggiungi un fallback renderizzato lato server.
Sintomo: una pagina interna non viene mai indicizzata anche se è collegata dall’interfaccia utente
- Causa: il “link” che punta ad essa è un gestore di clic su un
<div>o<span>piuttosto che un vero<a href="…">. L’individuazione degli URL di Googlebot funziona sugli attributihref, quindi un elemento di navigazione solo-clic potrebbe non essere mai messo in coda. - Correzione: sostituisci il gestore di clic con un vero
<a href>che punta all’URL di destinazione (il gestore JavaScript può comunque essere eseguito per l’interazione visiva).
Verifica che una correzione di un <head> malformato abbia funzionato
Questi test si applicano dopo aver trovato e corretto un elemento non valido che
stava troncando <head> — confermano che i tag che ti aspettavi di vedere sparire (title,
canonical, hreflang) siano effettivamente tornati, sulla versione della pagina che Google
stesso vede.
Test 1 — I tag sono presenti nell’HTML grezzo
- Test da eseguire — Visualizza il sorgente della pagina (non il DOM renderizzato) e conferma
che
<title>,rel=canonicale qualsiasi tag<link>hreflangappaiano all’interno di<head>, prima di qualsiasi altro elemento. - Risultato atteso — Tutti i tag critici sono presenti e si trovano prima di qualsiasi elemento precedentemente non valido nell’ordine del sorgente.
- Interpretazione del fallimento — Se un tag manca ancora dalla visualizzazione del sorgente,
probabilmente c’è un altro elemento non valido più avanti in
<head>che lo sta ancora troncando — non dare per scontato che una correzione abbia risolto tutto; controlla se c’è un secondo colpevole. - Finestra di monitoraggio — Immediata — questo è un controllo statico di ciò che stai servendo.
- Trigger di rollback — Uno qualsiasi dei tre tag è ancora assente dalla visualizzazione del sorgente dopo la correzione — tratta la correzione come incompleta piuttosto che aspettare che Google la rifletta.
Test 2 — L’HTML renderizzato da Google concorda
- Test da eseguire — Esegui l’URL tramite URL Inspection in Google Search Console e visualizza l’HTML renderizzato che Google ha effettivamente recuperato.
- Risultato atteso — I tag title, canonical e hreflang appaiono nell’HTML renderizzato, corrispondendo a ciò che ora mostra la visualizzazione del sorgente.
- Interpretazione del fallimento — Se i tag sono presenti nella visualizzazione del sorgente ma mancano ancora nell’HTML renderizzato di GSC, Google potrebbe non aver ancora ricrawlerizzato la pagina dalla correzione, oppure un elemento iniettato da script sta ancora interferendo durante il rendering piuttosto che nella risposta grezza.
- Finestra di monitoraggio — Da alcuni giorni a un paio di settimane, a seconda della normale frequenza di ricrawlerizzazione della pagina — richiedi l’indicizzazione per accelerare se necessario.
- Trigger di rollback — I tag rimangono assenti dall’HTML renderizzato di GSC dopo un ciclo completo di ricrawlerizzazione — controlla se c’è un altro elemento non valido piuttosto che ripetere la stessa correzione.
Esempi
Due casi concreti prima/dopo basati sulle modalità di guasto principali di questo articolo.
Un <head> malformato che elimina il canonical
Rotto — un <iframe> (non un figlio valido di <head>) si trova tra il title e
il tag canonical:
<head>
<title>Widget Pricing | Acme</title>
<iframe src="/ads/banner.html"></iframe>
<!-- Google ignores everything from here on — the canonical below is never seen -->
<link rel="canonical" href="https://acme.com/widgets/pricing" />
<meta name="robots" content="index, follow" />
</head>Corretto: l’elemento non valido viene rimosso completamente da <head> (può stare in
<body> se deve essere visualizzato nella pagina):
<head>
<title>Widget Pricing | Acme</title>
<link rel="canonical" href="https://acme.com/widgets/pricing" />
<meta name="robots" content="index, follow" />
</head>
<body>
<iframe src="/ads/banner.html"></iframe>
<!-- rest of the page -->
</body>L’unica modifica è dove vive l’<iframe>: spostarlo fuori da <head>
è ciò che permette a Google di vedere di nuovo i tag canonical e robots.
Un “link” che non è un vero link
Errato: un gestore di clic su un <div> porta l’utente alla pagina, ma non c’è
href che Googlebot possa scoprire:
<div onclick="location.href='/pricing'">See pricing</div>Corretto: un vero <a href> esegue la stessa navigazione ed è indicizzabile:
<a href="/pricing">See pricing</a>Il risultato visivo per un utente che clicca è identico; la differenza è
se la logica della coda di scansione di Googlebot — che opera sugli attributi href —
scopre mai /pricing come URL da scansionare.
Risorse che meritano il tuo tempo
I miei articoli correlati
- The Beginner’s Guide to Technical SEO — dove HTML e markup si inseriscono nel quadro tecnico più ampio.
- JavaScript SEO Issues & Best Practices — il lato rendering della storia HTML, in profondità.
- We Studied Over 1 Million Domains to Find the Most Common Technical SEO Issues — il mio studio di audit su larga scala (nota: copre la dimensione delle pagine HTML come avviso di prestazioni, non la validità HTML — non ho una statistica di prima parte sulla validità HTML).
I miei interventi
- How Search Works (SlideShare) — la mia spiegazione del pipeline lexer HTML → normalizzazione → DOM/CSSOM → albero di rendering → indicizzazione. (Vale la mia dichiarazione standard: “This is my understanding of systems… not going to be 100% complete or accurate.”)
Ufficiale
Dal settore
- Semantic HTML Is Not A Google Search Quality Signal (Search Engine Roundtable) — copertura della dichiarazione di Mueller “not a quality signal”.
- Q&A With Google’s Martin Splitt: Semantic HTML, Search & Google Search Console (Search Engine Journal) — Splitt su elementi semantici e struttura dei titoli.
- HTML Tags Guide: Basics & Best Practices (Search Engine Land) — un riferimento solido tag per tag per gli elementi che questo hub riassume.
- W3C Validator Guide (Search Engine Journal) — l’inquadramento validazione-vs-SEO (beneficio indiretto, non un fattore di ranking diretto).
- r/TechSEO — la community per debug di markup, rendering e scansione.
Podcast
- Search Off the Record (Google Search Relations) — How Browsers Really Parse
HTML (and What That Means for SEO). Martin Splitt e Gary Illyes su perché la specifica
HTML è permissiva per design, se HTML semantico e validità rigorosa contano per la
ricerca, e un caso in cui uno
<script>in<head>ha iniettato un<iframe>e ha spinto i taghreflang<link>nel<body>— dove Google li ha correttamente ignorati. Il miglior ascolto approfondito su questo argomento. Ascolta
Mettiti alla prova: SEO HTML
Cinque domande rapide su come i motori di ricerca leggono il tuo markup. Scegli una risposta per ciascuna, poi controlla.
Cronologia modifiche
Aggiornato il 20 lug 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.
Aggiornato il 18 lug 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.