El tráfico web no proviene únicamente de usuarios humanos, sino también de robots (bots), spiders y rastreadores utilizados por motores de búsqueda y otras plataformas para indexar contenido. Sin embargo, algunos bots pueden afectar negativamente el rendimiento del servidor, aumentar el uso de recursos y comprometer la seguridad del sitio.
En este artículo se explican diversas estrategias para controlar y restringir el acceso de estos rastreadores, ya sea a través del archivo robots.txt o con reglas en .htaccess para bloquear bots maliciosos.
¿Qué es un archivo robots.txt y cómo funciona?
El archivo robots.txt es un archivo de configuración ubicado en la raíz del sitio web, utilizado para indicar a los bots de los motores de búsqueda qué contenido pueden rastrear y cuál deben evitar.
Sin embargo, es importante destacar que robots.txt no es un método infalible de bloqueo. Solo es respetado por los bots que cumplen con las directrices de los motores de búsqueda, como Googlebot (Google), Bingbot (Microsoft Bing) o Slurp (Yahoo). Los bots maliciosos, en cambio, pueden ignorar este archivo y continuar rastreando el sitio sin restricciones.
Para casos más extremos, se recomienda complementar el uso de robots.txt con reglas en .htaccess o firewalls específicos.
Bloquear bots con robots.txt
1. Bloquear todos los bots
Si se desea evitar que cualquier bot rastree el sitio, se puede utilizar la siguiente configuración:
User-agent: *
Disallow: /
⚠️ Advertencia: Esta regla impedirá que el sitio aparezca en los motores de búsqueda legítimos, lo que puede afectar la visibilidad del contenido en internet.
En lugar de bloquear completamente todos los bots, es recomendable restringir únicamente ciertas áreas del sitio:
User-agent: *
Disallow: /wp-admin/
Disallow: /private/
Disallow: /config/
Esto impide que los bots indexen directorios sensibles como /wp-admin/ o /private/, mientras el resto del sitio sigue siendo rastreado.
2. Bloquear bots específicos
Si se desea bloquear un bot en particular, se debe especificar su nombre de agente de usuario en el archivo robots.txt.
Bloquear Googlebot
User-agent: Googlebot
Disallow: /
Con esta regla, Googlebot no podrá rastrear el sitio y las páginas no aparecerán en los resultados de Google.
Si solo se quiere bloquear una parte del sitio, se puede hacer de la siguiente forma:
User-agent: Googlebot
Disallow: /privado/
Disallow: /pruebas/
Esto impide que Google indexe estos directorios específicos, sin afectar el resto del sitio.
Reducir la velocidad de rastreo de Yahoo (Slurp)
El bot de Yahoo Slurp permite controlar la frecuencia con la que accede a un sitio mediante el parámetro Crawl-delay:
User-agent: Slurp
Crawl-delay: 10
Esto indica que Yahoo debe esperar 10 segundos entre cada solicitud, reduciendo la carga en el servidor.
3. Limitar la frecuencia de rastreo para todos los bots
Algunos bots pueden realizar demasiadas solicitudes en poco tiempo, sobrecargando el servidor. Para evitarlo, se puede configurar un retraso con Crawl-delay:
User-agent: *
Crawl-delay: 5
Esto instruye a todos los bots que esperen 5 segundos entre cada solicitud. Sin embargo, no todos los rastreadores respetan esta directiva.
Bloquear bots con .htaccess
Dado que robots.txt no impide que los bots maliciosos accedan al sitio, se recomienda utilizar .htaccess para bloquear bots agresivos directamente en el servidor.
1. Bloquear un bot específico
Si se detecta un bot problemático, se puede bloquear con la siguiente regla en .htaccess:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "BadBot" [NC]
RewriteRule .* - [F,L]
Esto devolverá un error 403 (Acceso prohibido) a cualquier bot que use el agente de usuario «BadBot».
2. Bloquear múltiples bots conocidos
Si se han identificado varios bots maliciosos, se pueden bloquear de una vez con esta configuración:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "AhrefsBot" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "SemrushBot" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "MJ12bot" [NC]
RewriteRule .* - [F,L]
Con esto, se bloquean AhrefsBot, SemrushBot y MJ12bot, que son rastreadores utilizados para recopilar datos de sitios web.
3. Bloquear bots por dirección IP
Si un bot está generando tráfico no deseado desde una IP específica, se puede bloquear con .htaccess:
<RequireAll>
Require all granted
Require not ip 192.168.1.100
</RequireAll>
Para bloquear un rango completo de direcciones IP, se puede modificar la regla:
<RequireAll>
Require all granted
Require not ip 192.168.1.
</RequireAll>
Esto bloquea todas las IPs desde 192.168.1.0 hasta 192.168.1.255.
Cómo identificar bots problemáticos
Antes de bloquear un bot, es importante verificar su origen. Para ello, se pueden revisar los archivos de logs del servidor y ejecutar el siguiente comando en SSH para identificar la IP responsable del tráfico sospechoso:
host 66.249.66.167
Si la respuesta indica que el tráfico proviene de un bot legítimo como Googlebot, se debe considerar si realmente es necesario bloquearlo.
Si se trata de un bot desconocido o malicioso, se pueden aplicar las reglas de bloqueo mencionadas anteriormente.
Conclusión
El tráfico de bots puede ser beneficioso o perjudicial dependiendo de su origen. Mientras que los motores de búsqueda legítimos ayudan a mejorar la visibilidad del sitio, los bots maliciosos pueden consumir recursos y comprometer la seguridad.
Para gestionar adecuadamente el tráfico de bots, se recomienda:
✅ Utilizar robots.txt para indicar qué partes del sitio pueden ser indexadas.
✅ Aplicar reglas en .htaccess para bloquear bots maliciosos que ignoren robots.txt.
✅ Monitorear el tráfico para detectar actividad sospechosa y ajustar las reglas según sea necesario.
Implementando estas medidas, es posible reducir el impacto de los rastreadores no deseados y optimizar el rendimiento del sitio web.