Generi JSON-LD FAQ
Trasformi un elenco approvato di domande e risposte nel markup FAQPage di schema.org senza scrivere JSON annidato a mano.
Esegui gratis nel browser
Il generatore convalida ogni coppia, conserva l’ordine scelto e restituisce sia un oggetto strutturato sia un blocco script completo per la pagina interessata. Non inventa affermazioni né riscrive i testi, così i dati strutturati restano coerenti con ciò che i visitatori vedono davvero.
Prepari prima domande e risposte visibili
Parta dai contenuti FAQ realmente visibili nella pagina. Ogni riga deve contenere una domanda completa e la relativa risposta; nessuna può essere vuota o composta soltanto da spazi. Il generatore non scrive, amplia o verifica il materiale. I dati strutturati devono descrivere la pagina, non crearne una versione nascosta. Prima della generazione faccia controllare affermazioni, politiche, prezzi, date e requisiti dai responsabili. Usi frasi precise e comprensibili senza menu o testo promozionale. Risolva eventuali duplicati nella FAQ visibile e disponga le coppie nell’ordine desiderato: mainEntity manterrà esattamente quella sequenza. Quando cambia una risposta, aggiorni insieme il contenuto visibile e i dati strutturati, evitando che il markup diventi obsoleto o fuorviante.
Generi markup sicuro e conforme allo standard
Per ogni coppia il generatore crea una Question schema.org e salva la domanda in name. Annida poi una Answer in acceptedAnswer e inserisce la risposta in text. I record formano l’array mainEntity di un oggetto FAQPage. Il risultato include l’oggetto per le automazioni e un blocco application/ld+json formattato per l’HTML. Gli spazi esterni vengono rimossi, mentre punteggiatura e contenuto restano sotto il Suo controllo. La serializzazione è deterministica: input uguali producono sempre output uguali, senza rete, casualità, modelli o timestamp. I caratteri che potrebbero interferire con un elemento script HTML vengono codificati in sicurezza. Il JSON ricostruisce comunque il testo originale, ma il blocco non può chiudere anticipatamente il proprio elemento script.
Pubblichi, verifichi e mantenga il risultato
Inserisca il blocco restituito nell’HTML della pagina che mostra le stesse domande e risposte. JSON-LD può normalmente trovarsi in head o body, ma il CMS potrebbe offrire un campo dedicato. Eviti di distribuirlo con un modello globale su pagine non pertinenti: il markup descrive una pagina specifica. Dopo la pubblicazione controlli il documento renderizzato, verificando che application/ld+json sia presente e non compaia come testo visibile. Provi quindi l’URL pubblico con gli strumenti di validazione dei motori di ricerca interessati. Una sintassi valida non garantisce una particolare presentazione, perché ogni servizio applica regole proprie. Tratti il blocco come contenuto da mantenere: se una risposta visibile viene modificata, rimossa o riordinata, rigeneri il JSON-LD e pubblichi insieme entrambi gli aggiornamenti.
Casi d'uso
Pubblicare una FAQ di assistenza
Converta domande revisionate in markup FAQPage coerente per lo stesso articolo pubblico.
Automatizzare le landing page
Generi JSON-LD deterministico dai record FAQ del CMS durante ogni compilazione.
Sostituire lo schema manuale
Elimini annidamenti e virgolette fragili dal flusso editoriale senza cambiare il testo approvato.
Domande frequenti
Che cosa restituisce il generatore?
Restituisce un oggetto schema e un blocco script application/ld+json completo con gli stessi dati FAQPage.
Scrive anche domande o risposte?
No. Convalida e struttura soltanto il testo fornito, senza generare, riscrivere o verificare affermazioni.
Che cosa accade se un campo è vuoto?
La richiesta fallisce con un errore di input che indica la posizione della domanda o risposta vuota.
È sicuro incollare il blocco nell’HTML?
Sì. I caratteri sensibili vengono sottoposti a escape durante la serializzazione JSON, impedendo la chiusura anticipata dello script.
Un FAQPage valido garantisce risultati avanzati?
No. Il generatore crea una struttura valida, ma i motori decidono idoneità e presentazione secondo le proprie regole.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Lo strumento web può eseguire localmente la stessa logica deterministica.
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/faq-schema-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pairs":[{"question":"How long does delivery take?","answer":"Standard delivery takes three to five business days."},{"question":"Can I change my order?","answer":"Yes. Contact support before the order is dispatched."}]}'const res = await fetch("https://api.kit.forhosting.com/web/faq-schema-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pairs": [
{
"question": "How long does delivery take?",
"answer": "Standard delivery takes three to five business days."
},
{
"question": "Can I change my order?",
"answer": "Yes. Contact support before the order is dispatched."
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/faq-schema-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pairs": [
{
"question": "How long does delivery take?",
"answer": "Standard delivery takes three to five business days."
},
{
"question": "Can I change my order?",
"answer": "Yes. Contact support before the order is dispatched."
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/faq-schema-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pairs":[{"question":"How long does delivery take?","answer":"Standard delivery takes three to five business days."},{"question":"Can I change my order?","answer":"Yes. Contact support before the order is dispatched."}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pairs":[{"question":"How long does delivery take?","answer":"Standard delivery takes three to five business days."},{"question":"Can I change my order?","answer":"Yes. Contact support before the order is dispatched."}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/faq-schema-generate", 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
{
"pairs": [
{
"question": "How long does delivery take?",
"answer": "Standard delivery takes three to five business days."
},
{
"question": "Can I change my order?",
"answer": "Yes. Contact support before the order is dispatched."
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.faq_schema_generate",
"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. |