Gerar sitemap XML
Gera o sitemap XML do seu site sem plugin e sem depender do CMS: você envia a lista de URLs e recebe o arquivo pronto, no formato que Google e Bing esperam. Via API, US$ 0,002 por chamada — feito para sites estáticos, landing pages avulsas e fluxos de deploy.
Sem plugin, sem CMS, sem drama
Nem todo site tem um WordPress gerando sitemap sozinho. Sites estáticos, landing pages fora do CMS, plataformas antigas sem plugin decente e sistemas feitos em casa ficam órfãos dessa tarefa — e alguém acaba escrevendo XML na mão, com os erros de sintaxe que vêm junto. Aqui o caminho é mais curto: você já sabe quais são as suas URLs; envia a lista e recebe o arquivo correto, com a formatação e as tags no padrão que os buscadores validam.
Como funciona na prática
Uma chamada à API com a lista de endereços; a resposta traz o sitemap.xml pronto. Depois é o ritual de sempre: subir o arquivo para a raiz do domínio, declarar a linha Sitemap: no robots.txt e registrar no Search Console. A fonte das URLs é você quem escolhe — a saída do build, uma consulta ao banco, até uma planilha exportada. O que importa é que a etapa chata, montar XML válido, deixa de existir.
Sitemap não é “gerou, esqueceu”
Um sitemap desatualizado atrasa a descoberta do conteúdo novo: a página publicada hoje só entra na lista quando alguém lembra de regenerar. Como a geração é uma chamada de API, o conserto é automatizar — o pipeline de deploy regenera o arquivo a cada publicação e o site nunca fica com inventário velho. Para quem publica landing pages toda semana, essa rotina silenciosa vale mais que qualquer otimização pontual: o Google fica sabendo das novidades no mesmo dia.
Preço sem pegadinha
US$ 0,002 por chamada — regenerar o sitemap a cada deploy, mesmo várias vezes por dia, custa centavos no fim do mês. Não tem assinatura, não tem plano com cota, não tem cadastro: a compra é direta e o preço fica publicado nesta página, em dólar. Comparado com manter um plugin só para isso (com as brechas de segurança que plugin abandonado adora criar), terceirizar a geração para uma chamada de API é troca simples.
Casos de uso
Site estático sem sitemap
Um site institucional feito com gerador estático está no ar há meses sem sitemap. O dev adiciona a chamada no fim do build e o arquivo passa a nascer atualizado em cada publicação.
Fábrica de landing pages
Uma agência mantém dezenas de landings fora do CMS dos clientes. Um script junta as URLs ativas e gera o sitemap de cada domínio — tarefa que era manual e mensal virou automática.
Plataforma antiga de loja
A loja roda num sistema sem suporte a sitemap. Exportar as URLs do catálogo e gerar o arquivo resolveu sem mexer no código legado.
Consolidação pós-migração
Depois de unificar três sites num domínio só, a equipe gera o sitemap novo a partir da lista definitiva de URLs — ponto de partida limpo para o Google redescobrir tudo.
Perguntas frequentes
Onde coloco o sitemap depois de gerar?
Na raiz do domínio (seusite.com.br/sitemap.xml), com uma linha Sitemap: apontando para ele no robots.txt, e registrado no Search Console. Os três juntos garantem que os buscadores o encontrem.
Preciso regenerar toda vez que publico algo?
Sim — sitemap velho é oportunidade perdida. A boa notícia: sendo uma chamada de API, dá para automatizar no deploy e nunca mais pensar nisso.
Sitemap faz o Google indexar tudo?
Não: ele acelera a descoberta das páginas, mas a decisão de indexar continua sendo do buscador. Página fraca não entra no índice por estar listada.
De onde a ferramenta tira as URLs?
De você. A lista vem do seu build, do seu banco ou da sua planilha — quem conhece o site é você; a ferramenta garante o XML impecável.
Tem mensalidade ou pacote mínimo?
Nenhum dos dois: US$ 0,002 por chamada, pagamento direto via PayPal, sem conta. Você usa quando precisa e não deve nada no mês que não usar.
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/seo/sitemap-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/seo/sitemap-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/sitemap-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/sitemap-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/sitemap-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
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.sitemap_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.
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. |
413 | input_too_large | A entrada passou do tamanho máximo desta tarefa. Confira os limites publicados. |