Generi robots.txt con regole di scansione e sitemap
Questo generatore di robots.txt trasforma istruzioni strutturate per i crawler in un file ordinato e pronto per la pubblicazione.
Esegui gratis nel browser
Lei può aggiungere ogni user-agent, scegliere se consentire o vietare il relativo percorso e indicare l’URL assoluto della sitemap XML. Il generatore convalida tutti i percorsi, raggruppa le regole dello stesso crawler, usa la grafia canonica delle direttive e restituisce testo semplice deterministico con interruzioni di riga sicure. È utile per definire una nuova policy, sostituire un file manuale soggetto a errori o produrre contenuti robots.txt coerenti in una pipeline di distribuzione.
Descriva l’accesso dei crawler con regole esplicite
Inizi aggiungendo una riga per ogni decisione relativa a un crawler e a un percorso. Lo user-agent identifica il crawler destinatario dell’istruzione; usi un asterisco quando una regola vale per tutti, oppure inserisca un token specifico quando uno di essi richiede un trattamento diverso. Selezioni quindi Allow o Disallow e indichi il modello di percorso pertinente. Ogni percorso deve iniziare con una barra, compreso quello della radice. Questo requisito individua un errore comune di robots.txt prima che il file venga pubblicato. Le regole dello stesso user-agent vengono riunite in un unico gruppo anche quando le rispettive righe non sono adiacenti nell’input; l’ordine dei gruppi e delle regole segue invece la loro prima comparsa. L’ordinamento stabile semplifica la revisione e impedisce variazioni inutili tra compilazioni ripetute. Il generatore non stabilisce quali aree debbano essere private o accessibili: riproduce fedelmente la policy fornita. Verifichi quindi i percorsi rispetto alla struttura reale delle route del sito.
Comprenda che cosa controlla il file generato
Un file robots.txt indica ai crawler web collaborativi quali percorsi URL possono richiedere. Non è un sistema di autenticazione, un elenco di controllo degli accessi o uno strumento per nascondere materiale riservato. Un indirizzo vietato può comunque essere scoperto tramite collegamenti, mentre i client che ignorano il protocollo possono richiederlo se il server non applica un’autorizzazione separata. Per le risorse che devono restare protette usi permessi applicativi, archiviazione privata o regole del server. All’interno di un gruppo di user-agent, i crawler interpretano i modelli Allow e Disallow secondo la propria documentazione, soprattutto quando sono presenti caratteri jolly o indicatori di fine. Questo strumento conserva il testo dei percorsi senza tentare di prevedere la precedenza di un crawler specifico. Rifiuta inoltre le interruzioni di riga incorporate in nomi, direttive, percorsi e sitemap, così un singolo campo non può inserire record aggiuntivi. Il risultato adotta maiuscole e spaziatura convenzionali senza aggiungere commenti o presupposti.
Pubblichi il risultato e lo verifichi nel contesto
Inserisca il contenuto restituito in un file di testo semplice denominato robots.txt nella radice dell’origine web interessata, per esempio https://example.com/robots.txt. Il campo sitemap deve contenere un URL assoluto HTTP o HTTPS; il generatore lo normalizza prima di aggiungere la riga Sitemap finale. Questa dichiarazione aiuta i crawler a trovare la sitemap XML anche quando si trova in un percorso poco evidente o su un altro host consentito. Dopo la distribuzione, apra direttamente l’URL pubblico del robots.txt e verifichi che la risposta abbia esito positivo, sia in testo semplice e non venga sostituita da una pagina di errore, un ciclo di reindirizzamento o una schermata di accesso. Provi i percorsi importanti con gli strumenti di ispezione offerti dai motori di ricerca e dai crawler rilevanti, perché supporto e criteri possono differire. Rigeneri il file quando cambiano route, aree private, protezioni dell’ambiente di prova o posizioni della sitemap. L’output deterministico è adatto al controllo versione e alle distribuzioni riproducibili.
Casi d'uso
Pubblicare un nuovo sito
Crei una policy di scansione leggibile e una dichiarazione sitemap prima di aprire all’indicizzazione il dominio di produzione.
Uniformare la configurazione di distribuzione
Generi contenuti robots.txt identici da impostazioni strutturate nelle compilazioni ripetibili del sito.
Separare le policy dei crawler
Raggruppi regole generali ed eccezioni specifiche senza riordinare manualmente blocchi di testo.
Domande frequenti
Che cosa accade se il percorso di una regola non inizia con una barra?
La richiesta non riesce, viene indicata la regola non valida e non viene generato alcun contenuto.
Posso aggiungere regole per più user-agent?
Sì. Le regole sono raggruppate per user-agent nell’ordine della prima comparsa di ciascuno.
Disallow protegge le informazioni private?
No. Robots.txt guida i crawler collaborativi ma non garantisce sicurezza. Protegga le risorse sensibili con autorizzazioni sul server.
Dove devo pubblicare il contenuto generato?
Lo pubblichi come robots.txt nella radice dell’origine web di cui descrive la policy di scansione.
Quali URL sitemap sono accettati?
La sitemap deve avere un URL assoluto valido che utilizzi HTTP o HTTPS.
Quanto costa l’API?
L’API costa $0.002 per richiesta. La versione per browser è disponibile gratuitamente in questa pagina.
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/robots-txt-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"rules":[{"user_agent":"*","directive":"allow","path":"/"},{"user_agent":"*","directive":"disallow","path":"/private/"},{"user_agent":"ResearchBot","directive":"disallow","path":"/"}],"sitemap_url":"https://example.com/sitemap.xml"}'const res = await fetch("https://api.kit.forhosting.com/web/robots-txt-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"rules": [
{
"user_agent": "*",
"directive": "allow",
"path": "/"
},
{
"user_agent": "*",
"directive": "disallow",
"path": "/private/"
},
{
"user_agent": "ResearchBot",
"directive": "disallow",
"path": "/"
}
],
"sitemap_url": "https://example.com/sitemap.xml"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/robots-txt-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"rules": [
{
"user_agent": "*",
"directive": "allow",
"path": "/"
},
{
"user_agent": "*",
"directive": "disallow",
"path": "/private/"
},
{
"user_agent": "ResearchBot",
"directive": "disallow",
"path": "/"
}
],
"sitemap_url": "https://example.com/sitemap.xml"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/robots-txt-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"rules":[{"user_agent":"*","directive":"allow","path":"/"},{"user_agent":"*","directive":"disallow","path":"/private/"},{"user_agent":"ResearchBot","directive":"disallow","path":"/"}],"sitemap_url":"https://example.com/sitemap.xml"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"rules":[{"user_agent":"*","directive":"allow","path":"/"},{"user_agent":"*","directive":"disallow","path":"/private/"},{"user_agent":"ResearchBot","directive":"disallow","path":"/"}],"sitemap_url":"https://example.com/sitemap.xml"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/robots-txt-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
{
"rules": [
{
"user_agent": "*",
"directive": "allow",
"path": "/"
},
{
"user_agent": "*",
"directive": "disallow",
"path": "/private/"
},
{
"user_agent": "ResearchBot",
"directive": "disallow",
"path": "/"
}
],
"sitemap_url": "https://example.com/sitemap.xml"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.robots_txt_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. |