Listado de IPs de bots, crawlers, spiders y demás…

Lista actualizada de direcciones IP de los robots que indexan nuestras webs habitualmente.

En mi post Programando un contador de impresiones que excluya a los bots me recomendaba Alberto en los comentarios que compartiera mi listado de IPs de bots, crawlers, spiders y demás

Para quien le pueda interesar un volcado de este listado de IP se actualizará regularmente en la siguiente dirección:

http://www.fernandoplaza.com/apps/bots/iplist.txt

Los casi 800 bots que tenemos ya fichados están ordenados por el UserAgent para que el listado sea más sencillo de revisar. La estructura del txt no os costará averiguarla por si queréis importar su contenido con cierta frecuencia (para que el fichero no pese mucho el UserAgent está limitado a 100 caracteres).

Espero que os resulte útil.

Programando un contador de impresiones que excluya a los bots

El tráfico generado por robots, crawlers, spiders y demás que navegan por la red es casi tan grande como el de los humanos. Si queremos programar un contador fiable debemos excluir todas esas visitas.

If our logs are any indication, few bots actually bring enough human traffic to make up for their crawls, so there’s alot of free-loading bots out there.

Bots vs Browsers

Programar un contador de impresiones no es nada del otro mundo, básicamente es un código que se ejecuta una vez se carga la página y que realiza una inserción en la base de datos.

Yo lo he puesto en mis plantillas al final del todo y precedido de un Response.flush para que en caso de que algo falle el usuario reciba la página solicitada sin demoras, además sólo hago una inserción en la base de datos y el recuento de las totalizaciones se realiza por las noches en un proceso batch… de esta manera aun siendo un código que se ejecuta en todas y cada una de las páginas es mucho más ligero que si primero tuviera que buscar el número de impresiones del día (select) y luego actualizarlo (update).

Lo complicado empieza cuando te das cuenta de que más de un 50% de tus impresiones proceden de robots, spiders, crawlers… y que necesitas filtrar todas esas entradas para que el dato se asemeje lo máximo posible a lo que te devolvería un Google Analytics.

¿Cómo hacemos para filtrar toda esta moralla? Pues yo no sé cómo lo harán los sistemas estadístico pero yo lo hago por IPs o analizando el UserAgent del navegador que visita la página.

En iplist.com (IP Addresses of Search Engine Spiders) puedes encontrar un buen listado de IPs de bots para excluir, son unas 3.500 direcciones aunque después de importarme todas ellas cuando intente cruzarlas con mis datos no hubo muchas coincidencias…

Así que opté por re-invetar la rueda (one more time) y crearme mi propia lista con un poco de ayuda de Bots vs Browsers. Básicamente lo que hago es en el proceso batch buscar dentro del UserAgent palabras como bot, crawl, spider, mediapartners, slurp… y almacenar todas esas IP para excluir sus impresiones (ya tengo almacenadas unas 400 y subiendo… que aun siendo menos de las 3.500 de iplists.com me funcionan mucho mejor). Por el momento el sistema funciona bastante bien y el número de impresiones que recibo se acerca muchísimo al que me dan mis estadísticas.

Llevaba tiempo necesitando un contador de este tipo, lo he estado retrasando porque sé que el API de Analytics está al caer pero yo no podía esperar más… cuando lancen el API ya veré la manera de integrar también esos datos para corroborar los mios.