Generi un sitemap XML da un elenco di URL
Crei un documento sitemap.xml completo partendo da un elenco strutturato di pagine, senza crawler, plugin del CMS o XML scritto a mano.
Esegui gratis nel browser
Ogni record richiede un URL HTTP o HTTPS assoluto e può includere anche la data dell’ultima modifica, la frequenza di aggiornamento e la priorità relativa. Il generatore convalida i valori forniti, esegue l’escape sicuro dei caratteri speciali per XML e restituisce un documento deterministico pronto da salvare, pubblicare, verificare o inserire in un’altra fase della distribuzione.
Prepari un inventario preciso degli URL
Parta dagli URL pubblici canonici che i motori di ricerca devono poter trovare. Ogni record necessita di un indirizzo completo che inizi con HTTP o HTTPS e includa il nome host e il percorso desiderato. I percorsi relativi come <code>/prodotti</code> vengono rifiutati perché un lettore di sitemap non può dedurne l’origine. Includa stringhe di query soltanto quando le pagine parametrizzate sono risultati canonici e utili autonomamente; le varianti di tracciamento normalmente non appartengono a una sitemap. Il generatore conserva il testo dell’URL inviato ed esegue l’escape dei caratteri sensibili per XML, come le e commerciali, così la query mantiene il proprio significato senza danneggiare il documento. Una singola sitemap può contenere fino a 50,000 voci, secondo il limite del protocollo. Lo strumento non esplora domini, non controlla le risposte, non deduce link canonici e non elimina duplicati. L’elenco in ingresso è quindi autorevole e il risultato prevedibile. Lo costruisca dal router, database, output del sito statico o inventario dei contenuti e rimuova pagine private, reindirizzate, duplicate, bloccate o non canoniche prima della generazione.
Usi con rigore i metadati facoltativi
Aggiunga <code>lastmod</code> solo se conosce il momento dell’ultima modifica del contenuto della pagina. Il campo accetta una data come YYYY-MM-DD oppure un timestamp ISO 8601 con fuso orario esplicito. Il valore deve descrivere la pagina stessa, non l’istante in cui esegue il generatore. <code>changefreq</code> accetta il vocabolario standard delle sitemap: always, hourly, daily, weekly, monthly, yearly o never. I motori di ricerca considerano questo campo un suggerimento, non una pianificazione; scelga quindi una frequenza coerente con la pubblicazione reale. <code>priority</code> è un’altra indicazione facoltativa, espressa come numero finito da zero a uno. Confronta URL all’interno del Suo sito; non rende il dominio più importante di altri e non garantisce posizionamento o scansione. Omettere metadati incerti è preferibile a compilare ogni elemento con valori inventati. Il generatore emette solo gli elementi facoltativi forniti per ciascun record, mantiene conciso l’XML e convalida ogni valore incluso prima di restituire qualsiasi risultato.
Pubblichi e mantenga il documento generato
Il risultato contiene la dichiarazione XML, lo spazio dei nomi ufficiale della sitemap, un elemento URL per ogni record in ingresso e un conteggio utile nei log di automazione. Salvi l’XML restituito come <code>sitemap.xml</code> con codifica UTF-8 e lo serva da una posizione pubblica stabile, di solito nella radice del sito interessato. Può indicare tale posizione in robots.txt e inviarla tramite gli strumenti dei motori di ricerca che utilizza. La generazione è deterministica: input identici producono output identici, senza richieste di rete, letture dell’ora corrente, ordinamenti casuali o normalizzazioni nascoste. Questa proprietà è adatta a build e pipeline di distribuzione, perché le differenze nel controllo versione riflettono le modifiche dell’inventario fornito. Rigeneri il documento quando cambiano gli URL canonici pubblicati o i relativi metadati affidabili; poi convalidi la risposta distribuita e verifichi che non sia protetta da autenticazione. Per siti molto grandi, suddivida i record in file conformi al protocollo e crei un indice con il flusso appropriato. L’esecuzione nel browser è gratuita, mentre le richieste API automatizzate usano il prezzo base pubblicato di $0.002.
Casi d'uso
Generi una sitemap durante la distribuzione
Trasformi le rotte canoniche prodotte dalla build in XML deterministico prima di pubblicare la nuova versione.
Esporti pagine da un database di contenuti
Converta record pubblicati e date di modifica affidabili in una sitemap pronta per i motori di ricerca.
Sostituisca l’XML manuale e fragile
Mantenga un elenco strutturato di URL mentre il generatore gestisce convalida, ordine ed escape XML.
Domande frequenti
Quali dati richiede il generatore?
Fornisca un array non vuoto di record. Ciascuno richiede un URL HTTP o HTTPS assoluto e può includere lastmod, changefreq e priority.
Esegue la scansione del mio sito?
No. Genera XML soltanto dai record forniti, quindi non effettua richieste di rete né scopre automaticamente pagine.
Come tratta le e commerciali e gli altri caratteri speciali?
I caratteri sensibili per XML presenti negli URL vengono sottoposti a escape, evitando che query valide producano XML non corretto.
Quali formati lastmod sono accettati?
Usi YYYY-MM-DD o un timestamp ISO 8601 completo che includa Z oppure uno scostamento numerico esplicito del fuso orario.
La priority può migliorare il posizionamento di una pagina?
No. È un’indicazione relativa nella Sua sitemap, non una garanzia di posizionamento né un confronto con altri siti.
Quanto costa la generazione tramite API?
Il prezzo base dell’API è $0.002 per richiesta. Lo stesso generatore deterministico funziona gratuitamente nel browser.
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/sitemap-xml-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}'const res = await fetch("https://api.kit.forhosting.com/web/sitemap-xml-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/sitemap-xml-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/sitemap-xml-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/sitemap-xml-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
{
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.sitemap_xml_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
max_items | 50000 |
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. |