Verifichi la gerarchia delle intestazioni e gli errori H1
Elenchi le intestazioni nell'ordine della pagina e veda se la gerarchia regge: h1, h2, h3, h2, h3 passa, mentre andare da h2 direttamente a h4 viene segnalato come un h3 mancante, nella posizione esatta. È richiesto un solo h1. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Intestazioni
- h1, h2, h3, h2, h3
- Numero di intestazioni
- 5
- Numero di H1
- 1
Una gerarchia di intestazioni può sembrare corretta sullo schermo mentre le etichette sottostanti raccontano una storia diversa. Questo strumento riceve le etichette nell’ordine del documento, per esempio h1, h2, h3 e h2, e applica due regole precise: deve esserci esattamente un h1 e nessuna intestazione può scendere di più di un livello alla volta. La risposta mostra la validità, il numero di h1 e la posizione esatta di ogni salto, così i team editoriali e i sistemi di pubblicazione possono intervenire.
Prepari la sequenza nell’ordine del documento
Parta dalle etichette così come compaiono nel documento visualizzato, non da una bozza grafica o da una scaletta editoriale. Un input tipico può essere h1, h2, h3, h2, h3. L’ordine è importante perché la gerarchia viene espressa dal passaggio tra un’intestazione e la successiva.
Lo strumento accetta etichette da h1 a h6, elimina gli spazi esterni e considera le forme maiuscole come H2 equivalenti a quelle minuscole. Non accetta HTML arbitrario, testo delle intestazioni, classi CSS o numeri isolati. Estragga tali elementi prima della richiesta, così l’input resta un elenco inequivocabile.
Un elenco vuoto viene rifiutato come input non valido perché non offre alcuna struttura da valutare. Anche un’etichetta errata viene rifiutata indicandone l’indice, per rendere più semplice diagnosticare una fase di estrazione difettosa. Questa separazione è utile nei flussi automatici: l’estrazione determina quali etichette esistono, mentre la capacità ne valuta soltanto ordine e livelli.
Comprenda le due regole della gerarchia
La prima regola richiede esattamente un h1 nell’intero elenco. Se non è presente alcun h1, il documento non ha un’intestazione superiore unica; se ce ne sono due o più, il livello principale viene ripetuto. La seconda regola esamina ogni coppia adiacente e segnala un salto quando il numero successivo supera il precedente di più di un’unità.
Il passaggio da h2 a h4 segnala quindi l’assenza di h3. Il passaggio da h1 a h5 segnala che nella transizione mancano h2, h3 e h4. Risalire da h4 a h2 è consentito, perché chiude contenuti annidati e torna a una sezione più ampia.
È consentito anche ripetere un livello: due h2 consecutivi possono introdurre sezioni parallele. Lo strumento riporta tutti i salti senza fermarsi al primo. Ogni voce include l’indice di destinazione a base zero, la transizione e le etichette intermedie mancanti.
Il risultato è valido soltanto quando il conteggio h1 è uno e non vi sono livelli saltati.
Usi il risultato nelle revisioni e nei controlli editoriali
Usi il campo di validità per una semplice decisione di approvazione o rifiuto, quindi conservi i dettagli per fornire istruzioni utili. Il conteggio totale conferma quante etichette sono state valutate, mentre il numero di h1 spiega se la regola superiore è stata rispettata. Ogni salto indica l’indice di destinazione in cui si verifica la discesa errata, quindi un redattore o uno strumento di build può trovare il punto senza interpretare messaggi ambigui.
L’elenco dei problemi offre brevi riepiloghi in inglese per log, commenti di revisione o interfacce di gestione dei contenuti. Questa capacità non giudica formulazione, parole chiave, dimensione visiva, testo vuoto o quantità ideale di sezioni. Inoltre, non scarica URL e non analizza HTML: chi parte da una pagina deve prima estrarre le etichette ordinate.
Casi d'uso
Bloccare scalette di articoli errate
Rifiuti una bozza quando le etichette estratte non includono un unico h1 o saltano direttamente a un livello annidato male.
Controllare i modelli dopo un redesign
Confronti pagine renderizzate rappresentative e trovi i salti introdotti da componenti riutilizzabili o modifiche al tema.
Aggiungere controlli strutturali alla CI
Trasformi l’elenco ordinato prodotto da una build statica in un esito deterministico prima della distribuzione.
Domande frequenti
Quanto costa la verifica?
Il calcolo è deterministico e non contatta servizi esterni.
Tornare da h4 a h2 è considerato un salto?
No. Il ritorno a un livello più ampio è consentito; viene segnalata solo una discesa superiore a un livello.
Sono accettate etichette maiuscole?
Sì. Forme come H1 e H3 vengono normalizzate in minuscolo dopo la convalida e gli spazi esterni vengono ignorati.
Questa capacità analizza una pagina HTML?
No. Richiede un elenco già estratto di etichette da h1 a h6 nell’ordine del documento e convalida soltanto tale sequenza.
Che cosa succede se la pagina non ha un h1 o ne ha più di uno?
Il controllo non passa in entrambi i casi. Senza h1 il documento non ha un'unica intestazione principale; con due o più, il livello superiore si ripete. Il numero di h1 viene indicato così lei vede quale dei due casi si verifica.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/seo/heading-structure-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"headings":["h1","h2","h3","h2"]}'const res = await fetch("https://api.kit.forhosting.com/seo/heading-structure-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"headings": [
"h1",
"h2",
"h3",
"h2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/heading-structure-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"headings": [
"h1",
"h2",
"h3",
"h2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/heading-structure-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"headings":["h1","h2","h3","h2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"headings":["h1","h2","h3","h2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/heading-structure-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"headings": [
"h1",
"h2",
"h3",
"h2"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.heading_structure_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Domande tecniche
Che cosa accade se l’elenco è vuoto?
La richiesta restituisce un errore invalid_input perché una sequenza vuota non contiene alcuna struttura da convalidare.