Características de los robots de búsqueda

 

Indicando a los robots de búsqueda que documentos de nuestra web deben indexar

Los robots de búsqueda de WWW (también llamados wanderers o spiders) son los programas que buscan las páginas en el World Wide Web indexándolas para los buscadores.

En 1993 y 1994 estos robots entraron en servidores de WWW e indexaron páginas que no debian : documentos personales, documentos confidenciales, duplicación de archivos, información temporal... Estos incidentes hicieron ver la necesidad de establecer los mecanismos necesarios para que los servidores de WWW pudiesen indicar a los robots de búsqueda las piezas a las que les estaba permitido acceder.

El 30 de de junio de de 1994 (robots-request@nexor.co.uk) se llegó a un consenso estándar para trata esta necesidad, alcanzándose una solución operacional.

Lo que sigue no es un estándar oficial promovido por una organización oficial. No es tampoco una obligación que se tenga que cumplir, por lo tanto no es seguro que todos los robots lo sigan. Se tiene que considerar como una facilidad a lo hora de proteger aquellos documentos y archivos que queremos que no indexen los motores de búsqueda

Para hacer la exclusión se crea un archivo en el servidor que especifica a los robots de búsqueda a qué archivos no tienen acceso y se le llama robots.txt

El robots.txt es un documento sencillo de texto plano, no se debe escribir en HTML, ni incluir expresiones diferentes al estándar ya que los robots no las reconocerán. Un simple documento de texto redactado con el Bloc de Notas de Windows es lo correcto.

Debe estar alojado en la raíz del sitio, justo dónde alojamos la página index. http://www.dominio.com/robots.txt

El formato del archivo está constituido por líneas que indican los valores para dos campos únicos: User-agent y Disallow

