robots.txt – Restrições aos buscadores

Por quê?

Muitas vezes precisamos “esconder” determinados diretórios, arquivos e até mesmo sites inteiros dos gulosos robôs de busca, também conhecidos como robots e webcrawlers. Com um simples arquivo texto chamado robots.txt, podemos fazer isso!

Esse arquivo deve ser salvo no diretório ROOT do seu servidor web com o nome de robots.txt de forma que possa ser acessível a todos como esse exemplo:

http://www.seusite.com.br/robots.txt

O que são Robot’s?

Robot (ou robô) é um programa de computador que percorre automaticamente as páginas da Internet em busca de documentos, a fim de indexá-los, validá-los ou monitorar alterações de conteúdo.
Hoje em dia, alguns robôs estão tão avançados que podem aceitar um sitemap e até preencher um formulário para ver a saída no navegador, como é o caso do GoogleBot, motor de busca do Google.
O arquivo robots.txt foi proposto como um padrão para esses mecanismos, onde nós, desenvolvedores podemos informar diretórios e arquivos que possam ou não ser indexados por eles. Não podemos confundir com possibilidade de acesso, esse arquivo, simplesmente faz como que o conteúdo não seja indexado. Para proibir acesso, utilizamos as permissões de arquivos e/ou o arquivo .htaccess.

O arquivo robots.txt

Existem alguns sites que geram esse arquivo conforme o preenchimento de um formulário, mas vou explicar aqui como você mesmo pode criar o seu.

Basicamente ele é dividido em três partes:

  1. Definição dos motores
  2. Permissões
  3. Sitemap (somente para Yahoo, Google e MSN)
Você pode criar esse arquivo em qualquer editor de texto, como o NOTEPAD ou VI por exemplo.
1. Definições de motores
É possível setar diferentes permissões para motores de busca distintos, por exemplo, deixar o motor do Yahoo ver o diretório “produtos” mas o Google não. Essas definições são feitas com a diretiva:
User-agent

Possíveis valores para User-agent, são:

  • Google: User-agent: Googlebot
  • Yahoo: User-agent: Slurp
  • MSN: User-agent: msnbot
  • Todos os mecanismos: User-agent: *

Seguindo nosso exemplo, nosso robots.txt ficaria da seguinte forma:

User-agent:Slurp
Disallow: /
Allow: /produtos

User-agent:Googlebot
Allow: /
Disallow: /produtos

2. Permissões

As permissões são facilmente definidas pelas diretivas Allow e Disallow, para permitir e negar, respectivamente os diretórios ou arquivos sequentes.

User-agent:*
Allow:/
Disallow: /admin
Disallow: /fotos
Allow: /produtos
Allow: /artigos

O Exemplo acima utiliza o caractere “/” para definir todo o site e nega a indexação dos diretórios admin e fotos, liberando os diretórios produtos e artigos.

Assim como em expressões regulares, temos os caractéres “*” (asterísco) e “$” (sifrão), que indicam,  “qualquer coisa” e “terminado com” respectivamente, alguns exemplos abaixo:

User-agent:*
Disallow:produtos/*.png$
Allow:produtos/
Disallow:admin/*.js
Disallow:fotos/*?*cat=cordas

O Googlebot, preenche os formulários contidos na página para verificar a resposta obtida. Para bloquearmos esse tipo de ação, caso estejamos utilizando o método GET, podemos fazer da seguinte forma.

</pre>
<form action="search.php?s=" method="get">...</form>
<pre>

Nesse caso precisamos negar a indexação de “search.php?s” para isso acrescentaremos a seguinte linha na seção do googlebot no nosso robots.txt

User-agent: Googlebot
Disallow: /search.php?s=*

Quando especificar mais de um motor ele ignora o resto e passa a utilizar somente as especificações daquele motor, isto é, NÃO HÁ HERANÇA!

Meta-tag’s e links

Também é possível especificar uma META-TAG para fazer a proibição diretamente na página:

<meta name="robots" content="noindex,nofollow">
<a href="foo.php" rel="nofollow">Foo</a>

O “parâmetro” noindex, diz ao bot que o site não deve ser indexado e o parâmetro nofollow, que o site no link não deve ser seguido.
Nofollow é muito útil em seções de comentários, onde os spans abusam da nossa paciência. Essa forma não é eficaz para acabar com essa praga, mas pelo menos o eles não ganham pontos com links no Googlebot por exemplo.

Links para testar

É possível testar se os caminhos especificados no robots.txt realmente existem. Fora a identificação de prováveis erros de sintaxe em arquivos muito grandes e gerados manualmente, não vejo muita utilidade nesses caras. Para testar utilize o próprio arquivo robots do Google, até nele eles apontam erros, principalmente relacionados ao ‘*’.

http://www.searchenginepromotionhelp.com/m/robots-text-tester/robots-checker.php
http://www.frobee.com/robots-txt-check

Exemplos

Podemos visualizar alguns bons exemplos nos links abaixo:

http://www.google.com.br/robots.txt
http://www.facebook.com.br/robots.txt (leia os direitos)
http://www.marketingdebusca.com.br/robots.txt
http://www.mestreseo.com.br/robots.txt (bem humorado hehe)

Segundo o site BrPoint, o seguinte robots.txt é ideal para quem utiliza WordPress.

User-agent: *
# remova os diretorios
Disallow: /cgi-bin/
Disallow: /tag/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /trackback/
Disallow: /feed/
Disallow: /tags/
User-agent: Googlebot
# remover scrips css e afins
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.gz$
Disallow: /*.wmv$
Disallow: /*.cgi$
Disallow: /*.xhtml$
# qualquer endereco que contenha ?
Disallow: /*?*
# permitir o adsense em qualquer url
User-agent: Mediapartners-Google*
Disallow:
Allow: /*
#Sitemap
Sitemap: http://www.brpoint.net/sitemap.xml

Geradores de robots.txt

Fontes: