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 Allow
y 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 Disallow
y desaparecería, nunca rastreando el archivo que estaba específicamente permitido.
Estamos en claro si ignoramos todas las Allow
líneas, pero entonces podríamos no rastrear algo que se nos permite rastrear. Echaremos de menos las cosas.
Hemos tenido un gran éxito comprobando Allow
primero y luego comprobando Disallow
, ya que la idea era que Allow
fuera 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 Allow
primero piense que puede rastrear cualquier cosa en el sitio.
Incluso eso se puede solucionar en este caso. Podemos comparar la coincidencia Allow
con la coincidencia Disallow
y 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?
fuente
Respuestas:
Una nota muy importante: la declaración Permitir debe aparecer antes que la declaración Disallow , sin importar cuán específicas sean sus declaraciones. Entonces, en su tercer ejemplo, no, los robots no se arrastrarán
/norobots/index.html
.Generalmente, como regla personal, pongo primero las declaraciones de permiso y luego enumero las páginas y carpetas no permitidas.
fuente
Aquí está mi opinión sobre lo que veo en esos tres ejemplos.
Ejemplo 1
Ignoraría todo el
/folder1/
directorio excepto elmyfile.html
archivo. Dado que lo permiten explícitamente, supongo que fue simplemente más fácil bloquear todo el directorio y permitir explícitamente ese archivo en lugar de enumerar todos los archivos que querían haber bloqueado. Si ese directorio contiene muchos archivos y subdirectorios, ese archivo robots.txt podría volverse difícil de manejar rápidamente.Ejemplo 2
Supongo que el
/norobots/
directorio está fuera de los límites y todo lo demás está disponible para ser rastreado. Leí esto como "rastrear todo excepto el directorio / norobots /".Ejemplo 3
Similar al ejemplo 2, supondría que el
/norobots/
directorio está fuera de los límites y que todos los.html
archivos que no están en ese directorio están disponibles para ser rastreados. Leí esto como "rastrear todos los archivos .html pero no rastrear ningún contenido en el directorio / norobots /".Esperemos que el agente de usuario de su bot contenga una URL donde puedan encontrar más información sobre sus hábitos de rastreo y realizar solicitudes de eliminación o darle comentarios sobre cómo quieren que se interprete su robots.txt.
fuente