Quantos H1 tem a sua página?
Essa ferramenta mostra a hierarquia de títulos (H1, H2, H3…) de qualquer página: cole o HTML e veja na hora se há mais de um H1, níveis pulados ou seções sem título. Roda grátis no seu navegador; para analisar direto pela URL, existe a via paga da API.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Headings são o sumário que o Google lê
A hierarquia de títulos conta a estrutura do conteúdo para os buscadores e para os leitores de tela: o H1 anuncia o assunto da página, os H2 dividem os capítulos, os H3 detalham cada um. Quando essa ordem quebra — dois H1 disputando espaço, um pulo de H2 para H4, seções inteiras sem título —, o robô entende menos e quem navega por leitor de tela se perde. É um dos itens mais baratos de corrigir em todo o SEO técnico.
Grátis: cole o HTML e veja
Abra o código da página (Ctrl+U no computador), copie, cole aqui e a árvore de headings aparece na hora, com os problemas destacados. Tudo roda dentro do seu navegador: o HTML não é enviado para servidor nenhum, não há limite de uso e ninguém pede o seu e-mail. Serve até para páginas que ainda não foram publicadas ou que vivem numa intranet — o código nunca sai da sua tela, então não existe risco de vazar rascunho.
Erros que aparecem toda semana
Temas de WordPress que põem um H1 no logo e outro no título do post; lojas em que o nome da categoria virou um H3 solto; páginas que usam heading só para deixar o texto grande, pulando níveis no caminho; títulos vazios esquecidos pelo editor visual. A ferramenta expõe a árvore completa e o que está fora do lugar salta aos olhos. Corrigir costuma ser trocar uma tag no template — dez minutos de trabalho para um ganho permanente.
Pela API, direto da URL
Para conferir páginas em lote ou plugar a checagem no seu fluxo de trabalho, a análise por URL é feita via API, por US$ 0,002 a chamada. É o mesmo exame do modo grátis, com duas conveniências: você aponta o endereço em vez de colar código, e a resposta vem estruturada, pronta para alimentar um script ou uma planilha. Dá para varrer as páginas principais depois de cada deploy e acusar na hora quando um template quebrar a hierarquia.
Casos de uso
Antes de publicar o post
A redatora cola o HTML da pré-visualização do WordPress e confere se o tema não criou um segundo H1 escondido. O ajuste sai antes de o post ir ao ar.
Diagnóstico de template de loja
O dev do e-commerce confere a página de categoria e descobre o clássico: o nome da loja como H1 e o da categoria como H2 em todas as páginas. Um ajuste no template corrige o site inteiro.
Auditoria rápida em reunião
O consultor abre o site do cliente, copia o código e mostra ali mesmo a bagunça de headings — argumento visual que convence mais que qualquer slide.
Portfólio e site próprio
Quem montou o site num construtor visual (Elementor, Wix e afins) confere se a ferramenta não espalhou headings decorativos pela página inteira.
Perguntas frequentes
É grátis de verdade, sem pegadinha?
Sim: o modo de colar HTML roda inteiro no seu navegador, sem limite de uso, sem marca d'água e sem pedir e-mail. O que é pago é outra coisa: a análise automática por URL, via API.
O código que eu colo é enviado para vocês?
Não. A análise acontece na sua própria aba: o HTML não sai da página. Pode colar código de intranet ou de página não publicada sem preocupação.
Por que o modo grátis não aceita só a URL?
Buscar uma URL exige um servidor no meio do caminho — e aí seus dados já estariam saindo do navegador. Preferimos manter o grátis 100% local e oferecer a busca por URL como serviço via API, por US$ 0,002 por chamada.
Quantos H1 uma página deve ter?
Um. O Google até tolera mais de um H1, mas um único título principal deixa claro o assunto da página — e evita que o robô escolha errado qual deles representa o conteúdo.
Funciona no celular?
Funciona: é uma página comum, sem app para instalar. A parte trabalhosa no celular é copiar o HTML — no computador, o Ctrl+U resolve em segundos.
Heading ajuda mesmo a ranquear?
Heading organiza; quem ranqueia é o conteúdo. Mas uma hierarquia limpa ajuda o Google a entender o texto e melhora a acessibilidade — dois efeitos que se acumulam a custo zero.
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/headings \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/seo/headings", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/headings",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/headings", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/headings", 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
{
"url": "https://ejemplo.com"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.headings",
"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. |