Ayuda para bloquear facebookexternalhit que consume recursos de mi sitio
Hola a todos,
Tengo un sitio en wordpress y hace unos días tuve un pico muy alto de consumo de recursos que afectó el rendimiento de mi página. Revisando las estadísticas del servidor y los logs de acceso, me di cuenta de que el responsable era un bot de Facebook llamado "facebookexternalhit". Este bot está haciendo demasiadas peticiones y me está consumiendo mucha transferencia mensual y recursos del servidor.
Usando robots.txt no tuve forma de que se detenga, por lo visto continúa intentando acceder.
¿Alguien ha tenido un problema similar o sabe cómo puedo proteger mi sitio para que no siga pasando esto? Estoy en un plan de hosting inicial y no quiero que me lleguen a hacer un upgrade por sobreuso de recursos.
Cualquier consejo o sugerencia es más que bienvenido. ¡Gracias!
Saludos,
Harold
-
El bot/crawler llamado "facebookexternalhit" es un rastreador de Meta y según su documentación oficial se encarga de generar las vistas previas de los links que se comparten en sus plataformas (Facebook, Whatsapp, Instagram).
Sin embargo hay una gran cantidad de posteos en la web desde 2018 aprox. que describen un comportamiento abusivo, causando miles de peticiones web en ráfagas, que obviamente afectan a los sitios web. Basta con hacer una búsqueda en Google de "facebookexternalhit" para darse una idea...
El mismo bot en su documentación oficial menciona que ignora las directivas de robots.txt, por eso no te funcionó limitarlo por ahí.
Las únicas soluciones que encontré válidas hasta el momento para evitar el abuso de este bot de Meta (en caso que afecte tu sitio) son las siguientes:
1. Bloquear el bot de Meta a nivel hosting (.htaccess)
Agrega este código al principio de tu archivo .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (facebook|meta-) [NC]
RewriteRule .* - [F,L]
</IfModule>Esto devolverá un error HTTP 403 al bot de Meta, impidiendo que pueda abusar de tu sitio.
Te sugiero este método en combinación con alguno de los que siguen.
2. Bloquear a nivel CDN (Cloudflare)
Dentro de tu cuenta de Cloudflare, seleccionas tu dominio y luego vas a Seguridad > WAF > Herramientas y en el segundo formulario (IP, Intervalo de IP, nombre de país o ASN) agregas el ASN de Meta "AS32934" para bloquear su red:
Si no tienes Cloudflare te sugiero que lo configures en tu sitio (gratis).
3. Bloquear a nivel firewall
Si cuentas con un servidor propio, puedes bloquear el ASN de Meta también en el firewall de tu servidor.
Por ejemplo, si utilizas CSF puedes agregar el ASN de Meta (AS32934) en "CC_DENY".
Si tienes WordPress el plugin Blackhole for Bad Bots también podría servir, aunque no tuve oportunidad de probarlo aún.
Links de interés
- El bot de Facebook que colapsó nuestro servidor (y cómo lo solucionamos)
- Proper way to deal with the FB bot (hundreds of requests)
- Facebookexternalhit está enloqueciendo
- Suggestions to rate limit facebook / meta crawler
Me sumo al posteo si alguien tiene otra data o alguna otra solución a este tema para tener en cuenta!
2
Iniciar sesión para dejar un comentario.
Comentarios
1 comentario