Pular para o conteúdo

Fiz um verificador de SEO que só mede o que dá para medir

por Lucas Almeida 4 min de leitura

Toda ferramenta de SEO devolve uma nota. “Seu conteúdo é 73/100.” O problema é o que está dentro desse número: contagem de caracteres do title, que é objetiva, somada a “densidade da palavra-chave”, que é folclore, somada a “legibilidade”, que é uma fórmula criada em 1948 para textos em inglês. Três coisas incomparáveis viram um número só, e aí você não sabe o que corrigir.

Escrevi um verificador que faz o oposto: checa treze itens objetivos, mostra o limite usado em cada um e não dá nota nenhuma. É um arquivo PHP, roda na linha de comando, não tem dependência e funciona em qualquer site — não só em WordPress.

O que ele checa

Item Critério
title presente, 30–60 caracteres; acima de 70 é erro (o Google corta)
meta description presente, 120–158 caracteres
H1 exatamente um, 20–80 caracteres
H2 pelo menos dois
hierarquia sem salto de nível (H2 direto para H4)
canonical presente e absoluta
Open Graph og:title, og:description e og:image
imagens pelo menos 90% com alt
palavras 300 mínimo, 600 desejável
FAQ se existir a seção, três perguntas ou mais
JSON-LD presente e com JSON válido
hreflang presente e com autorreferência
links internos e externos — texto sem fonte citada vira aviso

Os limites estão numa constante no topo do arquivo. Se você discorda de algum, edite — esse é o ponto de ter os critérios visíveis em vez de escondidos atrás de uma pontuação.

Como usar

php dr-seo-check.php https://exemplo.com/post/
php dr-seo-check.php pagina.html
php dr-seo-check.php https://exemplo.com/post/ --json

A saída é uma lista, um item por linha:

  ok    title         50 caracteres
                      Surface Laptop Ultra: preço, specs e data de venda
  ok    description   158 caracteres
  ok    h1            71 caracteres
  ok    h2            12 subtítulos
  ok    canonical     https://digitalradar.com.br/surface-laptop-ultra...
 aviso  imagens       82% com alt — 2 sem texto alternativo
  ok    palavras      977
  ok    faq           4 perguntas
  ok    json-ld       Organization, Article, BreadcrumbList, FAQPage
  ok    hreflang      pt-BR, en-US, x-default
  ok    links         53 internos, 9 externos

12 ok · 1 avisos · 0 erros

Esse relatório é real: é um post deste site. E o aviso também — o script achou duas imagens sem alt numa página que eu considerava pronta. É para isso que serve.

O modo --json existe para automação: dá para rodar em todos os posts antes de publicar e falhar o processo se houver erro. O script sai com código 1 quando encontra erro e 0 quando não encontra, que é o que um pipeline espera.

O que ele deliberadamente não checa

Essa lista importa tanto quanto a outra:

  • Densidade de palavra-chave. Não existe percentual ideal. O Google abandonou isso há mais de uma década, e otimizar por densidade produz texto pior.
  • Legibilidade. As fórmulas usadas (Flesch e derivadas) foram calibradas para o inglês nos anos 1940, contando sílabas. Aplicadas ao português, medem pouca coisa útil.
  • Backlinks e autoridade. São importantes e não são on-page. Outra ferramenta, outro trabalho.
  • Nota agregada. Somar “title com 55 caracteres” e “tem JSON-LD” num número só joga fora a informação que interessa.

Por que linha de comando

Porque a verificação útil é a que roda antes de publicar, não a que você abre num painel depois. Com o script local você checa um rascunho salvo em arquivo, sem subir nada, sem cadastro e sem limite de consultas.

Ele precisa de PHP 7.4 ou superior com as extensões dom e json, que vêm por padrão. Para ler endereços https, o PHP precisa da extensão openssl ou da curl; se faltarem as duas, o script avisa e sugere o contorno — salvar a página com curl -s URL -o pagina.html e rodar no arquivo.

Baixar

dr-seo-check (PHP) — baixe e renomeie de .php.txt para .php. O arquivo sobe aqui com extensão dupla porque o WordPress bloqueia upload de .php, por segurança.

Uso livre, inclusive comercial. Se melhorar alguma checagem, escreva — a versão boa de uma ferramenta assim é a que muita gente usou.

Perguntas frequentes

Funciona em site que não é WordPress?

Funciona. Ele lê o HTML entregue pela página, então serve para qualquer site ou arquivo local.

Preciso instalar alguma biblioteca?

Não. Só PHP com dom e json, que são padrão. Não há Composer nem pacote externo.

Posso mudar os limites?

Pode e deve, se discordar. Eles ficam numa constante no topo do arquivo, justamente para serem editados.

Por que não dar uma nota de 0 a 100?

Porque a nota mistura o que é medição com o que é opinião e esconde as duas. Treze itens com limite declarado dizem o que corrigir; um número não diz.

No DigitalRadar, publicamos as ferramentas que usamos internamente. Fique no radar.

Lucas Almeida
Redação DigitalRadar

Desenvolvedor e fundador da Elion Estúdio, Lucas Almeida é especialista em tecnologias emergentes, games e análise de mercado. Com experiência em SEO e growth marketing, foca em conteúdo aprofundado que conecta o universo da tecnologia com o dia a dia das pessoas.

Apurado a partir das fontes citadas e verificado antes da publicação. Veja a nossa Política Editorial.

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *