Robots TXT: Visão Geral do Básico ao ComplexoRuy Miranda (Esta página será atualizada permanentemente porque o arquivo robots.txt está em evolução). Os arquivos chamados robots.txt desempenham um papel importante na otimização de sites e até mesmo na prática diária. Por este motivo vou apresentar tudo que o envolve de uma maneira tal que permita aos que nada sabem sobre o assunto ter um entendimento básico para o uso no dia-a-dia. Para os que já o conhecem, vou apresentar as discussões mais complexas.
Informações Básicas O que é robots.txt – Trata-se de um arquivo que, apesar da imponência do nome, não é robot e, na maioria das vezes, é de uma simplicidade impressionante. Na essência, esse arquivo conduz algumas instruções para os robots que rastreiam as páginas da internet, daí o seu nome. Essas instruções são escritas num bloco de notas, daí a terminação txt.. As instruções, ou regras, também chamadas de protocolo, visam, basicamente, impedir que os robots rastreiem certos arquivos e mandem o conteúdo deles para bancos de dados. Para desempenhar este papel, o arquivo robotx.txt tem de ser parte do site, ficar na raiz e tem de ser visitado pelo robot que chega ao site antes da visita aos outros arquivos ou páginas. Ou seja, pelo arquivo robots.txt o robot do mecanimso de busca fica sabendo que páginas ele pode ou não rastrear. Como são dadas as instruções aos robots via Robots.txt – As instruções são uma forma de dizer para um robot que chega ao site: não ponha seu nariz aqui. Ou então: aqui você pode xeretar. Trata-se, portanto, de regras de permissão ou não pemissão. Suponha, como exemplo, que você tem um arquivo chamado xyz.html e que você não quer que ele vá parar nos bancos de dados dos mecanismos de busca. Então você escreve no tal bloco de notas: Disallow: /xyz.html O "Disallow" significa não permitido. Neste caso você está dizendo, via bloco denotas chamado robots.txt, que não permite que os robots acessem o arquivo xyz.html. Para a regra funcionar, ela tem de seguir um padrão pré-estabelecido: o Disallow começa com maiúscula e depois dos dois pontos há apenas um espaço até a barra (/). Suponhamos agora um arquivo que chamaremos abc.html e que se acha numa pasta (também chamada de diretório) à qual daremos o nome de pastaA. Digamos que você não quer que os robots xeretem esse arquivo. Então você escreverá a instrução no robots.txt assim: Disallow: /pastaA/abc.html Neste caso você está bloqueando exclusivamente o acesso ao arquivo abc.html que se acha na pastaA. Os outros arquivos da pastaA serão visitados e rastreados. No caso anterior, como o arquivo xyz.html não é precedido de nada, isto indica que ele está na mesma linha da sua página inicial, ou seja, na raiz do site. É bem simples a regra, não é? Bloqueio de URLs – Na essência, e por padrão pré-estabelecido, com as instruções acima você está bloqueando, nos dois exemplos, o acesso a duas URLs, quais sejam: http://www.seudominio.com.br/xyz.html http://www.seudominio.com.br/pastaA/abc.html Observe, contudo, que a URL que entra no arquivo robots.txt não é a URL absoluta, mas a relativa. Permissões seguidas – Você pode dar várias instruções de bloqueios seguidos, um depois do outro. Os dois exemplos acima poderiam aparecer assim no robots.txt: Disallow: /xyz.html Não pode haver espaço entre um Disallow e outro. Pode haver tantas não-permissões quantas forem necessárias. Qualquer robot escaneia o arquivo robots.txt em milésimos de segundo e fica sabendo onde pode entrar e onde não pode. Nome dos robots que chegam para xeretar – Os robots que chegam para ver alguma coisa no seu site são chamado de User-agent. De novo mais um padrão da regra: começa com maiúscula e o resto é em letras minúsculas, e ainda exite um traço ligando as duas palavras. Existe um número incalculável de robots rodando a internet atrás de alguma coisa. De alguns, nós sabemos os nomes, mas da maioria, não. Por esse motivo criou-se mais uma regra para orientar os robots que chegam. Digamos que existe um robot chamado CeuAzul e que você não quer que ele acesse os seu arquivo xyz.html. Então você vai escrever no bloco de notas, digo, robots.txt: User-Agent: CeuAzul O seu arquivo robts.txt está completo com estas duas linhas, e apto a ser mandado para o servidor. Ao mesmo tempo, a ausência de instruções para qualquer outro robot indica que a porteira está aberta para eles. Digamos, agora, que você não quer que nenhum robot acesse seu arquivo xyz. Para evitar repetir a regra indefinidamente, você pode sintetizar todos os nomes por um asterisco (*). Convencionou-se que o * é sinônimo de qualquer robot. Então seu robots.txt ficará asim: User-agent: * Porteira aberta – Você pode ter motivos para não bloquear o acesso de qualquer robot. Neste caso você não escreve nada depois do Disallow. Este exemplo que acaba de ser dado ficaria assim: User-agent: * O asterisco no lugar do nome do robot e a ausência de coisas escritas depois do Disallow indicam que a porteira está aberta. Qualquer robot pode chegar e visitar todas as páginas que quiser. Dispensa do arquivo robots.txt – Se você não faz restrição alguma a qualquer robot, como no exemplo acima, então você nem precisa colocar o arquivo robotx.txt no seu site. Por convenção, a ausência do robots.txt indica que quealquer robot pode entrar e indexar o que quiser. Se o seu site não tem o arquivo e você não se importa com essa questão de permissões, então ele pode continuar sem ele. Para o Google, seu site ficará mais "arredondado" se você usar o arquivo robots.txt sempre, até mesmo para informar que a entrada é franca a todos. Porteira totalmente fechada – Se, ao contrário, você não quer que robot algum entre no seu site e que todo o conteúdo dele fique privativo seu, então você escreverá assim: User-agent: * Porteira fechada para alguns e aberta para outros – Se você deseja que alguns robots cessem o acesso ao seu site e outros não, então você escreverá para os robots hipoteticamente chamados de ceuazul e ceunublado, o seguinte: User-agent: * User-agent: ceuazul User-agent: ceunublado Neste exemplo, a porteira está aberta para todos os robots, menos ceuazul e ceunublado. Porteira fechada seletivamente – Você pode selecionar qual robot pode entrar e o que ele pode e o que não pode rastrear. Vejamos uns exemplos. User-agent: ceuazul User-agent: ceunublado No primeiro caso você permitiu que o robot chamado ceuazul rastreasse todo o seu site, exceto o arquivo xyz.html No segundo caso, você permitiu que o robot chamado ceunublado rastreasse todo o seu site, exceto o arquivo mno.html, contido na subpastaC, da pastaB. Como você não fez referência aos outros robots, fica subentendido que você franqueou a antrada a todos os demais robots. Porteira aberta para uma pasta ou diretório – Você pode bloquear um diretório inteiro pelo robots.txt, da seguinte maneira: User-agent: * Neste caso, a ausência de barra no final indica que o bloqueio se estende a todos os arquivos contidos na pastaA. Pois a URL http://www.seudominio.com.br/pastaA está incompleta e pode ser qualquer coisa contido na pasta A. Neste caso do robots.txt, a "qualquer coisa" é tudo. Se você colocar, digamos, .User-agent: * estará bloqueando o acesso apenas à página index da pastaA. A URL http://www.seudominio.com.br/pastaA/ é uma forma de grafar a página index ou default da pastaA, tal como você grafa sua página incial (index ou default) assim: http://www.seudominio.com.br/. Repetição de regra – Repetir uma regra não reforça seu efeito. Por exemplo, se você escrever User-agent: * onde repetiu o arquivo xyz.html, não vai acontecer nada de diferente. O arquivo não será acessado do mesmo jeito que se a regra tivesse sido colocada apenaa uma vez. Tamanho do arquivo robts.txt – Não há, propriamente, limite ao tamanho do arquivo ou número de regras lançadas nele. Você pode ter uma idéia disto vendo esse arquivo no Google: http://www.google.com.br/robots.txt. O Yahoo e MSN ocultam os seus arquivos. Pode também ver o deste site: http://www.otimizacao-sites-busca.com/robots.txt. Informações Avançadas O arquivo robots.txt comporta algumas complexidades e gera algumas dúvidas. O motivo central é que ele não é um protocolo acabado; na verdade está em evolução. Outro motivo é que não há uma instituição ou instância que estude seu desempenho ou agregue estudos feitos por outros como acontece com o HTML. Não havendo uma instituição responsável ou que centralize os estudos, cada qual faz o que melhor lhe parece ou que melhor atende suas necessidades. Entre esses que fazem muitos estudos sobre os robots.txt estão os grandes mecanimsos de busca, como Google, Yahoo, MSN, porque esse protocolo é de grande utilidade para eles. Veja, por exemplo, a possiblidade dos usuários restringirem a indexação de páginas de pouco conteúdo e, com isso, aliviarem os seus bancos de dados. Sem os robots txt isso fica mais difícil – vai depender, por exemplo, da criação e submissão de mapas em xml e txt, os quais são muito mais complexos. Uma vez que não há uma instância centralizadora, os protocolos ficam como que dispersos. Não há como, por exemplo, escrever sobre o assunto em capítulos definidos. Em consequência, os protocolos são expostos na forma de sub-títulos. É o que estou fazendo (e que todo mundo faz) e que continuarei a fazer aqui. Instruções diferentes para diferentes robots – Ás vezes você precisa dar instruções diferentes para diferentes robots. Por exemplo, o Google indexa todos os URLs que encontra, mas o Yahoo não. O Yahoo indexa apenas uma parte das URLs que encontra – o motivo é, em primeiro lugar, por economia, e em segundo lugar, por pragmatismo - para quê indexar páginas que não têm valor na busca? Se você olhar com cuidado o seu site, você vai ver que o Yahoo tem razão em parte. Para que entupir o banco de dados com páginas que têm apenas endereço de contato (digamos que o arquivo seja contato.html) ou um formulário sintético (digamos que o arquivo seja formulario.html)? Mas se você quiser contribuir para que o banco de dados do Google não fique sobrecarregado com esses arquivos, deverá escrever no robots.txt: User-agent: Googlebot O Yahoo tem razão em parte na sua premissa. A outra parte que não lhe assiste razão é que, ao restringir a indexação, deixa de indexar páginas importantes. O que bloquear – Há muitas coisas que devemos bloquear porque elas de nada vão ajudar nas buscas e, depedendendo do caso, podem atrapalhar no posicionamento. Os exemplos acima, de contato e formulário, não vão ajudar em nada seu posicionamento, e nem o seu site será procurado por essas palavras. Ademais, as suas páginas, juntamente com outras, podem prejudicá-lo. Digamos que, além delas, que por natureza apresentam escassez de conteúdos, você tem várias pastas em que o conteúdo dos arquivos são fotos desprovidas de descrições significativas. Você terá, no seu site, todas essas páginas com baixíssima quantidade de conteúdo. Sabemos que, das imagens, os robots só enviam a descrição que fazemos de cada uma delas. A situação resultante, de páginas com pouco conteúdo, possivelmente levará à perdas de uns pontinhos na definição da posição da sua palavra-chave principal. Razão? No meu entender, qualquer coisa que leve os programas dos mecanimsos de busca a perder tempo para definir temas, é passível de perda de pontos ou posições. Esta é uma opinião pessoal minha, baseada no bom senso e em paralelos. Por exemplo, se seu servidor demora a entregar o conteúdo pedido pelo Googlebot, haverá perda de pontos. Convém lembrar aqui que em novembro de 2008 um dos engenheiros do Google disse que a posição de uma página é definida pelo algorítmo, o qual se encontra com 200 variáveis. Como é impossível saber quais são todas elas, o bom senso deve alcançar muitas.
Além da questão conteúdo, há muitas razões para se bloquear uma pasta, um ou mais diretórios e até mesmo um site inteiro. Exclusão de URLs indexadas via robots.txt – Uma questão que para mim ainda é polêmica, é a eficácia dos arquivos robots.txt como instrumento de exclusão de URLs indexadas. Salvo a exclusão de um site inteiro, a exclusão parcial, por esta via, é limitada. E há razões para ser assim. Disallow: /xyz.html Digamos que um site está indexado e você resolve excluir via robots.txt um dado arquivo, tal como o xyz.html. Você coloca a instrução de não permissão. O robot chega, não vai ao arquivo xyz.html, e só vai a outros programados para aquela visita. Dentro da programação criada nos banco de dados, o robot volta para visitar o arquivo xyz.html um tempo depois, que pode ser de meses, já que o link para esse arquivo existe ali. Ele de novo se depara com o impedimento e faz as outras tarefas agendadas para o site. Passa mais um tempo e o fato se repete. Depois disso acontecer um número de vezes que nós, mortais, desconhecemos, o programa do banco de dados daria o arquivo como excluído e o retiraria de seu índice. O bom senso indica que as coisas não ocorrem assim porque o robot encontra um protocolo de permissão de acesso no arquivo robots.txt e não um protocolo de exclusão. A dedução lógica é que a exclusão por esta via é pouco provável e, se ocorrer, é muito demorada e incerta. Enquanto os programas do banco de dados não se "convencem" de que aquele arquivo está desativado, eles poderão listar o arquivo entre os demais arquivos do site quando a barreira for retirada. Se existe algum link apontando para o arquivo xyz.html é improvável a exclusão seja em que tempo for. A exclusão de um site inteiro, por esta via, segue os mesmos passos, mas provavelmente é mais rápida, posto que nenhuma tarefa agendada para as visitas se concretiza. Entretanto, o bom senso indica que isto também precisa esgotar um tempo, mesmo porque o sinal de bloqueio do site inteiro pode estar ali por equívoco. É possível que o bloqueio de um site inteiro "acenda uma luz amarela" no banco de dados e a programação de visitas ao site seja modificada automaticamente de modo a ocorrer em tempo menor do que o habitual entre as visitas, para confirmar o bloqueio total. A tudo isso soma-se o fato de que a retirada de não permissão no arquivo pode trazer de volta, quase que imediatamente, o que fora bloqueado, mesmo depois de meses. Entretanto, se o site ou página bloqueados são novos e ainda não foram indexados, o bloqueio funciona de forma definitiva. O motivo é que eles não chegam a ser indexados. E nunca o serão se não houver algum link que conduza os robots a eles. De qualquer forma, quando se trata de exclusão de arquivos ou pastas, eu prefiro não usar apena o robots.txt. Outras medidas, como instrução para não indexar a página nas meta tags robots ou a exclusão via área de webmasters, são mais eficientes e mais rápidas do quando a página foi excluída do servidor ou bloqueada no robots.txt, e permitem um acompanhamento online sobre a forma como o mecanimso de busca está lidando com a recomendação. Para excluir um site inteiro acho melhor muita cautela – de preferência ir a áreas específicas para tal fim, no mecanismo de busca, e fazer o pedido de exclusão. Robots.txt e banco de dados – Fica evienciado que a interação entre esse arquivo e os bancos de dados tem algumas particularidades e sutilezas. Primeiro, ele pode impedir a indexação de conteúdo novo. Segundo, ele não exclui nenhum conteúdo do banco de dados (pelo menos a curto prazo). Terceiro, ele exclui o acesso dos robots aos endereços especificados e, com isso, elimina temporariamente a exibição dos mesmos nas listas de URLs do site. Quarto, a suspensão do bloqueio traz de volta a exibição dos URLs especificados. Bloqueio temporário deliberado – Esta possibilidade de interagir de forma simples com o banco de dados é muito conveniente em certas situações. Por exemplo, se você resolve fazer mudanças numa página ou pasta (diretório) que poderão levar mais tempo, pode ser conveniente efetuar o bloqueio deles no período do trabalho. Quando o trabalho estiver terminado, levanta-se o bloqueio. Uso da instrução Allow – Teoricamente a instrução Allow (Permitir) poderia substituir Disallow, com sinais trocados. Por exemplo, ao invés de User-agent: * User-agent: ceuazul User-agent: ceunublado poderíamos colocar: User-agent: * User-agent: ceuazul User-agent: ceunublado Entretanto, alguns robots não reconhecem a regra grafada deste jeito. É preferível usar sempre Disallow, e Allow em situações especiais como veremos. Allow para uma sub-pasta ou arquivo de uma pasta bloqueada – Os grandes mecanismos de busca, especialmente o Google, usam o Allow para colocar permissões num conjunto de Não Permissões. Neste caso o Allow precede o Disallow. Digamos que você fez os seguintes bloqueios: Disallow: /pastaADigamos, ainda, que entre os muitos arquivos contidos na pastaA, existe um que você deseja dar permissão; vamos chamar este arquivo de pagina1.html. Então o protocolo no robots.txt ficará assim: Disallow: /xyz.html Essas informações sobre o uso de Allow devem ser levadas em consideração pelo leitor com cautela, posto que o uso do Allow é um dos itens incluídos na evolução do arquivo robots.txt. Pode ser que, mais adiante, os mecanismos de busca cheguem a um acordo e unifiquem seu uso, com regras claramente definidas. Se vier a usar o Allow, não deixe de checar na área de webmasters se está funcionando corretamente. Se você observar bem, o Allow é uma exceção que se abre a bloqueios impostos aos robots. Na prática você pode abrir exceção de um a n arquivos de um site ou diretório bloqueados. Variações em Allow Disallow – A combinação Allow Disallow comporta algumas combinações interessantes e que me levam a concluir que sua importância conduzirá à sua implantação definitiva nos robots txt. Vamos considerar um exemplo para ilustrar essa flexilização. Digamos que você tem todos os arquivos de um site na raiz. Ele pode ser estático ou dinâmico. Vamos exemplificar com um dinâmico porque é um pouco mais complexo. Digamos também que você vai mudar todo o site para um diretório que chamaremos pastaA. O seu robot.txt poderá ter a seguinte disposição, sem prejuizo de outras permissões ou bloqueios dados antes ou depois do exemplo. Você copia a pasta include e a cola na pasta A. Allow: /pastaA/inc/head.php Observe de baixo para cima: Na prática a coisa funciona mais ou menos assim: não importa o que você está bloqueando; o que estiver contido em Allow será acessado, esteja onde estiver. Inversão Allow, Disallow – Pode ser conveniente para você inverter a instrução allow, Disallow. Por exemplo, Disallow: /arquivox.html Neste caso você está dizendo que o robot tem permissão para acessar tudo, exceto os arquivos x, y, z. À primeirra vista isso parece uma forma invertida de fazer as coisas, e é mesmo, mas em certas circunstâncias tem sua utilidade. Allow, Disallow, Páginas Dinâmicas – A articulação de Permissão (Allow) e Não Permissão (Disallow) é particularmente útil no caso de
páginas dinâmicas, como em lojas, fóruns, livrarias, etc. Uma vez que não há separação em pastas, sub-pastas, sub-sub-pastas, a referência fica sendo a interrogação (?). Com o Disallow você bloqueia toda uma sequência definida pela interrogação e com o Allow você habilita uma parte da mesma sequência até certa altura.
Por exemplo, Neste caso, o robot ceuazul está sendo informado pelo robots.txt que não lhe é permitido indexar os URLs que apresentam interrogação. Ao mesmo tempo está abrindo exceção para que esse robot indexe as URLs até a primeira interrogação. A primeira interrogação pode estar separando uma categoria (equivalente a uma pasta), de uma sub-categoria (equivalente a uma sub-pasta), e outra interrogação pode estar separando uma sub-categoria de um produto. Pela linha Disallow, não é permitido acesso a toda a sequência, mas pela linha Allow, que a precede, é permitido acesso até a primeira interrogação (o cifrão indica final, ou seja, pára quando encontrar a primeira interrogação). Este tipo de instrução é também muito útil em páginas dinãmicas em que o conteúdo se repete muito ou varia pouco, como em certas páginas administrativas de fóruns. Exclusão de quase todo o site - Em certas circunstâncias o site, seja estático ou dinâmico (amigável ou não), requer uma limpeza no index do Google. Se a situação é muito complexa, podemos pedir a exclusão de todas as URLs, exceto a home , podendo-se permitir a permanência de mais alguma ou algumas URLs. A instrução fica assim: User-agent: Googlebot Allow: home.html Neste caso ficará no index apenas a home. Ou ainda: User-agent: Googlebot Allow: /arquivon.html Neste caso ficarão apenas a home e o arquivo n. É interessante notar que nessa medida e em outras com alguma equivalência, o Google não exclui as páginas e as joga no lixo. Ele as retira do index onde são feitos os cálculos e as deixam de lado. Quando pedimos sua reinclusão, isso é quase imediato. Asterisco e Terminações – O asterisco no robots.txt pode representar qualquer coisa que vem depois de uma barra e, associado com certas terminações, não permite a indexação de certos tipos de arquivos. Exemplos: Disallow: /*.css$ Disallow: /*.gif$ Disallow: /*.jpg$ E assim por diante. Especificação dos robots – Aparentemente, na maioria dos casos não há necessidade de ser feita uma especificação dos robots, uma vez que as instruções são idênticas para todos. Ela só é justificável quando, por motivos muito particulares, você não quer ou acha dispensável inserir uma permissão ou não permissão para um dado mecanismo de busca. Embora o Google incentive a identificação do Googlebot, ele mesmo usa uma única instrução para todos os robots, como você pode ver ao acessar a página do robots.txt dele. Não permissão a arquivos indexados – Quando elaboramos o arquivo robots.txt, em geral o fazemos simultaneamente com a construção do site ou na otimização do mesmo. As instruções de bloqueio impedirão a indexação do que estiver bloqueado. Mas, e se o site estiver indexado? Vamos sintetizar essas situações. O arquivo robots.txt tem, portanto,algumas funções semelhantes ao meta robot e à exclusão de arquivos ou diretórios na área de webmasters do Google. Essas ferramentas podem ser usadas de forma complementar. Inconveniente do robots.txt – Uma ferramenta tão simples pode ter inconientes? Pode. Se você, digamos, por uma estratégia de marketing, não deseja que um dado arquivo ou diretório seja indexado e efetua o bloqueio pelo robots.txt, os seus concorrentes poderão saber disso acessando o robots.txt. Ruim, não é?
Robots.txt nas Ferramentas de Webmasters do Google - O arquivo robotstxt é tão importante que o Google reserva uma área nas suas
ferramentas de webmasters onde você pode checar o funcionamento do mesmo. Isso é particularmente importante se
você tem dúvida se uma ou mais URLs esão sendo bloqueadas. Na área de rastreamento existe uma guia chamada URLs bloqueadas onde o arquivo robotstxt é reproduzido e um campo onde você lança a URL que deseja pesquisar e imediatamente recebe a informação que procura.
Dezembro/2008 Artigos relacionados: |