O que é robots.txt? | Como funciona um arquivo robots.txt

Um arquivo robots.txt contém instruções para os bots e diz a eles quais páginas web eles podem e não podem acessar. Os arquivos robots.txt são mais relevantes para os web crawlers (rastreadores da internet) dos mecanismos de busca como o Google.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Saiba o que é um arquivo robots.txt e o que ele faz
  • Entenda como os bots interagem com um arquivo robots.txt
  • Explore os protocolos usados em um arquivo robots.txt, incluindo o Protocolo de Exclusão de Robôs e o Sitemaps

Copiar o link do artigo

O que é Robots.txt?

O modelo OSI

Um arquivo robots.txt é um conjunto de instruções para bots. Esse arquivo está incluído nos arquivos fonte da maioria dos sites. Os arquivos robots.txt destinam-se principalmente ao gerenciamento das atividades de bots bons como os web crawlers, já que é provável que os bots maus não sigam as instruções.

Pense em um arquivo robots.txt como se fosse um aviso de "Código de Conduta" afixado na parede de uma academia, de um bar ou de um centro comunitário: o aviso em si não tem poder para fazer cumprir as regras listadas, mas os usuários "bons" seguirão as regras, enquanto os "ruins" provavelmente as quebrarão e serão banidos.

Um bot é um programa de computador automatizado que interage com sites e aplicativos. Existem bots bons e bots maus, e um tipo de bot bom é o chamado bot web crawler. Esses bots "rastreiam" páginas da web e indexam o conteúdo para que ele possa ser exibido nos resultados dos mecanismos de pesquisa. Um arquivo robots.txt ajuda a gerenciar as atividades desses web crawlers para que eles não sobrecarreguem o servidor web que hospeda o site ou indexem páginas que não são destinadas à visualização pública.

Como funciona um arquivo robots.txt?

Um arquivo robots.txt é apenas um arquivo de texto sem código de marcação HTML (daí a extensão .txt). O arquivo robots.txt é hospedado no servidor web como qualquer outro arquivo no site. De fato, o arquivo robots.txt de qualquer site normalmente pode ser visualizado digitando-se a URL completa da página inicial e depois adicionando-se /robots.txt, como https://www.cloudflare.com/robots.txt. O arquivo não está vinculado a nenhum outro lugar no site, portanto os usuários provavelmente não tropeçarão nele, mas a maioria dos bots do tipo web crawler procurarão por esse arquivo primeiro antes de rastrear o resto do site.

Embora um arquivo robots.txt forneça instruções para bots, na verdade ele não pode fazer com que as instruções sejam cumpridas. Um bot bom, como um web crawler ou um bot de feed de notícias, tentará visitar primeiro o arquivo robots.txt antes de visualizar qualquer outra página em um domínio, e seguirá as instruções. Um bot mau ignorará o arquivo robots.txt ou o processará a fim de encontrar as páginas da web que são proibidas.

Um bot web crawler obedecerá ao conjunto mais específico de instruções do arquivo robots.txt. Se houver comandos contraditórios no arquivo, o bot seguirá o comando mais detalhado.

Uma coisa importante a ser observada é que todos os subdomínios precisam do seu próprio arquivo robots.txt. Por exemplo, embora www.cloudflare.com tenha seu próprio arquivo, todos os subdomínios da Cloudflare (blog.cloudflare.com, community.cloudflare.com, etc.) também precisam ter seu próprio arquivo.

Quais protocolos são usados em um arquivo robots.txt?

Em rede, um protocolo é um formato usado para fornecer instruções ou comandos. Os arquivos robots.txt utilizam alguns protocolos diferentes. O protocolo principal é chamado de Protocolo de Exclusão de Robôs. Trata-se de uma forma de dizer aos robôs quais páginas e recursos devem ser evitados. As instruções formatadas para este protocolo estão incluídas no arquivo robots.txt.

