Testador de robots.txt

Informe um endereço e escolha um robô. Buscamos o robots.txt do site, aplicamos como a norma manda e dizemos se o endereço está liberado ou bloqueado, e qual linha decide.

O campo de token só é lido quando “Outro rastreador” está selecionado. As regras são comparadas com o caminho e a query string, então informe o endereço exato, não só o domínio.

Ou experimente en.wikipedia.org/w/index.php?title=Special:Search (Googlebot), www.nytimes.com/section/world (GPTBot), github.com/search?q=robots (Bingbot)

Um aviso na porta, lido antes de cada visita

Antes de pedir páginas a um host, um robô bem-comportado pede um arquivo, o /robots.txt. O arquivo lista os caminhos que o dono do site prefere que não sejam buscados, separados por qual robô está perguntando. Durante décadas, funcionou só por costume. Ganhou uma norma escrita em 2022, a RFC 9309, e este testador segue esse texto.

O arquivo é feito de grupos. Um grupo começa com uma ou mais linhas User-agent e continua com regras Allow e Disallow:

User-agent: *
Disallow: /cart/
Disallow: /*?sort=

User-agent: GPTBot
Disallow: /

Sitemap: https://www.example.com/sitemap.xml

Cada host e cada esquema tem o seu próprio arquivo. As regras de https://www.example.com não dizem nada sobre https://shop.example.com.

Como se chega ao veredito

São duas escolhas, nesta ordem.

  1. Qual grupo. O robô procura um grupo que cite o seu próprio token, sem diferenciar maiúsculas de minúsculas. Se encontra, obedece a esse grupo e a mais nada. Só recorre ao User-agent: * quando nenhum grupo o cita. Isso pega muita gente desprevenida: crie um grupo curto para o Googlebot e você livrou o Googlebot de todas as regras escritas sob *. Grupos que citam o mesmo token são lidos como um só. Alguns robôs têm uma segunda opção documentada, que o testador aplica. Googlebot-Image e Applebot seguem o grupo do Googlebot quando não têm um próprio, e o YandexBot segue Yandex.
  2. Qual regra. Dentro do grupo, toda regra cujo padrão corresponde ao início do caminho é candidata. Vence a candidata com o padrão mais longo, esteja onde estiver no arquivo. Se um Allow e um Disallow de mesmo tamanho correspondem, vence o Allow. Se nada corresponde, o endereço está liberado.

Os padrões são comparados com o caminho e a query string, caractere por caractere, diferenciando maiúsculas e minúsculas. Dois caracteres são especiais: * vale por qualquer sequência de caracteres, e $ bem no fim significa “o caminho termina aqui”.

PadrãoCorresponde aNão corresponde a
/fish/fish, /fish.html, /fishing/rods/Fish, /catfish
/fish//fish/, /fish/salmon/fish, /fish.html
/*.pdf$/guide.pdf, /docs/a.pdf/guide.pdf?v=2
/*?sort=/shoes?sort=price/shoes?page=2&sort=price

A codificação por porcentagem é normalizada antes da comparação, então /caf%C3%A9 e /café são o mesmo caminho.

Lendo o resultado

O resumo dá o veredito, o número da linha que decide e o grupo aplicado. Abaixo dele, o arquivo é exibido com números de linha. As linhas do grupo aplicado levam uma barra, e a linha que decide fica destacada. Quando várias regras correspondem, uma pequena tabela as lista com o tamanho do padrão, e esse tamanho basta para ver por que uma vence a outra. Uma última tabela dá o veredito para os outros robôs da lista, porque o mesmo arquivo muitas vezes os trata de forma diferente.

O status do arquivo importa tanto quanto o conteúdo:

  • 404 ou qualquer outro 4xx: não há regras, todo endereço está liberado. Isso inclui o 403. Proibir o arquivo não proíbe o rastreamento.
  • 5xx, 429 ou nenhuma resposta: o robô não tem como saber as regras e precisa ficar fora do site inteiro até o arquivo voltar.
  • 200 com uma página web dentro: nenhuma linha válida, então nada é bloqueado. Acontece quando um site responde a todo endereço desconhecido com a página inicial.

O testador também aponta as linhas que um robô vai pular: regras colocadas antes de qualquer linha User-agent, nomes de diretiva desconhecidos ou com erro de digitação, padrões que não começam com /, um arquivo acima de 500 KiB, linhas Noindex: (o Google deixou de lê-las em 2019) e Crawl-delay, que o Googlebot ignora.

O que um robots.txt não consegue fazer

É um pedido. Os buscadores e as grandes empresas de IA dizem que o respeitam. Scrapers e scanners de segurança não, então nunca liste ali um caminho secreto. Além disso, o arquivo é público e qualquer um pode lê-lo.

Bloquear uma página não a remove. Uma página bloqueada não é buscada, mas o endereço dela ainda pode aparecer nos resultados quando outras páginas apontam para ela. Para manter uma página fora de um índice, deixe-a rastreável e responda com noindex numa meta tag ou num cabeçalho X-Robots-Tag.

Esta página lê o arquivo uma vez, a partir do nosso servidor. Um robô pode guardar uma cópia de até um dia, e um site pode servir um arquivo diferente para visitantes diferentes. Cada robô também tem o seu próprio parser. Onde a norma é omissa, por exemplo em diretivas com erro de digitação, lemos a linha como faz o parser publicado pelo Google e avisamos você.

Perguntas frequentes

Como bloquear um robô e liberar todos os outros?

Dê a esse robô um grupo próprio com Disallow: / e deixe os outros em paz:

User-agent: GPTBot
Disallow: /

Os robôs que não encontram um grupo com o seu nome usam o grupo *, ou não têm restrição nenhuma se ele não existir.

Por que minha página está bloqueada se existe uma regra Allow para ela?

Há duas possibilidades. Um padrão Disallow mais longo também corresponde, e vence o padrão mais longo. Ou a regra Allow está num grupo que o robô não lê, já que um robô com grupo próprio ignora completamente o grupo *. O testador mostra qual grupo foi aplicado e todas as regras que corresponderam.

Disallow tira uma página do Google?

Não. Impede o Google de buscar a página, não de listar o endereço dela. Use noindex na própria página, e não bloqueie essa página no robots.txt, senão o robô nunca chega a ver a instrução.

O robots.txt diferencia maiúsculas de minúsculas?

Os caminhos, sim: Disallow: /Private não cobre /private. Os nomes de diretivas e de robôs, não: user-agent: googlebot e User-Agent: Googlebot significam a mesma coisa.

O que significa uma linha Disallow vazia?

Disallow: sem nada depois não bloqueia nada. Um grupo só com essa linha diz “este robô pode buscar tudo”. Disallow: /, com a barra, bloqueia o site inteiro.

Quanto tempo leva para uma mudança no robots.txt valer?

Os robôs guardam uma cópia do arquivo, e a norma pede que não a usem por mais de 24 horas. Conte com uma regra nova sendo seguida em até um dia, às vezes antes. Um Disallow novo não remove páginas que já estão num índice.