Struttura heading H1-H2
Mostra l'albero dei titoli di una pagina — H1, H2, H3 e così via — e segnala i problemi tipici: più di un H1, livelli saltati, titoli vuoti o usati solo per fare testo grande. Una gerarchia pulita aiuta Google e chi legge a capire com'è organizzata la pagina e di cosa parla ogni sezione.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Perché la gerarchia dei titoli conta
Gli heading sono lo scheletro della pagina: dicono al motore di ricerca qual è l'argomento principale (H1) e come si articola nei sottotemi (H2, H3). Sono anche ciò che uno screen reader usa per far navigare la pagina a chi non la vede. Una struttura ordinata rende il contenuto più leggibile e più facile da capire per Google; una struttura caotica — titoli scelti per la dimensione del carattere e non per il significato — confonde entrambi e spreca un segnale che avresti gratis.
Un solo H1, e che abbia senso
La regola più semplice e più violata: una pagina dovrebbe avere un solo H1, quello che riassume di cosa tratta. Molti temi ne mettono due — uno nel logo, uno nel titolo dell'articolo — o nessuno. Lo strumento conta gli H1, controlla che i livelli scendano in ordine (un H3 non dovrebbe comparire senza un H2 sopra) e segnala i titoli vuoti. Non è una regola ferrea che fa crollare il sito se la infrangi, ma sistemarla è veloce e toglie un dubbio in meno.
Gratis nel browser: basta incollare l'HTML
Incolli il codice HTML della pagina qui e l'analisi gira nel tuo browser: gratis, senza limiti e senza che i dati vengano inviati da nessuna parte. Se invece vuoi analizzare direttamente un URL — utile per controllare molte pagine o automatizzare il controllo — quella modalità passa dal servizio ed è a pagamento a $0.002 a pagina. Per un controllo veloce mentre scrivi o rivedi un articolo, la modalità gratuita basta e avanza.
Casi d'uso
Un blog con post disordinati
Chi scrive un blog di viaggi si accorge che il tema usa un H1 per il titolo del sito su ogni pagina: incollando l'HTML di un post lo vede subito e passa quel titolo a un livello più basso, lasciando l'H1 al titolo dell'articolo.
Chi migra da un vecchio tema WordPress
Dopo aver cambiato tema, un sito controlla qualche pagina campione: scopre che il nuovo template ha trasformato tutti i sottotitoli in H4 saltando gli H2 e H3, e corregge la mappatura prima di pubblicare.
Controllo veloce di una landing page
Prima di lanciare una campagna, chi cura una landing incolla l'HTML e verifica che ci sia un H1 chiaro con la proposta principale e che le sezioni sotto usino H2 coerenti, senza titoli messi solo per estetica.
Domande frequenti
È davvero gratis?
Sì, incollando l'HTML l'analisi gira nel tuo browser senza limiti e senza costi. A pagamento è solo la modalità che scarica e analizza direttamente un URL, pensata per controlli su molte pagine.
Serve per forza un solo H1?
È la prassi consigliata: un H1 che riassume la pagina. HTML5 tollera più H1 in certe strutture, ma tenerne uno solo resta la scelta più chiara per Google e per chi usa uno screen reader. Lo strumento ti segnala quanti ne trova.
Come prendo l'HTML della pagina?
Nel browser, tasto destro sulla pagina e “Visualizza sorgente pagina”, poi copi tutto e lo incolli qui. In alternativa puoi incollare solo il pezzo di codice che ti interessa controllare.
I dati vengono inviati da qualche parte?
No, se usi la modalità gratuita: l'HTML che incolli resta nel browser e non lascia il tuo dispositivo. Nulla viene caricato su un server per essere analizzato.
Controlla anche l'accessibilità?
In parte: una buona gerarchia di heading è uno dei criteri di accessibilità, perché gli screen reader la usano per navigare. Lo strumento si concentra su struttura e livelli, non su un audit completo di accessibilità.
Va bene per pagine in italiano?
Sì, la lingua non incide: lo strumento guarda i tag HTML degli heading, quindi funziona identico su una pagina in italiano come su una in qualsiasi altra lingua.
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/headings \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/seo/headings", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/headings",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/headings", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/headings", 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
{
"url": "https://ejemplo.com"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.headings",
"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. |