Como agrupar palavras-chave por assunto
Você manda uma lista de palavras-chave e recebe os grupos por intenção de busca: termos que pedem a mesma página ficam juntos, mesmo quando não repetem nenhuma palavra. A clusterização usa análise semântica — não regra de texto — e devolve o resultado pronto para planejar conteúdo.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
O problema da planilha de 2.000 linhas
Todo planejamento de SEO começa igual: exportar a lista do Search Console ou do planejador de palavras-chave e encarar milhares de linhas. Agrupar no olho leva a tarde inteira e sai inconsistente — “nota fiscal eletrônica” vai para um grupo, “NF-e” vai parar em outro, e no fim o site nasce com duas páginas competindo entre si. Esse trabalho braçal, repetido a cada projeto, é exatamente o que a clusterização automática elimina.
Semântica, não coincidência de palavras
A ferramenta transforma cada termo em uma representação matemática de significado (embedding) e mede a distância entre elas. Por isso “como emitir boleto” e “gerar cobrança bancária” caem no mesmo grupo, embora não compartilhem nenhuma palavra — e “manga da fruta” fica longe de “manga de camisa”. Ferramentas baseadas em coincidência de texto não conseguem fazer essa separação; a análise semântica faz, no idioma da sua lista, inclusive português.
Do agrupamento ao mapa do site
Cada cluster que sai da ferramenta é uma decisão editorial pronta: um grupo, uma página. Termos do mesmo cluster viram H2 e variações dentro do texto, em vez de páginas separadas canibalizando o ranking umas das outras. Com os grupos em mãos, você monta o calendário de conteúdo, define a URL de cada página e evita o erro mais caro do SEO: dois artigos do mesmo site disputando a mesma busca no Google.
Quanto custa
O serviço funciona via API, pago por uso: US$ 0,002 por chamada, mais US$ 0,0015 por lote processado. Sem mensalidade, sem plano, sem pacote mínimo — você paga quando roda. Para uma agência que refaz o planejamento de um cliente por mês, o custo é irrisório perto da tarde de trabalho manual que deixa de existir. O preço é publicado aqui na página e é o mesmo para todo mundo.
Casos de uso
Planejamento trimestral em uma reunião
Rafael Almeida Costa, consultor de SEO em Curitiba, exportou 1.800 termos do Search Console de um cliente novo e recebeu os grupos prontos em uma chamada. O planejamento que tomava dois dias saiu ainda durante a reunião de kickoff.
Loja virtual descobrindo categorias que faltam
Um e-commerce agrupou as buscas internas dos clientes junto com as palavras-chave do Google. Os clusters revelaram assuntos procurados que não tinham página própria no menu — cada grupo órfão virou uma categoria nova.
Migração de site sem perder tráfego
Antes de migrar o site institucional, a equipe agrupou todas as consultas que traziam visitas. Com os clusters mapeados, decidiu quais páginas antigas seriam fundidas e para onde apontaria cada redirecionamento — sem deixar busca órfã.
Pauta de blog guiada por cluster
Ana Paula Ferreira mantém um site de finanças pessoais em Belo Horizonte. Uma vez por mês, roda a lista de termos novos e transforma cada cluster em uma pauta — o que antes era achismo virou fila de produção.
Perguntas frequentes
Quantas palavras-chave dá para agrupar de uma vez?
A cobrança é por lote processado, sem pacote fixo: mande a lista do tamanho do seu projeto. Listas na casa dos milhares de termos são o uso típico — é justamente onde o agrupamento manual deixa de ser viável.
Funciona bem com termos em português?
Sim, e é onde a análise semântica brilha: ela entende que “segunda via de boleto” e “reemitir cobrança” falam da mesma coisa. Cada termo é agrupado pelo significado, não pela grafia.
A ferramenta me diz o volume de busca de cada termo?
Não — ela agrupa a lista que você envia; não consulta volume nem concorrência. A ideia é complementar: você traz os números do Search Console ou do seu planejador e recebe a organização por assunto, que é a parte que nenhuma exportação entrega.
Como funciona a cobrança?
Por uso, via API: US$ 0,002 pela chamada e US$ 0,0015 por lote processado, em dólar americano. Não tem assinatura nem valor mínimo, e o pagamento é direto, sem criar conta.
O que acontece com a minha lista de palavras-chave?
Ela é processada para calcular os agrupamentos daquela chamada e devolver o resultado. A lista é sua: não é publicada nem reaproveitada em outros trabalhos.
Tem como testar grátis?
Esta capacidade é paga por uso e não tem camada grátis — mas o preço baixo faz o papel do teste: rodar uma lista pequena custa centavos de dólar. As ferramentas do site que rodam no navegador, essas sim, são grátis.
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/keyword-cluster \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/seo/keyword-cluster", {
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/keyword-cluster",
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/keyword-cluster", 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/keyword-cluster", 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.keyword_cluster",
"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. |