BrowserTools
Início / Validadores / Testador de robots.txt

Testador de robots.txt

Verifica se um crawler como o Googlebot ou o GPTBot pode visitar uma página, e que linha do robots.txt decide.

A carregar Testador de robots.txt… Se nada acontecer, ativa o JavaScript.

Um ficheiro robots.txt parece simples, mas a forma como os crawlers o leem tem algumas regras que surpreendem quase toda a gente. Um crawler não junta o seu próprio grupo ao grupo User-agent: *: assim que um grupo o nomeia, as regras gerais deixam de se aplicar. Entre Allow e Disallow, a ordem das linhas não interessa; ganha a regra com o caminho correspondente mais longo e, quando um Allow e um Disallow têm o mesmo comprimento, ganha o Allow. Os caminhos distinguem maiúsculas de minúsculas, um * corresponde a qualquer sequência de caracteres, um $ no fim prende a correspondência ao fim do URL e um Disallow vazio não bloqueia nada. Desde 2022 estas regras estão escritas no RFC 9309, a norma do Robots Exclusion Protocol que o Google, o Bing e a maioria dos grandes crawlers seguem.

Perguntas frequentes

Se um crawler tem o seu próprio grupo, continua a obedecer ao User-agent: *?
Não. Um crawler usa apenas o grupo mais específico que o nomeia. Se o teu ficheiro tem um grupo para o Googlebot, o Googlebot ignora tudo o que está no grupo User-agent: *, por isso qualquer regra que queiras que ele siga tem de ser repetida no grupo dele. Se vários grupos nomearem o mesmo crawler, as regras juntam-se. O testador mostra que grupo foi escolhido para o crawler selecionado.
Tanto o Allow como o Disallow correspondem ao meu URL. Qual ganha?
O que tiver o caminho mais longo, contado em caracteres, seja qual for a ordem no ficheiro. Com Disallow: /shop e Allow: /shop/sale, /shop/sale/shoes fica permitido, porque /shop/sale é mais longo. Quando as duas regras têm o mesmo comprimento, por exemplo Allow: /page e Disallow: /page, ganha o Allow. A tabela de resultados mostra a regra decisiva e a regra que ela venceu.
Como funcionam o * e o $ no robots.txt?
Um asterisco corresponde a qualquer sequência de caracteres, incluindo nenhuma, e um cifrão mesmo no fim significa que o URL tem de acabar ali. Disallow: /*.php bloqueia /index.php e /folder/page.php?id=1, enquanto Disallow: /*.php$ bloqueia /index.php mas não /index.php?id=1. Um asterisco no fim não acrescenta nada, por isso /fish* é o mesmo que /fish. Cada regra é uma correspondência de prefixo a partir do início do caminho, por isso /fish também bloqueia /fish.html e /fishing.
Os caminhos do robots.txt distinguem maiúsculas de minúsculas?
Sim. Disallow: /Private/ não bloqueia /private/. Os nomes das diretivas e os tokens de user-agent não distinguem maiúsculas, por isso user-agent: GOOGLEBOT e User-agent: Googlebot significam o mesmo, mas os caminhos em Allow e Disallow são comparados tal como estão.
Bloquear uma página no robots.txt tira-a do Google?
Não necessariamente. O robots.txt controla o rastreio, não a indexação. Um URL bloqueado pode continuar a aparecer nos resultados, normalmente sem descrição, se outros sites apontarem para ele. Para manter uma página fora do índice, deixa-a ser rastreada e acrescenta uma meta tag robots com noindex ou um cabeçalho X-Robots-Tag. A linha Noindex no robots.txt deixou de funcionar no Google em 2019.
Como bloqueio crawlers de IA como o GPTBot e o ClaudeBot?
Acrescenta um grupo que os nomeie, por exemplo User-agent: GPTBot numa linha, User-agent: ClaudeBot na seguinte e depois Disallow: /. Escolhe cada crawler neste testador para confirmar o resultado. Lembra-te de que alguns tokens, como o Google-Extended e o Applebot-Extended, são tokens de controlo e não crawlers, e de que os pedidos feitos a mando de um utilizador podem nem sequer seguir o robots.txt.
Porque é que o /robots.txt está sempre permitido?
Porque um crawler tem de ler o ficheiro antes de lhe poder obedecer. O RFC 9309 diz que o /robots.txt está implicitamente permitido, por isso uma regra Disallow: / nunca impede um crawler de ir buscar o próprio ficheiro. O testador reflete isto para qualquer caminho igual a /robots.txt.
Qual pode ser o tamanho de um ficheiro robots.txt?
O RFC 9309 obriga os crawlers a analisar pelo menos 500 kibibytes, e o Google para aí: as regras depois dos primeiros 500 KiB são ignoradas. Se o teu ficheiro está perto desse tamanho, normalmente é gerado com uma linha por URL, e agrupar caminhos com curingas torna-o muito mais curto e fácil de manter. O testador esbate qualquer linha que passe o limite.
Porque aparece um caminho diferente por baixo do meu URL?
O testador compara caminhos como os crawlers fazem. Um URL completo é reduzido ao caminho e à query string, e a codificação percentual é normalizada: os caracteres não ASCII são codificados em UTF-8, e os escapes de letras, algarismos e - . _ ~ são descodificados. Assim, /caf%C3%A9 e /café, ou /%7Euser e /~user, correspondem às mesmas regras. A forma normalizada aparece por baixo do que escreveste quando é diferente.

Sobre Testador de robots.txt

Este testador implementa essa norma diretamente no teu navegador. Cola o teu robots.txt, indica os URLs ou caminhos que te interessam, um por linha, e escolhe um crawler: o Googlebot e as suas variantes de imagens, notícias e vídeo, o Bingbot, o Applebot, o DuckDuckBot, o YandexBot, os crawlers de IA como o GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot e CCBot, bots de pré-visualização de links, ferramentas de SEO ou qualquer token personalizado. Para cada caminho tens Permitido ou Bloqueado, a regra exata que decidiu, com o número da linha, e a regra concorrente que ela venceu, por isso um resultado como "bloqueado por Disallow: /*.pdf$ na linha 5" é fácil de seguir. A vista do ficheiro destaca o grupo que se aplica ao crawler escolhido e colore cada linha que foi usada.

O testador aponta também problemas que fazem um robots.txt comportar-se de forma diferente do que o autor pretendia: regras antes de qualquer linha User-agent, diretivas desconhecidas ou mal escritas, URLs completos onde se espera um caminho, uma marca de ordem de bytes UTF-8 no início, diretivas como Noindex que os crawlers já não respeitam, e ficheiros acima dos 500 KiB que o Google lê. Lista as linhas Sitemap e o Crawl-delay que se aplica, lembrando que o Google ignora o Crawl-delay. As particularidades de cada crawler estão incluídas: o Googlebot-Image recorre ao grupo do Googlebot, o Applebot segue as regras do Googlebot quando não é nomeado, e os crawlers AdsBot e AdSense ignoram por completo o grupo *. Nada é descarregado nem enviado, por isso podes testar um rascunho antes de o publicares.

Uma norma que demorou 28 anos a sê-lo

Martijn Koster propôs as regras de exclusão de robots em fevereiro de 1994 na lista de correio www-talk, depois de um crawler mal comportado ter sobrecarregado o seu servidor na Nexor. No fim de junho, os autores de robots da época tinham concordado em segui-las, e durante o quarto de século seguinte toda a web assentou numa convenção que nunca tinha sido formalmente normalizada. Cada motor de busca interpretava os casos limite de forma ligeiramente diferente, dos curingas ao tamanho do ficheiro.

Em julho de 2019, no 25.º aniversário da proposta original, a Google submeteu um rascunho ao IETF juntamente com Koster e outros motores de busca, e publicou em código aberto o analisador em C++ que o Googlebot usava há vinte anos. O rascunho passou por mais três anos de revisão e foi publicado como RFC 9309 em setembro de 2022. As regras essenciais quase não mudaram desde 1994, mas o RFC resolveu finalmente as questões discutidas durante décadas: o Allow é oficial, ganha a correspondência mais longa e os crawlers têm de ler pelo menos 500 KiB.

Apoiar