Los motores de búsqueda mirarán en la raíz del domino llamando a ese fichero especial "robots.txt" (http://www.dominio.com/robots.txt). El archivo le dice al robot de búsqueda qué archivos puede indexar, a este sistema se le denomina The Robots Exclusion Standard. En caso de que no exista el fichero robot .txt el robot considerá que no hay ninguna exclusión y rastreará cualquier página del web site sin excepción.

User-agent.

El valor de este campo es el nombre del robot al que permitimos o no el acceso a determinado documento. Ejemplo:

User-agent: googlebot

Se puede también utilizar el carácter comodín * para especificar que se excluyen todos los robots. Ejemplo:

User-agent: *

Podemos comprobar los nombres de los User-agent que han visitado el dominio para saber si hay peticiones de ese buscador. La mayoría de los motores de búsqueda importantes tienen nombres cortos para sus spider. Incluiré una relación con sus características en el último capítulo de estas notas.

Si es necesario determinar una política de acceso para varios robots de búsqueda se incluirán tantas líneas cuantos robots necesitemos especificar. Nunca se agruparán en una sola línea. Ejemplo:

User-agent: googlebot
User-agent: lycos
User-agent: roverdog

Es necesario que exista al menos un registro en el documento para que sea correcto

Disallow:

Es la segunda parte del registro, especifica los documentos y/o directorios que no queremos que indexen los motores de búsqueda. La URL parcial que no debe ser visitada. Por ejemplo, la línea siguiente ordena que no se indexe el documento email.htm:

Disallow: email.htm

También se pueden especificar directorios. Ejemplo: Para bloquear el directorio cgi-bin de manera que todos sus documentos permanezcan sin indexar en el motor de búsqueda.

Disallow: /cgi-bin/

Un archivo totalmente vacío para Disallow es exactamente igual cómo si no estuviera presente, por lo menos debe exisitir una línea de negación Disallow para que el directorio sea correcto.

Una línea en blanco para Disallow indica que todos los archivos puden ser indexados, se escribiría así:

Disallow:

Si quisíeramos prohibir el acceso a todos los documentos "help" de nuestra web, tanto al http:www.dominio/cgi/help.htm como al http://www.dominio/help/index.html escribiríamos:

Disallow: /help

En cambio, si quisíeramos prohibir el acceso a cualquier documento y fichero incluido en la carpeta "help" http://www.dominio/help pero permitir el acceso al documento "help.htm" del fichero "cgi"
http://www.dominio/cgi/help.htm , escribiríamos:

Disallow: /help/

Espacio y comentarios en blanco

Cualquier línea en el robots.txt que comience por # se considera un comentario . El estándar permite comentarios al final de líneas directivas, pero es un estilo poco aconsejable, por ejemplo si escribimos:

Disallow: email.html # recopilación del formulario

Algún spider no lo interpretaría correctamente e intentaría ignorar el documento email.html # recopilación del formulario

Lo mejor es poner los comentarios en líneas independientes, por ejemplo:

# recopilación del formulario
Disallow: email.html

Un espacio en blanco al principio de una línea se permite pero no se recomienda por los mismos motivos, puede que sea mal interpretado por el spider.

Ejemplos

Para permitir que todos los robots visiten todos los archivos del sitio :

User-agent: *
Disallow:

Para prohibir que todos los spider indexen cualquier documento

User-agent: *
Disallow: /

Para evitar que todos los spider indexen nuestros directorios cgi-bin e images

User-agent: *
Disallow: /cgi-bin/
Disallow: /images/

Para prohibir al spider Roverdog, específicamente, que indexe cualquier archivo del sitio:

User-agent: Roverdog
Disallow: /

Para prohibir a googlebot que indexe el archivo cheese.htm:

User-agent: googlebot
Disallow: cheese.htm

Para indicar que ningún robot debe visitar cualquier URL que comience con "/cyberworld/map/" o "/tmp/", o "/foo.html"

User-agent: *
Disallow: /cyberworld/map/
# direccion virtual
Disallow: /tmp/
# pronto los eliminaré
Disallow: /foo.html

Para indicar que ningún robot debe visitar cualquier URL que comience con" /cyberworld/map/ ", a menos que el robot se llame " cybermapper ":

User-agent: *
Disallow: /cyberworld/map/
# direccion virtual
User-agent: cybermapper
Disallow:


Documentos inaccesibles a todos los robots

Se pueden indicar de dos maneras:

Enumerándolos

User-Agent: *
Disallow: /borrador.html
Disallow: /prueba.html

O incluyendo estos documentos en una carpeta llamada "norobots" y redactando el robots.txt así

User-Agent: *
Disallow: /norobots/

Los documentos quedarán inaccesibles si tomamos la precaución de asegurarnos que nuestro servidor no está generando un listado del directorio norobots. Sin embargo, configurar un archivo de este tipo no es una garantía de que los documentos no puedan ser alcanzados por atacantes. Y hay que tener claro que el robots.txt es una medida de exclusión para los robots de búsqueda, no una medida de seguridad.

Si los datos que contienen esos ficheros son sensibles: contraseñas de usarios, datos personales etc... lo más serio es usar además un sistema de autentificación o SSL que asegure la completa privacidad de los documentos

Un ejemplo real de archivo robots.text es este: [url]http://www.google.com/robots.txt [/url] :)

Errores al redactar el robots.txt

Uno de los errores más comunes es poner la sintaxis al revés:

Disallow: *
User-agent: scooter

Debe ser:

User-agent: scooter
Disallow: *

Otro error es hacer un rechazo múltiple en una línea poniendo en ella múltiples directorios como:

Disallow: /css/ /cgi-bin/ /images/

Porque la mayoría de los spider malinterpretarán esa línea . Algunos intentarán buscar el directorio /css//cgi-bin//images/ o tendrán en cuenta sólo un directorio olvidándose del resto.

La sintaxis correcta sería:

Disallow: /css/
Disallow: /cgi-bin/
Disallow: /images/

Línea Enders en DOS: Se tiene que editar el robots.txt en el modo de UNIX y y hacer upload siempre en ASCII. Muchos clientes del ftp harán la transformación a la línea enders de Unix automáticamente (seamlessly), pero otrosno .

Un error que el estándar permite son los comentarios al final de la línea:

Disallow: /cgi-bin/ #directorio privado

Tiempo atrás han existido motores que buscaban la línea entera considerando # parte del nombre del directorio. Ahora no se tiene noticia de que alguno se equivoque o no pero ¿ merece la pena arriesgarse en un error semejante por ahorrarnos una línea de código?

El estándar no trata específicamente los espacios de más en las líneas lo considera un mal estilo de escritura, pero tendríamos que preguntarnos una vez más si merece la pena arriesgarnos a ser malinterpretados por algo tan nímio.

En ocasiones el spide interpreta la página de error 404 y las páginas de redireccionamiento como un documento HTML válido . Lo más aconsejable es indicar en el archivo .txt o en los metas tags que este documento no tiene que indexarse

El estándar determina que solo el User-agent y el Disallow pueden ir con máyusculas, lo que sigue es incorrecto:

USER-AGENT: EXCITE
DISALLOW:

Otro error común es especificar cada archivo en un directorio como aquí:

Disallow: /AL/Alabama.html
Disallow: /AL/AR.html
Disallow: /Az/AZ.html
Disallow: /Az/bali.html
Disallow: /Az/bed-breakfast.html

Se tiene que especificar con la opción del directorio de esta manera:

Disallow: /AL
Disallow: /Az

La barra invertida indica al spider el límite del directorio.

No hay que poner nunca Allow sólo Disallow, se rechazar para no permitir. Esto es incorrecto:

User-agent: Excite
Disallow: /cgi/
allow: /imagen/

Esto es correcto:

User-agent: Excite
Disallow: /cgi
Disallow:

¿Qué hace un spider cuándo no hay barra invertida cómo aquí?

User-agent: Excite
Disallow: cgi

Pues que dejará de indexar cualquier extensión de archivos con el nombre cgi y cualquier directorio nombrado cgi.

Otro error es poner palabras clave en el directorio robots. txt o editarlo en formato HTML

Usar etiquetas meta para autorizar a los motores de búsqueda

Se está poniendo muy de moda utilizar las etiquetas META para decir a los spider si se acepta o no que indexen un documento. Es también útil cuando no se tiene acceso al directorio raíz. Algunos motores de búsqueda, tales como Inktomi, obedecen completamente las indicaciones de los Meta Tag. Escribiendo Index,Follow en el CONTENT seguirá todos los enlaces del index

La etiqueta META se coloca en la sección HEAD del HTML. Un formato completamente simple sería ( si queremos que no indexen los enlaces del index)

<HTML>
<HEAD>
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">
<META NAME="DESCRIPTION" CONTENT=" Esta página es......">
<TITLE>...</TITLE>
</HEAD>
<BODY>
...

Opciones

La etiqueta CONTENT tiene cuatro opciones
el indice, noindex, follow, nofollow separados por comas.

INDEX especifica que se acepta incluir la web en el índice del buscador

FOLLOW especifica que se acepta que se indexen también los enlaces existentes en nuestro documento index. No es cierto que los motores de búsqueda sigan los enlaces del index por defecto, Inktomi por defecto sigue la orden índice, nofollow .

Hay también dos órdenes globales que incluyen ambas acciones: all y none

ALL=INDEX, follow y NONE=NOINDEX, nofollow

Combinaciones posibles

<meta name="robots" content="index,follow">
<meta name="robots" content="noindex,follow">
<meta name="robots" content="index,nofollow">
<meta name="robots" content="noindex,nofollow">
<meta name="robots" content="all">
<meta name="robots" content="none">

Visit-time

Se están intentando añadir nuevas directivas que permitan controlar el tiempo en el que los robots indexan las páginas, por ejemplo:

# Permitir trabajar a los botsde 2 am a 7:45 am
# Las horas son siempre Greenwitch
Visit-time: 0200-0745
# Un documento CADA 30 minutos
Request-rate: 1/30m
# Combinado: 1 doc cada 10 minutos
# y solo de una a 5 tarde
Request-rate: 1/10m 1300-1659


Preguntas frecuentes

¿Qué es un WWW robot?

Usando nuestra terminología de "andar por casa" son robots que entran en todos los servidores de todo el mundo, buscan los documentos que están alojados en ellos, los incluyen en su index y luego nosotros podamos ir a ese index a buscar lo que necesitamos

¿Qué diferencia hay entre un www robot y mi navegador?

El www robot penetra en el servidor y recupera todos los documentos alojados en él indexándolos para su Agente, nosotros con nuestro navegador sólo podemos acceder a los documentos que el servidor quiere facilitarnos.

¿Qué es un Agente?

Podemos distinguir tres tipos de agentes

Agente autónomo: Es un programa que "viaja" entre los sitios web decidiendo por él mismo qué hacer. Sólo puede viajar entre sitios ubicados en servidores especiales. Este tipo de agentes no está muy difundido en el área de internet.

Agente inteligente: Programas que ayuda al usuario, por ejemplo: a elegir productos, a rellenar formularios o a encontrar determinada cosa. Generalmente no tiene mucha tarea en la red.

Agente de usuario: Es un nombre técnico para programas que ejecutan tareas para un usuario en la red. Un ejemplo de ellos son: Netscape Navigator,Microsoft Internet Explorer, y Email User-agent como Qualcomm Eudora etc.

¿Qué diferencia hay entre un www robot y un directorio?

Los Directorios no poseen robots, están operados por humanos y no recuperan automáticamente los enlaces incluídos en las páginas web, sino que sólo se limitan a hallar lo que las personas manualmente incluyen en ellos. Tienen una ventaja respecto a los robots , pueden clasificar por secciones la temática de las web al hacerse mediante un proceso manual.

¿Cuántas clases de ww robots hay?

A los robots se les suele denominar "Web Wanderers", "Web Crawlers", o "Spiders" hay quién piensa que son virus pero no es así, un robot simplemente visita los sitios y extrae los enlaces que están incluídos dentro de estos.

Arañas (Spiders) Es un robot, pero otorga resultados más fríos.

Gusanos (Worms) Es lo mismo que un robot, aunque técnicamente un gusano es una réplica de un programa, a diferencia de un robot que es un programa original.

Orugas (Web crawlers) Es lo mismo que un robot, pero un tipo específico de robot.

Hormigas (WebAnts) Cooperativa de robots

¿Qué es un Search Engine?

Un Search Engine es un programa que busca en una determinada base de datos. En el contexto del Web la palabra "Search Engine" se utiliza para denominar las formas de búsqueda que se realizan en una bases de datos de documentos HTML recopilados por un determinado robot. Para entendernos, "search engine" son Google, Altavista etc... y cada uno tiene su www robot de búsqueda

Ventajas de la existencia de estos robots de búsqueda

La principal ventaja es su capacidad de indexar documentos, ya no sólo por el título o las palabras clave que queramos asignarles, si no por la capacidad de buscar en TODO el documento cómo tienen algunos. Es fácil hacer una prueba, vas a google cuál pitonis@ modern@, pones entre comillas una frase de una canción que no sabes ni quién la canta ni cómo se llama, pero de la que en algún momento escuchaste el estribillo, por ejemplo: " baila morena" , y nuestro " Oráculo" , con enorme generosidad, informa de todos los documentos en los que está incluida la frase:

http://www.google.es/search?q=%22baila+morena%22&ie
=ISO-8859-1&hl=es&btnG=B%FAsqueda+en+Google


2.860 resultados en 0, 14 segundos de búsqueda, ¿cómo no amarlo? :-'(

Desventajas de los robots de búsqueda

Evidentemente nadie es perfecto, algunas desventajas tenía que tener el invento.

Los robots de búsqueda, con su afán de indexar, colapsaron ciertas redes en el pasado ya que cuando un www robot investiga un servidor adopta la apariencia de usuarios que visitan las web alojadas en él y cuanta más información exista en el servidor, más usuarios creará el robot para analizarla. Hoy en día existen mecanismos para que no se produzcan y la información suficiente para diseñar robots más eficientes.

No hay que perder de vista que son máquinas, diseñadas con los conceptos más pluscuamperfectos del momento, pero máquinas que no son capaces de discernir entre un documento privado, un documento que sólo le interesa a mi grupo de trabajo, un borrador de una tarea pendiente, un documento temporal..... Lo indexan todo y este fué el motivo por el que se crearon los archivos " robots.txt", para indicar a los robots de búsqueda qué documentos tenían o no tenían que añadir a su base de datos.

¿Cómo decide un robot las webs qué va a visitar?

Depende del robot y de su estrategia de búsqueda. Por lo general empiezan con una lista histórica de URLs, especialmente de aquellos documentos con muchos enlaces a otras webs y con aquellos sitios populares en el Web, es decir, a los que apuntan muchos enlaces de otras webs.

La mayoría de los buscadores permiten también que se ingrese una dirección manualmente de manera que después la visite el robot para su indexación definitiva.

Usan también otros recursos como listas de correo, grupos de discusión, etc. Todo esto les da un punto de partida para comenzar a seleccionar url's para visitar, analizarlas y usarlas como recurso para incluirlas dentro de su base de datos.

¿Cómo indexa un documento el robot de búsqueda?

Depende también del robot: algunos ponen en su índice los títulos de los documentos HTML, o los primeros párrafos del texto, o analizan el HTML entero y ponen en un índice todas las palabras, otros analizan la etiqueta del META, o los textos de las imágenes...

¿Cómo sé si un robot de búsqueda me ha visitado?

Comprobando los registros del servidor: Si existen solicitudes de muchos documentos en un cortísimo espacio de tiempo, imposible de realizar de forma manual, seguramente será porque un robot ha visitado el sitio. También se puede deducir cuantos robots nos han visitado comprobando las solicitudes realizadas al archivo robots.txt.

¿Por qué las solicitudes al archivo robots.txt orientan sobre las visitas realizadas por los robots de búsqueda a mi sitio?

Los robots que van buscando páginas para indexar en la base de datos de su Agente, lo primero que hacen al visitar un sitio es llamar al fichero robots.txt. Lo primero que busca el robot cuando llega a nuestra web es el fichero http//www.dominio.com/robots.txt. El número de peticiones que reciba este fichero y que constará en las estadísticas, nos indicará el número de veces que hemos sido visitados por un robot de búsqueda .

Un robot me ha visitado ¿qué tengo que hacer?

Nada, déjate querer :-). él trabaja de manera automática y sabe perfectamente qué tiene que hacer.

