SEO técnico: checklist completo para sites novos
robots.txt, sitemap, canonical, hreflang e dados estruturados — o que revisar antes de lançar um site e por que conteúdo bom não ranqueia sem base técnica correta.
Você leu o básico sobre SEO, entendeu como o Google indexa páginas e já sabe que title e meta description importam. Aí abre o Search Console dois meses depois do lançamento e vê: 40% das URLs com problema de indexação, hreflang com erro de reciprocidade, dados estruturados inválidos. O conteúdo está bom. O problema é técnico — e técnico tem checklist.
Se você ainda está no início — entendendo como crawling, indexação e ranking funcionam — o post SEO para iniciantes cobre esse terreno. Aqui o foco é o que vem depois: as configurações que o Google lê antes de qualquer palavra do seu conteúdo.
robots.txt: o que bloquear (e o que nunca bloquear)
O robots.txt vive em https://seudominio.com/robots.txt e é a primeira coisa que qualquer crawler lê. Erro mais comum em sites novos: o arquivo foi copiado de staging para produção com Disallow: / — e o site inteiro fica bloqueado para rastreamento sem nenhum aviso visível.
Estrutura básica:
User-agent: *
Disallow: /admin/
Disallow: /checkout/
Disallow: /busca?
Allow: /
Sitemap: https://seudominio.com/sitemap.xml
O Allow: / explícito resolve conflitos quando você tem uma regra geral restritiva e precisa abrir uma subseção. Sem ele, a interpretação depende da implementação do crawler.
O que bloquear:
- Páginas administrativas e de login
- Páginas de busca interna com parâmetros (
/busca?q=,?sort=,?page=) - Ambientes de staging se estiverem no mesmo domínio (idealmente, use subdomínio separado com senha)
- Páginas de carrinho e checkout em e-commerces
O que nunca bloquear:
- CSS e JavaScript que o Google precisa renderizar a página
- Imagens que aparecem no conteúdo
- A URL canônica de qualquer página que você quer indexada
Em 2026, o robots.txt ganhou um novo nível de atenção: bots de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) rastreiam seu site para treinamento e para citar em respostas. Se você não quer que seu conteúdo alimente modelos de linguagem mas quer aparecer na busca tradicional, precisa de diretivas específicas:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Googlebot
Allow: /
Essa separação é válida — cada bot obedece apenas às regras do seu próprio User-agent.
Sitemap XML: o que o Google realmente usa
Sitemap é uma lista de URLs que você quer que o Google conheça. O que muita gente não sabe: o Google usa principalmente o campo <lastmod> como sinal de frescor. Se você não atualiza o lastmod quando o conteúdo muda, o crawler pode não revisitar a página.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://seudominio.com/produto/widget-x</loc>
<lastmod>2026-05-15</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Regras que a maioria ignora:
Só URLs com status 200 e sem
noindex. Colocar URLs que retornam 301, 404 ou têmnoindexno sitemap manda um sinal contraditório ao Google.URLs canônicas, não variantes. Se
/produto?cor=azultem canonical apontando para/produto, coloque/produtono sitemap — não a variante com parâmetro.<priority>é relativo entre páginas do mesmo site. O Google documentou que raramente usa esse campo. O<lastmod>tem muito mais peso.
Para sites grandes (mais de 50 mil URLs), use sitemap index — um arquivo mestre que referencia múltiplos sitemaps por categoria ou tipo de conteúdo. Limite por sitemap: 50 mil URLs ou 50 MB não comprimido.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://seudominio.com/sitemap-blog.xml</loc>
<lastmod>2026-06-13</lastmod>
</sitemap>
<sitemap>
<loc>https://seudominio.com/sitemap-produtos.xml</loc>
<lastmod>2026-06-13</lastmod>
</sitemap>
</sitemapindex>
Canonical: quando usar e quando você está errando
A tag <link rel="canonical"> resolve o problema de conteúdo duplicado dizendo ao Google qual é a versão principal de uma URL. Parece simples. Os erros são sutis.
Problema 1: canonical apontando para URL com redirect.
Se o canonical aponta para /produto e essa URL faz redirect 301 para /produtos/widget, o Google segue o redirect mas fica confuso sobre qual URL consolidar. Canonical sempre deve apontar para a URL final, com status 200.
Problema 2: canonical + noindex na mesma página.
Se você coloca noindex em /produto?cor=azul mas essa página recebe canonical para /produto, está mandando dois sinais conflitantes. O noindex diz "não indexe esta página". O canonical diz "consolidar sinal para esta outra URL". O Google pode simplesmente ignorar o canonical.
Problema 3: canonical "self" ausente.
Toda página deve ter uma tag canonical apontando para si mesma, mesmo que não haja duplicatas. Sem ela, parâmetros de UTM (?utm_source=newsletter) podem criar duplicatas acidentais no índice.
<!-- Em /pt/ferramentas/gerador-qr-code -->
<link rel="canonical" href="https://seudominio.com/pt/ferramentas/gerador-qr-code" />
Hreflang: o erro de reciprocidade que ninguém percebe
Se o seu site serve múltiplos idiomas ou regiões, hreflang é obrigatório — e é a parte de SEO técnico com maior índice de implementação errada.
A regra fundamental: o hreflang é bidireccional. Se a versão /en/ referencia a versão /pt/, a versão /pt/ precisa referenciar de volta a versão /en/. Se qualquer uma das páginas do cluster não referenciar todas as outras, o Google ignora a anotação inteira para aquela página.
<!-- Em /en/tools/qr-code-generator -->
<link rel="alternate" hreflang="en" href="https://seudominio.com/en/tools/qr-code-generator" />
<link rel="alternate" hreflang="pt" href="https://seudominio.com/pt/ferramentas/gerador-qr-code" />
<link rel="alternate" hreflang="es" href="https://seudominio.com/es/herramientas/generador-qr" />
<link rel="alternate" hreflang="x-default" href="https://seudominio.com/en/tools/qr-code-generator" />
x-default é a URL para usuários cujo idioma não tem versão específica no site — normalmente aponta para a versão em inglês ou para uma página de seleção de idioma.
Além do <head>, você pode implementar hreflang via HTTP header (útil para PDFs e arquivos não-HTML) ou via sitemap. Para sites grandes, o sitemap é mais fácil de manter — você não depende de cada template ter o hreflang correto.
O que verificar:
- Cada URL no cluster referencia todas as outras (incluindo a si mesma)
- Os códigos de idioma seguem BCP 47:
pt,pt-BR,pt-PT,en,en-US, nãoportugueseoubrazil - As URLs no hreflang retornam 200, não 301
Dados estruturados: não é só para rich results
Structured data com Schema.org não é mais uma otimização opcional para conseguir estrelinhas na SERP. Em 2026, com AI Overviews, ChatGPT Search e Perplexity citando conteúdo, Schema.org é como bots de IA entendem quem você é, o que você oferece, e se você é uma fonte confiável.
O vocabulário mínimo para qualquer site:
Organization / WebSite:
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Quick Tools",
"url": "https://quickeasy.tools",
"potentialAction": {
"@type": "SearchAction",
"target": "https://quickeasy.tools/pt/tools?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}
Para artigos de blog:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "SEO técnico: checklist para sites novos",
"datePublished": "2026-06-13",
"dateModified": "2026-06-13",
"author": {
"@type": "Person",
"name": "Rafael Duarte"
}
}
Para FAQs: o tipo FAQPage ainda gera rich result no Google em 2026 — perguntas e respostas aparecem expandidas na SERP, aumentando o espaço visual que seu resultado ocupa.
Valide os dados estruturados com o Rich Results Test do Google antes de subir em produção. É uma requisição GET — leva trinta segundos.
Indexabilidade: o que verificar antes de lançar
Com tudo configurado, o checklist final antes de lançar um site novo:
1. Confirmar que noindex foi removido do ambiente de staging.
Esse é o erro mais cometido e o mais invisível. O site fica no ar, parece funcionar, e o Google simplesmente não indexa nada porque o <meta name="robots" content="noindex"> ficou no <head>.
2. Verificar headers HTTP.
Além da meta tag, um X-Robots-Tag: noindex no header HTTP tem o mesmo efeito. Pode estar configurado no servidor ou CDN sem aparecer no HTML.
curl -I https://seudominio.com/pagina-importante
# Procure por: X-Robots-Tag: noindex
3. Confirmar que o sitemap está submetido no Search Console. Search Console → Sitemaps → Adicionar sitemap. Sem isso, o Google pode levar semanas para descobrir suas URLs via crawl orgânico.
4. Testar a renderização JavaScript. Se o seu site é um SPA ou usa SSR parcial, o conteúdo renderizado por JavaScript pode não estar chegando ao índice. No Search Console, "Inspecionar URL" → "Ver como Googlebot" mostra o screenshot e o HTML renderizado que o Google está vendo.
5. Verificar redirecionamentos. Chains longas de redirect (A → B → C → D) desperdiçam crawl budget e enfraquecem o link equity. Cada hop em uma cadeia reduz o sinal. O ideal é redirect direto de A para D.
Para construir e testar o robots.txt, uso o Gerador de robots.txt — especialmente útil para gerar as diretivas de AI bots sem errar a sintaxe.
Perguntas frequentes
Qual a diferença entre robots.txt e a tag noindex?
robots.txt bloqueia o rastreamento — o Googlebot não visita a URL. A tag noindex permite o rastreamento mas bloqueia a indexação — o Google visita, lê o conteúdo, mas não salva no índice. O erro crítico: bloquear via robots.txt uma URL que recebe links externos. O Google vai indexar a URL (porque os links apontam para ela) sem conseguir ler o conteúdo — e vai rankear a página vazia ou com mensagem de erro.
Preciso de hreflang se meu site está só em português?
Se o site está em um único idioma e não segmenta regiões diferentes (exemplo: Brasil vs. Portugal), não precisa de hreflang. Mas se você tem /pt-BR/ e /pt-PT/ com conteúdo diferente, ou qualquer outra combinação de idioma + região, hreflang é necessário — sem ele o Google pode exibir a versão errada para o usuário.
Dados estruturados melhoram o ranking?
Diretamente, não — o Google não usa Schema.org como sinal de ranking no algoritmo principal. O impacto indireto é real: rich results aumentam CTR, e CTR é um sinal de relevância. Além disso, em 2026, AI Overviews e buscadores com IA usam dados estruturados para decidir quem citar. Para sites de conteúdo, Article e FAQPage são os tipos com maior retorno visível.
Como saber se meu hreflang está correto?
O Google Search Console tem um relatório específico em "Internacionalização" que lista os erros de hreflang por tipo — falta de tag recíproca, código de idioma inválido, URL com erro. Também é possível usar ferramentas como o Screaming Frog para auditar hreflang em escala antes de subir.
O SEO técnico é o chão, não o teto
Conteúdo ótimo em cima de base técnica quebrada não ranqueia — o crawler nem chega até o conteúdo. A ordem correta é sempre: indexabilidade primeiro, depois on-page, depois autoridade (links). SEO técnico não é glamouroso, não tem métrica de vaidade, e a maior parte do trabalho é confirmar que nada está errado — não inventar coisas novas.
O checklist mínimo: robots.txt correto, sitemap atualizado com lastmod real, canonical self em todas as páginas, hreflang recíproco se multi-idioma, dados estruturados válidos, zero noindex acidental em produção. Feito isso, o Google consegue fazer o trabalho dele. O que acontece depois disso é SEO de conteúdo — e é outro post.
- 01 Como organizar estudos de programação sem se perder Sair do tutorial hell, estudar com consistência e terminar projetos — o sistema prático que realmente funciona para aprender programação.
- 02 Clean Code sem dogmas: o que realmente importa Clean Code virou religião — e tem fiéis que aplicam os mandamentos sem entender a teologia. O que realmente reduz bugs e custo de manutenção.