Dati strutturati Schema.org
I dati strutturati sono un riepilogo in codice, di solito in formato JSON-LD, che spiega a Google cosa c'è nella pagina: un prodotto con il suo prezzo, una ricetta, una FAQ, un evento. Il KIT li estrae e te li mostra leggibili, così vedi esattamente cosa capiscono i motori di ricerca del tuo sito.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
A cosa servono davvero
Sono la base dei risultati arricchiti su Google: le stelline delle recensioni, il prezzo mostrato sotto il titolo, le domande a fisarmonica delle FAQ, l'orario di un evento. Se i dati strutturati sono corretti e completi, la tua pagina può occupare più spazio e attirare più clic; se sono incompleti o sbagliati, Google li ignora in silenzio. Questo strumento ti fa vedere cosa c'è davvero nel codice, non cosa pensi di aver messo.
Gratis nel browser, incollando l'HTML
La versione gratuita lavora sul tuo dispositivo: copi il codice sorgente della pagina e lo incolli qui, e i dati non escono dal browser. Se invece ti serve far leggere direttamente un indirizzo al KIT — utile per passare in rassegna molte schede prodotto — quella modalità usa le API e costa $0.002 a richiesta. Per un controllo occasionale, la via gratis basta e avanza.
Gli errori che salta fuori
Capita spesso: uno schema Product senza prezzo o senza disponibilità, un tipo dichiarato sbagliato, una recensione senza voto numerico, una FAQ con le domande ma senza le risposte. Sono dettagli che bloccano i risultati arricchiti anche quando la pagina sembra a posto. Vedendo il JSON-LD estratto capisci subito quale campo manca e cosa correggere, senza doverti fidare a occhio.
Casi d'uso
Scheda prodotto e-commerce
Controlli la pagina di un articolo del negozio e verifichi che lo schema Product abbia nome, prezzo in euro e disponibilità: sono i campi che Google mostra nei risultati con le stelline.
FAQ in evidenza
Hai aggiunto una sezione di domande frequenti: controlli che lo schema FAQPage sia completo di domande e risposte, condizione per vederle comparire sotto il tuo link.
Attività locale
Per la pagina di Tecnoedil Verona S.n.c. verifichi lo schema LocalBusiness con indirizzo, telefono e orari: è ciò che alimenta la scheda dell'attività nelle ricerche locali.
Domande frequenti
Che differenza c'è tra dati strutturati e meta tag?
I meta tag descrivono la pagina in generale (titolo, descrizione); i dati strutturati descrivono cosa contiene in modo specifico — un prodotto, un evento, una FAQ — così Google può mostrarli come risultati arricchiti.
Legge sia JSON-LD sia i microdati?
Sì. Estrae i dati strutturati in JSON-LD, il formato oggi consigliato, e riconosce anche i microdati inseriti direttamente nel codice HTML.
È gratis o mi ritrovo un costo a sorpresa?
La modalità nel browser è gratuita e senza limiti. Nessun abbonamento: si paga soltanto se usi le API per far leggere un indirizzo al posto tuo.
I dati della pagina restano riservati?
Sì: se incolli l'HTML, l'estrazione avviene sul tuo dispositivo e nulla viene inviato ai nostri server. È la via più adatta se il contenuto è delicato.
Mi garantisce i risultati arricchiti su Google?
No, e diffida di chi lo promette. Ti mostra se i dati ci sono e sono corretti; se e come Google li usi resta una sua decisione.
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/web/schema \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/schema", {
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/web/schema",
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/web/schema", 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/web/schema", 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": "web.schema",
"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.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |