Robots.txt: guia completo de configuração para SEO
Como o robots.txt afeta o rastreamento, onde ele não consegue controlar a indexação e como testar diretivas sem bloquear páginas que precisam ser encontradas.
O robots.txt é um arquivo de texto simples na raiz do seu site que indica aos rastreadores de busca quais seções podem visitar e quais devem ignorar. É a primeira coisa que um rastreador lê ao chegar ao seu site. O arquivo existe desde 1994 e continua sendo o padrão de fato para controlar o rastreamento.
A principal limitação: uma página bloqueada com Disallow não desaparece do índice automaticamente. Se outros sites apontarem links para ela, o Google pode indexar a URL sem visitá-la — e pode exibir um snippet vazio nos resultados de pesquisa. Para remover uma página do índice por completo, são necessárias outras ferramentas.
O que é o robots.txt e suas limitações
O arquivo robots.txt deve ficar na raiz do domínio: https://example.com/robots.txt. Subdomínios têm arquivos próprios: o robots.txt de blog.example.com fica em https://blog.example.com/robots.txt. O Robots Exclusion Standard (REP) define as diretivas principais; o Google e o Yandex ampliaram o padrão com recursos adicionais.
Controle de rastreamento
Impede que os bots visitem determinadas seções — reduz carga desnecessária no servidor e preserva o orçamento de rastreamento para páginas valiosas.
Aponta para o sitemap
A diretiva Sitemap ajuda os buscadores a encontrar o seu sitemap XML de imediato, sem nenhuma configuração adicional.
Não protege conteúdo
O robots.txt é publicamente visível. Ele não criptografa nem oculta o conteúdo das páginas — apenas pede aos bots que não as visitem.
Formato e sintaxe
O arquivo é formado por blocos chamados registros. Cada registro começa com uma ou mais diretivas User-agent e pode conter quantas linhas de Disallow, Allow, Crawl-delay e Sitemap forem necessárias. Os registros são separados por uma linha em branco. Comentários começam com #.
| Diretiva | Suporte | Descrição |
|---|---|---|
| User-agent | Todos | Identificador do bot. * significa “todos os rastreadores”. Um único bloco pode ter várias linhas User-agent. |
| Disallow | Todos | Caminho proibido para rastreamento. Um valor vazio significa “nada é bloqueado” (permitir tudo). |
| Allow | Google, Yandex | Permite explicitamente um caminho dentro de uma seção bloqueada. Tem prioridade sobre o Disallow. |
| Crawl-delay | Yandex, Bing | Intervalo mínimo, em segundos, entre as requisições do bot. Ignorado pelo Google. |
| Sitemap | Google, Yandex, Bing | URL absoluta do sitemap XML. Várias linhas Sitemap são permitidas. |
Curingas: * e $
Google e Yandex aceitam dois caracteres curinga nos caminhos de Disallow e Allow. O asterisco * corresponde a qualquer sequência de caracteres (inclusive uma string vazia). O cifrão $ marca o fim da URL — uma correspondência exata até o último caractere.
# Block all URLs with the ?sort= parameter
Disallow: /*?sort=
# Block only /page (exact match, not /page/child)
Disallow: /page$
# Block all PDFs across the entire site
Disallow: /*.pdf$A diretiva Sitemap pode ficar em qualquer lugar do arquivo — ela não precisa estar dentro de um bloco User-agent específico. Use sempre uma URL absoluta completa:
Sitemap: https://example.com/sitemap.xmlExemplos prontos para diferentes cenários
Cenário 1: site público simples
Para um site pequeno, sem seções privadas, um arquivo mínimo é suficiente: permitir tudo, bloquear o painel administrativo e os caminhos técnicos e declarar o sitemap.
# robots.txt for example.com — simple public site
User-agent: *
Disallow: /admin/
Disallow: /login
Disallow: /dashboard/
Sitemap: https://example.com/sitemap.xmlCenário 2: e-commerce grande, com páginas de catálogo e de parâmetros
Uma loja online gera centenas de milhares de URLs por meio de filtros, ordenação e paginação. A maioria é duplicada ou tem pouco valor próprio. Bloqueie as URLs com parâmetros usando Disallow com curingas e mantenha acessíveis as páginas limpas de categoria e de produto.
# robots.txt for e-commerce example.com
User-agent: *
# Technical and admin sections
Disallow: /admin/
Disallow: /checkout/
Disallow: /cart
Disallow: /account/
Disallow: /api/
# Parametric catalogue duplicates
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?page=
Disallow: /*?ref=
Disallow: /search
# Explicitly allow a useful parameter in one section
Allow: /catalog/shoes?size=
Crawl-delay: 1
Sitemap: https://example.com/sitemap.xmlCenário 3: site com páginas de staging e temporárias
Páginas de landing de webinar, rascunhos, páginas de modelo e seções de staging devem ser bloqueadas para rastreamento. Use Disallow por prefixo de caminho e, se necessário, um bloco separado para bots específicos.
# robots.txt for example.com — main site with staging sections
User-agent: *
Disallow: /webinar-drafts/
Disallow: /templates/
Disallow: /staging/
Disallow: /_preview/
Disallow: /thank-you-test
# Block the entire site for a specific bot (e.g. an aggressive crawler)
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
Sitemap: https://example.com/sitemap.xmlDisallow, meta robots noindex e X-Robots-Tag
São três ferramentas diferentes, com funções diferentes. Misturá-las leva a um erro clássico: a página está bloqueada no robots.txt e também tem uma meta tag noindex. O Google não consegue ler a meta tag porque a página está bloqueada para rastreamento, então a diretiva noindex nunca é executada.
| Ferramenta | Onde fica | O que faz | Quando usar |
|---|---|---|---|
| Disallow no robots.txt | robots.txt | Impede que o bot visite a URL. Não remove a URL do índice se ela já estiver lá. | Bloquear seções de serviço e reduzir o consumo desnecessário do orçamento de rastreamento. |
| meta robots noindex | HTML <head> | Permite que o bot visite a página, mas proíbe sua inclusão no índice. O bot lê a tag e segue a diretiva. | Remover uma página específica do índice (páginas de agradecimento, paginação, páginas de filtro). |
| X-Robots-Tag | Cabeçalho de resposta HTTP | Equivalente à meta robots, mas funciona para qualquer tipo de arquivo: PDFs, imagens, documentos. | Controlar a indexação de recursos que não são HTML (PDF, DOCX, imagens). |
Exemplo de X-Robots-Tag em um cabeçalho de resposta HTTP (configurado no Nginx ou no código da aplicação):
# Nginx: prevent indexation of all PDFs
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, nofollow";
}Como testar o robots.txt
Sempre valide as alterações antes de publicar. Um único erro de digitação pode bloquear o site inteiro para os rastreadores.
- Google Search Console → Testador de robots.txt: integrado ao GSC. Informe uma URL para verificar se o Googlebot e os demais bots do Google têm permissão ou estão bloqueados.
- Yandex Webmaster → Análise do robots.txt: a ferramenta equivalente para o Yandex. Mostra como o bot do Yandex interpreta o seu arquivo.
- Screaming Frog SEO Spider → Configuration → Robots.txt: rastreia o site respeitando o robots.txt e lista as URLs bloqueadas no relatório.
- curl: verificação rápida pela linha de comando para ler o arquivo e conferir o status HTTP.
# Fetch robots.txt and inspect its contents
curl -s https://example.com/robots.txt
# Check HTTP status (must be 200)
curl -I https://example.com/robots.txtErros comuns e como corrigi-los
| Erro | Sintoma | Correção |
|---|---|---|
| Disallow: / para o site inteiro | O Googlebot para de rastrear tudo. O GSC mostra as páginas como “bloqueadas pelo robots.txt”. | Remova a linha ou substitua por um caminho específico. Isso costuma entrar sem querer durante as publicações. |
| Espaço acidental no caminho | Disallow: /admin / (com espaço) — o bot lê o caminho literalmente e nada fica bloqueado. | Remova os espaços. Os caminhos diferenciam maiúsculas de minúsculas e são sensíveis a espaços. |
| noindex + Disallow na mesma página | A página continua no índice; a diretiva noindex nunca é executada. | Remova o Disallow e mantenha só o noindex. O bot precisa conseguir visitar a página para ler a tag. |
| User-agent ausente antes das regras | Erro de sintaxe: as regras não se aplicam a nenhum bot. | Adicione User-agent: * antes do bloco de Disallow/Allow. |
| robots.txt retorna 404 ou 500 | O 404 é tratado como “sem restrições”; o 500 interrompe o rastreamento temporariamente. | Garanta o HTTP 200. Um arquivo vazio equivale a “permitir tudo”. |
Recomendações de segurança
O robots.txt é público e indexado pelos buscadores — qualquer pessoa pode lê-lo. Publicar no robots.txt caminhos para painéis administrativos, backups, APIs internas ou arquivos de configuração equivale a entregar a um atacante um mapa do seu site.
- Não exponha caminhos sensíveis — backups (.zip, .sql), arquivos de configuração (.env, config.php), APIs internas.
- Proteja seções confidenciais no nível do servidor — HTTP Basic Auth, lista de IPs permitidos, OAuth — e não pelo robots.txt.
- Mantenha a lista de Disallow mínima — apenas caminhos que realmente precisam ficar fora do rastreamento por motivos de SEO.
- Revise o robots.txt no GSC regularmente — confira se as publicações não introduziram um Disallow: / por engano.
Checklist e exemplo final
- O arquivo está acessível em https://example.com/robots.txt e retorna HTTP 200
- Codificação UTF-8, sem BOM (Byte Order Mark)
- Cada bloco começa com User-agent
- Uma linha em branco separa os blocos de User-agent diferentes
- Nenhuma combinação de Disallow + noindex na mesma página
- Nenhum caminho sensível exposto publicamente
- Crawl-delay configurado para o Yandex se a carga no servidor for alta
- A diretiva Sitemap aponta para o arquivo de índice raiz
- Arquivo validado no GSC e no Yandex Webmaster
- O Screaming Frog mostra o número esperado de URLs bloqueadas
Exemplo final de robots.txt para example.com, com comentários — um modelo universal que cobre a maioria dos cenários:
# robots.txt for example.com
# Updated: 2026-05-15
# Rules for all crawlers
User-agent: *
# Admin and auth sections
Disallow: /admin/
Disallow: /login
Disallow: /dashboard/
Disallow: /account/
# Technical paths
Disallow: /api/
Disallow: /_next/
Disallow: /cdn-cgi/
# Parametric duplicates (e-commerce)
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?ref=
Disallow: /search
# Staging and temporary pages
Disallow: /staging/
Disallow: /webinar-drafts/
Disallow: /templates/
# Explicit allow for a useful API path
Allow: /api/og-image/
# Crawl rate for Yandex
User-agent: Yandex
Crawl-delay: 1
# Aggressive SEO bots (optional)
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
# Sitemap
Sitemap: https://example.com/sitemap.xmlFAQ
O robots.txt afeta o ranqueamento?
O que acontece se o robots.txt retornar 404?
Posso definir regras diferentes para o Googlebot e o Yandex em um único arquivo?
Disallow: / bloqueia o site inteiro — como corrigir rapidamente?
Como bloquear um único arquivo, mas não o diretório dele?
Check it with SpiderHead
Free and local: run the audit on your own machine.