¿Cómo evito que un robot indexe mi sitio?

Creando un archivo llamado robots.txt y alojándolo en la raiz del sitio, ahí mismo dónde situamos la página index. En él se especifican las zonas del sitio que los robots NO TIENEN que indexar, no se especifican NUNCA las zonas que sí queremos que aparezcan en la base de datos de los buscadores, sólo indicaremos lo que NO QUEREMOS que un robot determinado o todos los robots de búsqueda indexen. Mucho ojo con este dato.

Pero si hago una relación de los archivos que no quiero que un robot añada a su índice, le estoy diciendo al resto de la gente qué documentos privados tengo. Los hago invisibles a los robots de búsqueda pero accesibles tecleando la dirección.

La manera óptima de organizar un sitio es incluir en un directorio secundario todos los documentos y archivos que no queremos que indexen los buscadores, prohibir la entrada de los robots en ese directorio y configurar el servidor con unas buenas medidas de seguridad en el caso de tener documentación sensible. El robots.txt no es una medida de seguridad que garantiza la privacidad de los documentos, para eso existen otros métodos, el robots.txt es el resultado de un consenso para evitar que los robots añadan automáticamente a sus índices esos documentos

Mi proveedor no me dá esa posibilidad ¿Existe otra manera para indicar a los robots qué zonas pueden indexar de mi sitio?

Si, en los META de los documentos.

¿Por qué encuentro llamadas /robots.txt en mis ficheros ?

Ya he comentado que lo primero que hace un robot cuando entra en nuestro sitio siguiendo el estándar de exclusión, es hacer una llamada al fichero robots.txt. Seguramente esas llamadas, son los robots que intentan ver si se ha especificado alguna norma para el acceso a los ficheros.