No permitir el acceso directament
Debemos añadir al fichero .htacces del servidor:
<IfModule mod_rewrite.c>
RewriteEngine On
# 1. Bloquear User-Agents vacíos (empty user agent string)
RewriteCond %{HTTP_USER_AGENT} ^-?$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
# 2. Bloquear bots específicos por su nombre o patrón
RewriteCond %{HTTP_USER_AGENT} (nbot|crawl|Applebot) [NC,OR]
# 3. Bloquear navegadores obsoletos usados por bots (Firefox 1 a 10)
RewriteCond %{HTTP_USER_AGENT} "Firefox/([1-9]|10)\." [NC]
# Acción: Devolver error 403 Forbidden
RewriteRule ^ - [F,L]
</IfModule>
Limitamos el tiempo entre cada petición que haga el robot
Debemos añadir lo siguiente al fichero robots.txt del servidor
# Aplicar un límite global a todos los bots que soporten la directiva
User-agent: *
Crawl-delay: 10
# Configuración específica para Bingbot (soporta Crawl-delay)
User-agent: bingbot
Crawl-delay: 5
Limitar la velocidad de descarga a los robots
Para ello debes tener el módulo "ratelimit" de Apache.
Entonces, le añades esto al fichero .htaccess:
<IfModule mod_ratelimit.c>
# 1. Identificar bots y asignarles una variable de entorno "es_bot"
SetEnvIfNoCase User-Agent "(bingbot|googlebot|applebot|slurp|crawler|spider)" es_bot
# 2. Aplicar la limitación de velocidad (en KB/s) solo a las peticiones con esa variable
# Formato: SetOutputFilter RATE_LIMIT
# SetEnv rate-limit <velocidad_en_kbps>
<If "-z env('es_bot')">
# Si NO es un bot, no se aplica límite (tráfico normal a máxima velocidad)
</If>
<Else>
# Si es un bot, se fuerza la limitación de descarga
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 50
</Else>
</IfModule>
rate-limit 50: Restringe la transferencia a 50 KB/s para la conexión del bot
Bueno, son tres maneras de limitar o bloquear a las IA's (y resto de robots) a que saturen vuestras webs.

No hay comentarios:
Publicar un comentario