¿Sabías que es probable que tu sitio web esté recibiendo más visitas al día de bots que de seres humanos de carne y hueso?

Los bots, en el contexto web, son aplicaciones de software que completan tareas de forma automática, ejecutando scripts por toda la web. Los web bots deben su existencia al trabajo hecho por Babbage, Bertrand Russell y Alan Touring. Crear un dispositivo que procese información de forma inteligente y autónoma ha sido el Santo Grial para matemáticos, ingenieros e incluso pensadores desde Aristóteles.

Gran parte de los bots que podemos encontrar por internet deben ser tenidos en consideración a la hora de crear nuestra infraestructura web, ya que son potencialmente dañinos. Los ejemplos más comunes son:

  • Spambots que recogen direcciones de correo electrónico de las páginas de contacto.
  • Programas de descarga que absorben el ancho de banda mediante la descarga de sitios web completos.
  • Rastreadores de sitios web que captan el contenido de los sitios web y lo reutilizan sin permiso, en las páginas de entrada generadas automáticamente.
  • Virus y gusanos.
  • Ataques DDos.
  • Botnets, máquinas zombie, etc.

A pesar de esto, no todos los bots son perjudiciales. Muchos de ellos tienen efectos positivos en nuestra página web, como por ejemplo los bots de motores de búsqueda, sin los que Google no se habría vuelto el gigante que es actualmente.

Estudios como Imperva Incapsula’s Bot Traffic Report en 2015, o también en mayo de 2016 DeviceAtlas revelaban que hasta un 50% del tráfico de la web podría atribuirse a bots, ‘dark traffic’, referrals spam…

¿Y si pudiésemos eliminar el tráfico espurio no solo de nuestros informes, sino también de toda la experiencia de la web? ¿Es posible detener los bots a la puerta?

Tradicionalmente, muchos de los bots no utilizan Javascript, lo que significa que si empleamos este lenguaje para enviar datos a Google Analytics (GA) ya estamos ignorando algunos de estos bots. No obstante, como los bots representan un alto porcentaje tan alto de tráfico, incluso aunque solo una pequeña parte de ellos usen Javascript, puede ser suficiente para “manchar” los datos de nuestros informes. Veamos cómo afrontarlo.


Cómo detectar bots en GA

La huella más común que deja la visita de un bot en Google Analytics es la evidencia de un tráfico de muy baja calidad, que puede venir indicado por métricas como:

  • 100% de nuevas sesiones.
  • 100% en la tasa de rebote.
  • 1.00 páginas/sesión.
  • 00.00.00 duración media de sesión.
Efecto típico de un bot en el gráfico histórico de sesiones

GA te permite hacer check en “Excluir todos los hits de robots y de arañas conocidos” desde julio de 2014, pero esto solo evita la influencia de bots ya conocidos en los informes y no puede localizar nuevos bots.


Tráfico fantasma

Utilizando el Protocolo de Medición de Google Analytics, sistema que permite a los desarrolladores crear peticiones HTTP, un usuario malintencionado puede beneficiarse de la API de Google para inyectar spam, sin ni siquiera entrar en la página web, y enviar datos de interacción de usuarios directamente a los servidores de GA:

La solución más directa pasa por monitorizar los referentes de GA para evitar los dominios indeseados. Establecer filtros de hostname debe ser una de nuestras prioridades, para asegurar que nuestros informes no se vean adulterados por tráfico.

Para implementar este filtro, en primer lugar debemos tener en cuenta que lo aconsejable es no hacerlo directamente sobre nuestros informes principales. Se recomienda crear una vista de prueba primero para ver qué impacto tiene en nuestra recolección de datos en un futuro. Se puede leer más información aquí.

Posteriormente, comprobaremos en los informes qué dominios queremos conservar y de cuáles nos queremos deshacer. Para ello navegaremos hacia Audiencia > Tecnología > Red, y cambiaremos la dimensión a “nombre del host” para ver la lista con dichos dominios.

Con esto, iremos a la sección de Administrador (nivel de vista) > Filtros y aquí tendremos que darle un nombre al filtro y seguir los siguientes pasos:

  1. Seleccionar la opción “personalizado”.
  2. Seleccionar el tipo de filtro “incluir” (importantísimo) y el campo del filtro “nombre del host”.
  3. Construir una expresión regular (regex) dentro del cajón de texto “patrón del filtro” que contenga todos los dominios que hayamos comprobado en el informe anterior. Si nuestros dominios deseados son www.hostname1.com, www.hostname2.es y www.hostname3.org, nuestra regex debería quedar como:

    hostname1|hostname2|hostname3|…

De todas formas, a pesar de que los informes no serán adulterados, esta opción no evita que los bots accedan al sitio web, a su contenido y sigan enviando hits a GA, lo que consumirá de forma descontrolada la tasa contratada de hits disponibles.


Atacando el problema desde la raíz

Además de utilizar filtros por hostname en Google Analytics, se pueden utilizar otras técnicas para evitar que directamente accedan al site y consuman recursos de nuestro site, tal y como comentábamos anteriormente. Vamos a exponer brevemente dos de las más comunes, que pasan por hablar con los equipos de sistemas:

  • Modificar el archivo Robots.txt. Se trata de un archivo de configuración que usamos para indicar a esos rastreadores qué parte o partes no deben entrar a rastrear e indexar de nuestra página web. En él, podemos especificar de manera sencilla los directorios, subdirectorios, URLs o archivos de nuestra web que no deberían ser rastreados o indexados por los buscadores. Debido a que está íntimamente relacionado con la indexación del sitio web, es fundamental programar adecuadamente este archivo, sobre todo si nuestra web está hecha con un gestor de contenidos (CMS) que lo genere automáticamente. De esta forma, puede suceder que accidentalmente se incluyan como no indexables partes que sí deberían ser rastreadas. Normalmente los bots ignoran las reglas aquí puestas.
  • Modificar el archivo .htaccess. Al igual que el anterior, es otro archivo de configuración utilizado en servidores web que utilizan Apache Web Server. Es posible bloquear visitantes según su dirección IP, su referente, bloquear bots…, más información de cómo realizar su configuración en htaccess-guide: http://www.htaccess-guide.com/deny-visitors-by-referrer/

Y en resumen…

Estas son algunas de las técnicas más comunes, pero también existen otras como la eliminación de bots por IP o por User Agent, utilizar Captchas, resolución de problemas matemáticos muy sencillos…

No es difícil eliminar el tráfico de bots de nuestros informes de Google Analytics, pero si queremos ir un paso más allá podemos tratar de cortar el problema de raíz para evitar que se consuman recursos de nuestra web.

¿Conoces alguna técnica más? ¿Has tenido anteriormente problemas con tráfico indeseado de bots? Queremos conocer tu experiencia, ¡estaremos encantados de que nos la cuentes en los comentarios!