Ejecuto un rastreador web bastante grande. Nos esforzamos mucho para operar el rastreador dentro de los estándares aceptados de la comunidad, y eso incluye respetar el archivo robots.txt. Recibimos muy pocas quejas sobre el rastreador, pero cuando lo hacemos, la mayoría son sobre nuestro manejo de robots.txt. Muy a menudo, el Webmaster cometió un error en su robots.txt y amablemente señalamos el error. Pero periódicamente nos encontramos con áreas grises que implican el manejo de Allowy Disallow.
La página de robots.txt no cubre Allow. He visto otras páginas, algunas de las cuales dicen que los rastreadores usan una regla de "primera coincidencia", y otras que no especifican. Eso lleva a cierta confusión. Por ejemplo, la página de Google sobre robots.txt solía tener este ejemplo:
User-agent: Googlebot
Disallow: /folder1/
Allow: /folder1/myfile.html
Obviamente, una regla de "primera coincidencia" aquí no funcionaría porque el rastreador vería Disallowy desaparecería, nunca rastreando el archivo que estaba específicamente permitido.
Estamos en claro si ignoramos todas las Allowlíneas, pero entonces podríamos no rastrear algo que se nos permite rastrear. Echaremos de menos las cosas.
Hemos tenido un gran éxito comprobando Allowprimero y luego comprobando Disallow, ya que la idea era que Allowfuera más específica Disallow. Esto se debe a que, de manera predeterminada (es decir, en ausencia de instrucciones que indiquen lo contrario), se permite todo acceso. Pero luego nos encontramos con algo como esto:
User-agent: *
Disallow: /norobots/
Allow: /
La intención aquí es obvia, pero eso Allow: /hará que un bot que compruebe Allowprimero piense que puede rastrear cualquier cosa en el sitio.
Incluso eso se puede solucionar en este caso. Podemos comparar la coincidencia Allowcon la coincidencia Disallowy determinar que no podemos rastrear nada en / norobots /. Pero eso se rompe ante los comodines:
User-agent: *
Disallow: /norobots/
Allow: /*.html$
La pregunta, entonces, ¿se le permite al robot gatear /norobots/index.html?
La regla de "primer emparejamiento" elimina toda ambigüedad, pero a menudo veo sitios que muestran algo como el antiguo ejemplo de Google, poniendo el más específico Allow después del Disallow. Esa sintaxis requiere más procesamiento por parte del bot y genera ambigüedades que no se pueden resolver.
Mi pregunta, entonces, es ¿cuál es la forma correcta de hacer las cosas? ¿Qué esperan los webmasters de un bot con buen comportamiento cuando se trata del manejo de robots.txt?