Saltar al contenido principal

Ayuda para bloquear facebookexternalhit que consume recursos de mi sitio

Comentarios

2 comentarios

  • Comentario oficial
    Staff WNPower

    Hemos aplicado protecciones de ratelimit a los rastreadores de Facebook para prevenir situaciones de abuso en sus crawlers como los que se describen en este post.

    Si bien esto no afecta a la operatoria normal de Facebook, es posible que en las herramientas de depuración de contenidos de Facebook, las pruebas a veces devuelvan "La URL devolvió un código de respuesta HTTP erróneo." (HTTP 429 Too many requests).

    Para evitar este error, se puede intentar repetir la prueba algunas veces hasta que Facebook tome bien el link.

  • Alejandro Torres

    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

     

    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.