Artigo Grow·SEO·13 min de leitura

Robots.txt: Allow, Disallow, User-agent e Wildcards Explicados

Uma regra errada no robots.txt pode tirar o site inteiro do Google. Veja a sintaxe completa, o significado de cada diretiva, wildcards e ancoragem, regras de precedência e os erros mais perigosos — com exemplos prontos por CMS.

Vitor Morais

Por Vitor Morais

Fundador do MochaLabz ·

🤖

Gere seu robots.txt sem erro

Configurações pré-validadas para WordPress, Next.js, Shopify e outros — sem o risco de bloquear o site inteiro.

Gerar robots.txt →

O robots.txt é um arquivo de texto colocado na raiz do domínio que orienta crawlers (bots de busca, agregadores, ferramentas de IA) sobre o que rastrear no seu site. É o primeiro arquivo que o Googlebot lê ao chegar — e uma regra mal escrita pode tirar o site inteiro do índice de busca em horas. Este guia cobre cada diretiva da especificação, com exemplos concretos e os erros mais comuns.

Anatomia básica do robots.txt

Um robots.txt é apenas um arquivo de texto com diretivas organizadas por User-agent. Cada bloco se aplica a um ou mais bots. Não há sintaxe complicada — é texto plano:

# Vive em https://meusite.com/robots.txt # UTF-8, sem BOM, terminadores de linha LF ou CRLF User-agent: * # Aplica-se a todos os bots Disallow: /admin/ # Proíbe o crawl Disallow: /api/ Allow: /api/public/ # Exceção dentro de /api/ User-agent: Googlebot # Bloco específico só para o Google Disallow: /beta/ User-agent: Bingbot Crawl-delay: 10 # Bing aceita; Google ignora Sitemap: https://meusite.com/sitemap.xml Sitemap: https://meusite.com/sitemap-news.xml

Linhas que começam com # são comentários. Linhas em branco separam blocos de bots. Cada diretiva fica numa linha própria.

As 5 diretivas oficiais

Diretivas reconhecidas pelos principais bots
CritérioGoogleBingYandexDuckDuckGo
User-agent
Disallow
Allow
Sitemap
Crawl-delay
Wildcards (* $)Parcial

User-agent: identificando o bot

A diretiva User-agent abre cada bloco e identifica para qual bot as regras se aplicam. * é o curinga que vale para qualquer bot que não tenha bloco específico.

User-agents mais relevantes em 2026
CritérioO que é
GooglebotCrawler principal de busca do Google
Googlebot-ImageEspecífico para Google Imagens
Googlebot-NewsEspecífico para Google News
GoogleOtherCrawls auxiliares do Google (P&D, treino)
BingbotCrawler do Microsoft Bing
DuckDuckBotCrawler do DuckDuckGo
YandexCrawler do Yandex (mercado russo)
GPTBotCrawler da OpenAI para treino de modelos
ChatGPT-UserAcessos do ChatGPT em tempo real
ClaudeBot, anthropic-aiCrawlers da Anthropic
CCBotCommon Crawl, usado por muitos modelos de IA

Bots ignoram robots.txt?

robots.txt é uma convenção honrada. Bots sérios (Google, Bing, OpenAI, Anthropic) respeitam. Scrapers mal-intencionados, spam-bots e crawlers acadêmicos amadores podem ignorar. Para esses, controle por firewall, rate-limit ou WAF (Cloudflare, AWS WAF, fail2ban).

Disallow: o que significa exatamente

Disallow proíbe o crawl de URLs que combinam com o padrão. A interpretação depende exatamente de como o caminho é escrito:

# Bloqueia o site inteiro — CUIDADO! Disallow: / # Bloqueia /admin, /admin/, /administracao, /admin-painel Disallow: /admin # Bloqueia apenas /admin/ e tudo abaixo (mais preciso) Disallow: /admin/ # Bloqueia /pesquisa.php, /pesquisa.html, /pesquisa Disallow: /pesquisa # Bloqueia URLs que terminam em .pdf Disallow: /*.pdf$ # Não bloqueia nada (= mesmo que Allow: /) Disallow:

Allow: a exceção dentro do Disallow

Allow não tem efeito sozinho — ele faz sentido como exceção dentro de uma área bloqueada por Disallow. Em conflitos, a regra mais específica (mais longa) vence:

User-agent: * Disallow: /assets/ # Bloqueia /assets/ inteiro Allow: /assets/public/ # Exceto /assets/public/ # Resultado: # /assets/secret.zip → BLOQUEADO # /assets/public/logo.png → PERMITIDO # Para bloquear PHP mas permitir um específico: Disallow: /*.php$ Allow: /index.php$

Wildcards: * e $

Dois caracteres especiais aumentam a expressividade das regras:

  • * — qualquer sequência de caracteres (incluindo nada).
  • $ — ancoragem no final da URL.
# Bloqueia qualquer URL com ?sort= # /produtos?sort=price ✅ bloqueado # /listar?sort=asc ✅ bloqueado Disallow: /*?sort= # Bloqueia .pdf no final exato (sem query string) # /doc.pdf ✅ bloqueado # /doc.pdf?v=1 ❌ NÃO bloqueado Disallow: /*.pdf$ # Bloqueia tudo dentro de /tmp/ que termine em .log Disallow: /tmp/*.log # Cuidado com greedy: * pega TUDO entre o anterior e o próximo padrão Disallow: /img/*.jpg # bloqueia /img/foto.jpg E /img/sub/foto.jpg

Sitemap: indique seus mapas

A diretiva Sitemap aponta para o sitemap XML do seu site. Pode aparecer várias vezes (um por arquivo de sitemap) e fica fora dos blocos User-agent. Use URL absoluta:

Sitemap: https://meusite.com/sitemap.xml Sitemap: https://meusite.com/sitemap-news.xml Sitemap: https://meusite.com/sitemap-images.xml

Para mais detalhes, veja como enviar e monitorar o sitemap no Google Search Console.

Disallow ≠ Noindex

O erro mais frequente

Disallow proíbe o crawl, não a indexação. Uma URL bloqueada pode continuar aparecendo nas SERPs (sem snippet, com texto “Nenhuma informação disponível”) se tiver backlinks externos apontando para ela.

Para realmente remover do índice, faça o oposto:

  1. Permita o crawl da URL (não Disallow).
  2. Adicione no <head> da página: <meta name="robots" content="noindex" />.
  3. Quando o Googlebot revisitar e ver a tag, vai remover do índice.

Regras de precedência: como o bot decide

Quando há conflito entre Allow e Disallow, ou múltiplos User-agents aplicáveis, o bot segue uma ordem clara:

  1. Bloco User-agent mais específico vence: se existem blocos para Googlebot e para *, o Googlebot lê apenas o seu bloco — o curinga é ignorado.
  2. Não combina regras de blocos diferentes. Se você quer aplicar regras a Googlebot E o que estava no curinga, precisa repeti-las no bloco do Googlebot.
  3. Allow vs Disallow: a regra com path mais longo (mais específica) vence.
  4. Empate: em alguns bots, Allow vence; no Google também — em caso de empate exato, prevalece a permissão.

Exemplos prontos por CMS

WordPress padrão

User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php Disallow: /wp-includes/ Disallow: /wp-content/plugins/ Disallow: /?s= Disallow: /search/ Sitemap: https://meusite.com/sitemap_index.xml

Next.js / Vercel

User-agent: * Allow: / Disallow: /api/ Disallow: /_next/ Allow: /_next/static/ Allow: /_next/image Sitemap: https://meusite.com/sitemap.xml

E-commerce (Shopify, WooCommerce, custom)

User-agent: * Disallow: /carrinho Disallow: /checkout Disallow: /minha-conta Disallow: /*?sort= Disallow: /*?ordem= Disallow: /*?utm_ Sitemap: https://meusite.com/sitemap-produtos.xml Sitemap: https://meusite.com/sitemap-categorias.xml

Bloquear bots de IA generativa

User-agent: GPTBot Disallow: / User-agent: ChatGPT-User Disallow: / User-agent: anthropic-ai Disallow: / User-agent: ClaudeBot Disallow: / User-agent: CCBot Disallow: / User-agent: Google-Extended Disallow: / # bloqueia treino do Gemini, mantém Googlebot

Os 6 erros que tiram seu site do Google

Lista negra

  • Disallow: / sem querer (esquecer um robots.txt de staging em produção). Tira o site inteiro do índice.
  • Bloquear /css/, /js/, /assets/ — Google não consegue renderizar e degrada ranqueamento.
  • Disallow + noindex juntos: contraditório. O bot bloqueado nunca vê o noindex.
  • Esquecer Sitemap: linha esquecida significa demora para o Google descobrir páginas novas.
  • Múltiplos blocos User-agent: * — só o último é considerado por alguns bots; o resto é ignorado.
  • Tentar bloquear conteúdo sensível por robots.txt — o arquivo é público. Se algo é confidencial, proteja por autenticação, não por robots.txt.

Como testar e validar

  • Robots.txt Tester (Search Console legado): cola URLs específicas e simula o Googlebot.
  • URL Inspection no Search Console: mostra o status real de uma URL, incluindo se está bloqueada.
  • curl direto: curl https://seusite.com/robots.txt para ver o que o bot vê (lembre que CDNs podem cachear — force refresh).
  • Screaming Frog: crawla seu site respeitando robots.txt e mostra exatamente o que é bloqueado vs permitido.

Checklist do robots.txt enxuto

  • ✅ Arquivo na raiz, em UTF-8, com terminadores LF.
  • ✅ Não bloqueia /css/, /js/, /assets/, /_next/static/.
  • ✅ Bloqueia áreas administrativas (/wp-admin/, /admin/).
  • ✅ Bloqueia parâmetros de tracking (?utm_, ?fbclid=, ?gclid=).
  • ✅ Bloqueia áreas dinâmicas sem valor SEO (/carrinho, /minha-conta).
  • ✅ Inclui pelo menos um Sitemap absoluto.
  • ✅ Sem Disallow: / em produção.
  • ✅ Considerou se quer bloquear bots de IA generativa.
  • ✅ Testado pelo Robots.txt Tester antes de publicar.

Perguntas frequentes

Onde o arquivo robots.txt deve ficar?+

Sempre na raiz do domínio, em texto puro UTF-8, acessível em https://seudominio.com/robots.txt. O Google só lê o robots.txt nessa exata localização — colocar dentro de subpastas, em outro nome de arquivo ou em subdomínios diferentes não funciona. Cada subdomínio precisa de seu próprio robots.txt.

Disallow no robots.txt remove a página do índice do Google?+

Não. Disallow impede o crawl, mas não a indexação. Uma URL bloqueada ainda pode aparecer nas SERPs (sem snippet, com a frase "Nenhuma informação disponível") se tiver backlinks externos. Para remover do índice, use a meta tag noindex na página — e deixe o crawl liberado para o Googlebot conseguir ler essa tag.

Qual a diferença entre Disallow: /admin e Disallow: /admin/?+

Disallow: /admin (sem barra final) bloqueia tudo que começar com /admin: /admin, /admin/, /administracao, /admin-area. Disallow: /admin/ (com barra) bloqueia apenas /admin/ e seus filhos: /admin/users, /admin/config, mas permite /administracao. Use a forma com barra quando quiser ser preciso e não pegar URLs com prefixo similar.

Posso bloquear bots de IA como GPTBot e ChatGPT-User?+

Sim, e a partir de 2023 a OpenAI passou a respeitar robots.txt. Para bloquear o treino de modelos com seu conteúdo, adicione blocos específicos para User-agent: GPTBot, ChatGPT-User, GoogleOther, CCBot, anthropic-ai e ClaudeBot. Outros bots ainda ignoram robots.txt — para esses, controle por firewall ou WAF.

Qual a diferença entre Allow e Disallow?+

Disallow proíbe o crawl de uma URL ou padrão. Allow é a exceção: permite explicitamente algo dentro de um Disallow mais amplo. Exemplo: Disallow: /assets/ + Allow: /assets/public/ bloqueia /assets/ inteiro mas libera /assets/public/. Allow só faz sentido em conjunto com algum Disallow.

Wildcards (* e $) funcionam em qualquer bot?+

Os principais (Googlebot, Bingbot, DuckDuckBot, Yandex) reconhecem * (qualquer sequência) e $ (fim da URL). Bots menos populares podem não suportar. Para máxima compatibilidade, prefira regras simples baseadas em prefixos. Para Google especificamente, wildcards são totalmente seguros.

Posso ter um robots.txt diferente para cada bot?+

Sim. Cada bloco User-agent define regras para um bot específico. O bot lê primeiro o bloco que combina com seu nome; se não existe, cai no User-agent: * (curinga). Atenção: o bot só obedece o primeiro bloco aplicável — não combina regras de blocos diferentes.

Crawl-delay funciona no Google?+

Não. O Google ignora a diretiva Crawl-delay desde sempre. Para controlar a taxa do Googlebot, use as configurações de rastreamento dentro do Google Search Console (versão antiga ainda disponível para algumas propriedades). Bing, Yandex e Yahoo respeitam Crawl-delay.

#robots.txt#seo técnico#googlebot#indexação#crawl#wildcards#user-agent#wordpress#next.js#gptbot

Continue lendo