Eu executo um rastreador da Web em larga escala. Nós tentamos muito operar o rastreador dentro dos padrões da comunidade aceitos, e isso inclui o respeito ao robots.txt. Recebemos muito poucas reclamações sobre o rastreador, mas quando fazemos a maioria, tratamos do tratamento do robots.txt. Na maioria das vezes, o Webmaster do site cometeu um erro no seu robots.txt e destacamos o erro. Periodicamente, porém, encontramos áreas cinzentas que envolvem o manuseio de Allow
e Disallow
.
A página robots.txt não cobre Allow
. Vi outras páginas, algumas das quais dizem que os rastreadores usam uma regra de "primeira correspondência" e outras que não especificam. Isso leva a alguma confusão. Por exemplo, a página do Google sobre robots.txt costumava ter este exemplo:
User-agent: Googlebot
Disallow: /folder1/
Allow: /folder1/myfile.html
Obviamente, uma regra de "primeira correspondência" aqui não funcionaria porque o rastreador veria Disallow
e desapareceria, nunca rastreando o arquivo que era especificamente permitido.
Nós estamos livres se ignorarmos todas as Allow
linhas, mas podemos não rastrear algo que possamos rastrear. Sentiremos falta das coisas.
Tivemos um grande sucesso verificando Allow
primeiro e depois verificando Disallow
, a ideia Allow
pretendia ser mais específica do que Disallow
. Isso ocorre porque, por padrão (ou seja, na ausência de instruções em contrário), todo o acesso é permitido. Mas então nos deparamos com algo assim:
User-agent: *
Disallow: /norobots/
Allow: /
A intenção aqui é óbvia, mas isso Allow: /
fará com que um bot que verifique Allow
primeiro pense que pode rastrear qualquer coisa no site.
Mesmo isso pode ser contornado neste caso. Podemos comparar a correspondência Allow
com a correspondência Disallow
e determinar que não temos permissão para rastrear nada em / norobots /. Mas isso se decompõe diante dos curingas:
User-agent: *
Disallow: /norobots/
Allow: /*.html$
A questão, então, é que o bot pode rastrear /norobots/index.html
?
A regra "primeira correspondência" elimina toda ambiguidade, mas muitas vezes vejo sites que mostram algo como o antigo exemplo do Google, colocando o mais específico Allow
depois do Disallow
. Essa sintaxe requer mais processamento do bot e leva a ambiguidades que não podem ser resolvidas.
Minha pergunta, então, é qual é o caminho certo para fazer as coisas? O que os Webmasters esperam de um bot bem-comportado quando se trata de manipulação do robots.txt?