Outro protocolo usado para arquivos robots.txt é o protocolo Sitemaps, que pode ser considerado um protocolo de inclusão de robôs. O Sitemaps mostra a um web crawler quais páginas ele pode rastrear. Isso ajuda a garantir que um bot crawler não ignore uma página importante.

Exemplo de um arquivo robots.txt

Aqui está o arquivo robots.txt para www.cloudflare.com:

Abaixo detalhamos o que tudo isso significa.

O que é um agente de usuário? O que significa '"agente-usuário: *"?

Qualquer pessoa ou programa ativo na internet terá um "agente de usuário", ou um nome atribuído. Para usuários humanos, isso inclui informações como o tipo de navegador e a versão do sistema operacional, mas não inclui nenhuma informação pessoal, e ajuda os sites a exibirem conteúdo compatível com o sistema do usuário. Para os bots, o agente de usuário (teoricamente) ajuda os administradores do site a saberem que tipo de bots estão rastreando o site.

Em um arquivo robots.txt, os administradores do site podem fornecer instruções específicas para bots específicos, escrevendo instruções diferentes para o bot agentes de usuário. Por exemplo, se um administrador quiser que uma determinada página seja exibida nos resultados de pesquisa do Google, mas não nas pesquisas do Bing, eles poderiam incluir dois conjuntos de comandos no arquivo robots.txt: um conjunto precedido por "User-agent: Bingbot" e um conjunto precedido por "User-agent: Googlebot".

No exemplo acima, o Cloudflare incluiu "User-agent: *" no arquivo robots.txt. O asterisco representa um "agente de usuário" curinga e significa que as instruções se aplicam a todos os bots, não a um bot específico.

Os nomes mais comuns de bots de agentes usuário para mecanismos de pesquisa incluem:

Google:

  • Googlebot
  • Googlebot-Image (para imagens)
  • Googlebot-News (para notícias)
  • Googlebot-Video (para vídeos)

Bing

  • Bingbot
  • MSNBot-Media (para imagens e vídeo)

Baidu

  • Baiduspider

Como funcionam os comandos "Disallow" em um arquivo robots.txt?

O comando "Disallow" é o mais comum do protocolo de exclusão de robôs. Ele diz aos robôs para não acessarem a página web ou o conjunto de páginas web indicados após o comando. As páginas proibidas não são necessariamente "escondidas": elas simplesmente não são úteis para o usuário médio do Google ou do Bing, portanto não são mostradas a eles. Na maioria das vezes, um usuário do site ainda pode navegar por essas páginas se souber onde encontrá-las.

O comando "Disallow" pode ser usado de várias maneiras, muitas das quais são exibidas no exemplo acima.

Bloquear um arquivo (em outras palavras, uma página web em particular)

A título de exemplo, se o Cloudflare quisesse impedir os bots de rastrear nosso artigo " O que é um bot?", esse comando seria escrito da seguinte forma:

Disallow: /learning/bots/what-is-a-bot/

