Gere robots.txt com regras de rastreamento e sitemap
Este gerador de robots.txt transforma instruções estruturadas para robôs em um arquivo limpo e pronto para publicação.
Executar grátis
Você adiciona cada agente de usuário, escolhe se o caminho será permitido ou bloqueado e informa a URL absoluta do sitemap XML. O gerador valida todos os caminhos, reúne regras do mesmo robô, aplica a grafia canônica das diretivas e devolve texto simples determinístico com quebras de linha seguras. Ele ajuda a criar uma política nova, substituir um arquivo manual sujeito a erros ou produzir robots.txt consistente dentro de um fluxo de implantação.
Descreva o acesso dos robôs com regras explícitas
Comece adicionando uma linha para cada decisão envolvendo um robô e um caminho. O agente de usuário identifica o robô que deve receber a instrução; use um asterisco quando a regra valer para todos ou informe um token específico quando um deles precisar de tratamento diferente. Em seguida, selecione Allow ou Disallow e digite o padrão de caminho correspondente. Todo caminho deve começar com uma barra, inclusive o próprio caminho raiz. Essa exigência detecta um erro comum em robots.txt antes da publicação. As regras pertencentes ao mesmo agente de usuário são reunidas em um único grupo, mesmo quando suas linhas aparecem separadas na entrada, enquanto a ordem dos grupos e das regras segue a primeira ocorrência. Essa ordenação estável facilita a revisão e evita diferenças desnecessárias entre compilações repetidas. O gerador não decide quais áreas devem ser privadas ou rastreáveis; ele reproduz fielmente a política fornecida, portanto confira os caminhos em relação à estrutura real de rotas do site.
Entenda o que o arquivo gerado controla
Um arquivo robots.txt orienta robôs da web cooperativos sobre quais caminhos de URL podem solicitar. Ele não funciona como autenticação, lista de controle de acesso nem recurso para esconder material confidencial. Um endereço bloqueado ainda pode ser descoberto por links, e clientes que ignoram o protocolo podem acessá-lo se o servidor não exigir autorização separada. Use permissões da aplicação, armazenamento privado ou regras do servidor para qualquer conteúdo que realmente precise de proteção. Dentro de um grupo de agentes de usuário, robôs específicos interpretam padrões Allow e Disallow de acordo com a própria documentação, principalmente quando há curingas ou marcadores de fim. Esta ferramenta preserva o texto do caminho em vez de tentar prever a precedência de um robô específico. Ela também rejeita quebras de linha inseridas em nomes, diretivas, caminhos e no sitemap, impedindo que um campo injete registros extras. O resultado usa capitalização e espaçamento convencionais, sem acrescentar comentários ou pressupostos ausentes da entrada estruturada.
Publique o resultado e verifique no contexto
Coloque o conteúdo retornado em um arquivo de texto simples chamado robots.txt na raiz da origem do site correspondente, por exemplo, https://example.com/robots.txt. O campo do sitemap deve conter uma URL absoluta HTTP ou HTTPS, e o gerador normaliza essa URL antes de acrescentar a linha Sitemap final. A declaração ajuda os robôs a localizar o sitemap XML, mesmo quando ele está em um caminho menos óbvio ou em outro host permitido. Após a implantação, acesse diretamente a URL pública do robots.txt e confirme que a resposta funciona, usa texto simples e não foi substituída por uma página de erro, ciclo de redirecionamento ou tela de login. Teste caminhos importantes com as ferramentas de inspeção oferecidas pelos mecanismos de busca e robôs relevantes, pois o suporte e os critérios podem variar. Gere o arquivo novamente sempre que rotas, áreas privadas, proteções de homologação ou locais de sitemap mudarem. A saída é determinística para a mesma entrada, portanto funciona bem em controle de versão, builds automatizados e implantações reproduzíveis.
Casos de uso
Lançar um site novo
Crie uma política legível para robôs e uma declaração de sitemap antes de liberar a indexação do domínio de produção.
Padronizar a configuração de implantação
Gere o mesmo conteúdo robots.txt com configurações estruturadas em builds reproduzíveis do site.
Separar políticas de robôs
Agrupe regras gerais e exceções específicas sem reorganizar blocos de texto manualmente.
Perguntas frequentes
O que acontece se o caminho de uma regra não começar com barra?
A solicitação falha com um erro de entrada inválida que identifica a regra, e nenhum conteúdo é gerado.
Posso adicionar regras para mais de um agente de usuário?
Sim. As regras são agrupadas por agente de usuário na ordem em que cada um aparece pela primeira vez.
Disallow protege informações privadas?
Não. Robots.txt orienta robôs cooperativos, mas não oferece segurança. Proteja recursos sensíveis com autorização no servidor.
Onde devo publicar o conteúdo gerado?
Publique-o como robots.txt na raiz da origem do site cuja política de rastreamento ele descreve.
Quais URLs de sitemap são aceitas?
O sitemap precisa ter uma URL absoluta válida que use HTTP ou HTTPS.
Quanto custa a API?
A API custa US$ 0,002 por solicitação. A versão para navegador está disponível gratuitamente nesta página.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"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"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.robots_txt_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |