Gere meta tags HTML com título e descrição
Este gerador de meta tags HTML transforma o título da página, a descrição para busca e uma lista opcional de palavras-chave em código limpo para o cabeçalho do documento.
Executar grátis
Ele aplica os limites usuais de 60 caracteres para o título e 160 para a descrição antes de gerar qualquer resultado. Caracteres HTML são escapados com segurança, palavras-chave repetidas são removidas e o bloco fica pronto para modelos, páginas estáticas, sistemas de conteúdo ou fluxos automatizados de publicação.
Escreva um título objetivo e uma descrição útil
Comece pela página específica que receberá o código. O título deve identificar o assunto e, quando fizer sentido, o site ou a organização responsável. Coloque os termos mais importantes no início, pois resultados de busca e abas do navegador têm espaço limitado. O gerador aceita um título preenchido com no máximo 60 caracteres. A descrição deve resumir o que a pessoa encontrará ao abrir a página, com linguagem concreta em vez de uma sequência de expressões desconectadas. Ela precisa estar preenchida e ter até 160 caracteres. Os dois limites contam caracteres Unicode, não bytes de armazenamento; assim, letras acentuadas e alfabetos não latinos são tratados como caracteres visíveis. Espaços no início e no fim são retirados antes da validação e da contagem. Se qualquer valor ultrapassar o limite, a solicitação retorna um erro de entrada sem produzir código parcial. Essa regra rígida é útil em sistemas editoriais porque impede que um rascunho inválido chegue silenciosamente ao modelo de publicação com texto que provavelmente seria cortado.
Inclua palavras-chave apenas quando forem necessárias
As palavras-chave são opcionais e devem ser enviadas como uma lista, com uma expressão em cada item. Quando existe pelo menos uma, o gerador remove espaços externos, rejeita entradas vazias, elimina repetições sem mudar a ordem da primeira ocorrência e junta as expressões restantes com vírgulas. A identificação de duplicatas ignora diferenças entre maiúsculas e minúsculas; portanto, Café e café representam a mesma palavra-chave, mas a grafia da primeira entrada é preservada. É possível enviar até 50 itens, mantendo entrada e saída limitadas tanto no navegador quanto na API. A tag de palavras-chave não é necessária para formar um bloco completo de título e descrição, e muitos mecanismos de busca atuais não a usam como sinal de classificação. Mesmo assim, ela pode atender a uma busca interna, um sistema de conteúdo antigo, uma especificação editorial controlada ou um analisador posterior que exija esse campo. Se o seu projeto não tiver essa necessidade, omita a lista; o resultado também omitirá a tag e o campo estruturado opcional, sem apresentar valores vazios.
Insira o bloco e confira a página publicada
A resposta entrega o código completo no campo html e também retorna os mesmos elementos no array tags para ferramentas de build que trabalham melhor com linhas separadas. Coloque o bloco no cabeçalho do documento, mantendo somente um elemento title e uma meta tag de descrição em cada página. Em uma aplicação renderizada no servidor, normalmente ele deve entrar nos metadados da rota ou no componente compartilhado do cabeçalho; um gerador de site estático pode inseri-lo durante o build. O resultado escapa E comercial, sinais angulares, aspas e apóstrofos, impedindo que o texto fornecido saia do contexto HTML. A ferramenta não acessa a página de destino, não cria texto publicitário, não mede a largura renderizada em pixels e não adiciona tags sociais como Open Graph ou Twitter Card. Após publicar, examine o código-fonte realmente entregue, não apenas o editor visual; confirme que nenhum tema ou plugin criou tags concorrentes e teste a URL final nas ferramentas para webmasters do mecanismo de busca relevante. Serviços de busca podem reescrever o trecho exibido, portanto um código-fonte válido funciona como orientação clara, não como garantia da apresentação exata.
Casos de uso
Prepare uma página de produto
Transforme o texto aprovado em código escapado e validado pelos limites antes do lançamento.
Valide metadados editoriais
Rejeite títulos ou descrições que ultrapassem as regras do seu fluxo de publicação.
Automatize sites estáticos
Gere elementos determinísticos de cabeçalho e linhas estruturadas a partir dos dados da página.
Perguntas frequentes
O que acontece se o título passar de 60 caracteres?
A solicitação falha com um erro de entrada e nenhuma meta tag é gerada.
O que acontece se a descrição passar de 160 caracteres?
A solicitação falha com um erro de entrada que identifica o limite da descrição.
As palavras-chave são obrigatórias?
Não. Quando elas são omitidas ou a lista está vazia, a meta tag de palavras-chave não aparece.
O gerador escapa caracteres HTML?
Sim. Textos que poderiam interferir na sintaxe HTML são escapados em elementos e atributos.
Ele gera tags Open Graph ou Twitter Card?
Não. Ele gera o título, a descrição e as palavras-chave opcionais descritas nesta capacidade.
Quanto custa a API?
A API custa US$ 0,002 por solicitação. A versão para navegador é gratuita 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/meta-tags-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Fresh Coffee Delivered to Your Door","description":"Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."}'const res = await fetch("https://api.kit.forhosting.com/web/meta-tags-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"title": "Fresh Coffee Delivered to Your Door",
"description": "Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/meta-tags-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"title": "Fresh Coffee Delivered to Your Door",
"description": "Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/meta-tags-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"title":"Fresh Coffee Delivered to Your Door","description":"Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"title":"Fresh Coffee Delivered to Your Door","description":"Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/meta-tags-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
{
"title": "Fresh Coffee Delivered to Your Door",
"description": "Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.meta_tags_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. |