Após o comando "disallow", a parte da URL da página web que vem após a página inicial (neste caso, www.cloudflare.com") foi incluída. Com esse comando em vigor, os bots bons não acessarão https://www.cloudflare.com/learning/bots/what-is-a-bot/, e a página não será exibida nos resultados dos mecanismos de pesquisa.

Bloquear um diretório

Às vezes é mais eficiente bloquear várias páginas ao mesmo tempo, em vez de listar todas elas individualmente. Se todas elas estiverem na mesma seção do site, um arquivo robots.txt pode simplesmente bloquear o diretório que as contém.

Um exemplo do mencionado cima é:

Disallow: /__mesa/

Isso significa que todas as páginas contidas no diretório __mesa não devem ser rastreadas.

Permitir acesso total

Esse comando teria a seguinte aparência:

Disallow:

Isso diz aos bots que eles podem navegar por todo o site, porque não há nada que não seja autorizado.

Ocultar todo o site para os bots

Disallow: /

O "/" aqui representa a "raiz" na hierarquia de um site, ou a página a partir da qual todas as outras páginas se ramificam e, portanto, inclui a página inicial e todas as páginas vinculadas a ela. Com este comando, os mecanismo de pesquisa não podem rastrear o site de forma alguma.

Em outras palavras, uma única barra pode eliminar um site inteiro da internet pesquisável!

Que outros comandos fazem parte do Protocolo de Exclusão de Robôs?

Allow: Como seria de se esperar, o comando "Allow" diz aos bots que eles têm permissão para acessar uma determinada página web ou diretório. Esse comando torna possível permitir que os bots acessem uma determinada página web, ao mesmo tempo em que não permite o acesso ao restante das páginas web no arquivo. Nem todos os mecanismos de pesquisa reconhecem este comando.

Crawl-delay: O comando "crawl-delay" destina-se a impedir que os bots do tipo spider dos mecanismos de pesquisa sobrecarreguem um servidor. Ele permite que os administradores especifiquem quanto tempo o bot deve esperar entre cada solicitação, em milissegundos. Aqui está um exemplo de um comando "Crawl-delay" para uma espera de 8 milissegundos:

Crawl-delay: 8

O Google não reconhece esse comando, embora outros mecanismos de pesquisa reconheçam. Para o Google, os administradores podem alterar a frequência de rastreamento de seu site no Google Search Console.

O que é o protocolo Sitemaps? Por que ele está incluído no robots.txt?

O protocolo Sitemaps ajuda os bots a saberem o que incluir no seu rastreamento de um site.

Um sitemap é um arquivo XML que se parece com:

É uma lista legível por máquina de todas as páginas de um site. Por meio do protocolo Sitemaps, links para esses sites podem ser incluídos no arquivo robots.txt. O formato é: "Sitemaps:" seguido do endereço web do arquivo XML. É possível ver vários exemplos no arquivo Cloudflare robots.txt acima.

Embora o protocolo Sitemaps ajude a garantir que os bots web spider não ignorem nada ao rastrear um site: os bots continuarão a seguir seu típico processo de rastreamento. O Sitemaps não força os bots do tipo crawler a priorizar as páginas web de forma diferente.

Como o robots.txt se relaciona com o gerenciamento de bots?

O gerenciamento de bots é essencial para manter um site ou aplicativo em funcionamento, pois mesmo uma atividade de bots bons pode sobrecarregar um servidor de origem, retardar ou derrubar uma propriedade da web. Um arquivo robots.txt bem construído mantém um site otimizado para a SEO e mantém a atividade dos bots bons sob controle.

No entanto, um arquivo robots.txt não fará muito para gerenciar o tráfego de bots maliciosos. Uma solução de gerenciamento de robôs como o Cloudflare Bot Management ou o Super Bot Fight Mode pode ajudar a conter a atividade de bots maliciosos sem afetar bots essenciais como os web crawlers.

Easter eggs (ovos de páscoa) do Robots.txt

Ocasionalmente, um arquivo robots.txt contém Easter eggs, mensagens bem humoradas que os desenvolvedores incluíram porque sabem que esses arquivos raramente são vistos pelos usuários. Por exemplo, o arquivo robots.txt do YouTube diz "Criado num futuro distante (no ano 2000) após a revolta robótica de meados dos anos 90 que dizimou todos os seres humanos." O arquivo robots.txt da Cloudflare pede, "Caro robô, seja gentil".


#    .__________________________.
#    | .___________________. |==|
#    | | ................. | |  |
#    | | ::[ Caro robô ]: | |  |
#    | | ::::[ seja gentil ]:: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | | ,|
#    | !___________________! |(c|
#    !_______________________!__!
#   /                            \
#  /  [][][][][][][][][][][][][]  \
# /  [][][][][][][][][][][][][][]  \
#(  [][][][][____________][][][][]  )
# \ ------------------------------ /
#  \______________________________/

O Google também tem um arquivo "humans.txt" em: https://www.google.com/humans.txt