Cos'è meta-webindexer?

meta-webindexer è il crawler di Meta Platforms (la società che controlla Facebook, Instagram e WhatsApp) dedicato alla raccolta di contenuti dal web per l'addestramento dei propri modelli di intelligenza artificiale. A differenza di facebookexternalhit - che genera le anteprime dei link condivisi sui social - meta-webindexer non porta alcun beneficio al proprietario del sito: raccoglie contenuti senza inviare traffico in cambio.

Il problema: un comportamento da DDoS

Analizzando i log di accesso SSL sui server Plesk, abbiamo rilevato un comportamento estremamente aggressivo: il bot genera oltre 180 richieste al minuto per singolo dominio, operando in rotazione su decine di indirizzi IP diversi per eludere i sistemi di blocco tradizionali.

Le segnalazioni nel mondo

Il problema e tutt'altro che isolato. Secondo un report di Fastly sul traffico AI del 2025, i crawler di Meta rappresentano il 52% di tutto il traffico AI crawler mondiale, piu del doppio rispetto a Google (23%) e OpenAI (20%) messi insieme.

Il rapporto tra crawling e traffico reale inviato e di circa 73.000:1: Meta estrae contenuti dai siti a un ritmo straordinario senza restituire praticamente nulla in termini di visite.

Su Hacker News e nei forum specializzati, centinaia di webmaster hanno segnalato lo stesso comportamento: il bot non rispetta le direttive di robots.txt, non applica alcun rallentamento progressivo e, in alcuni casi documentati, ha generato 11 milioni di richieste in 30 giorni su un singolo sito.

Come rilevarlo sui tuoi log

Se il tuo server usa Plesk con Apache/SSL, puoi verificare quante richieste ha ricevuto con questo comando:

grep -i "meta-webindexer" /var/www/vhosts/tuodominio.it/logs/access_ssl_log | wc -l

Per vedere la distribuzione ora per ora:

grep -i "meta-webindexer" /var/www/vhosts/tuodominio.it/logs/access_ssl_log \
  | grep "13/Apr/2026" \
  | awk -F: '{print $2":00"}' | sort | uniq -c

Per vedere quante richieste ha ricevuto ogni dominio del server:

for log in /var/www/vhosts/*/logs/access_ssl_log; do
  count=$(grep -i "meta-webindexer" "$log" | wc -l)
  [ $count -gt 0 ] && echo "$count $log"
done | sort -rn

Come bloccarlo con Fail2ban

Una prima soluzione adottata e stata usare Fail2ban, che blocca gli IP direttamente via iptables prima ancora che la richiesta raggiunga il web server. Tuttavia, come vedremo piu avanti, questo approccio presenta dei rischi importanti che occorre conoscere prima di procedere.

1. Crea il filtro

Crea il file /etc/fail2ban/filter.d/bad-bots.conf con questo contenuto:

[Definition]
failregex = ^<HOST> .* ".*" .* ".*(?:meta-webindexer|meta-externalagent|AhrefsBot|SemrushBot|MJ12bot|DotBot|BLEXBot|PetalBot|Bytespider|GPTBot|ClaudeBot|anthropic-ai|CCBot|DataForSeoBot|serpstatbot|Scrapy|python-requests|python-urllib|zgrab|masscan|nikto|sqlmap|YandexBot|TTD-Content|Diffbot|magpie-crawler|VelenPublicWebCrawler|Netcraft|WebReaper|WebCopier|HTTrack|AwarioRssBot|AwarioSmartBot).*"$

ignoreregex =

2. Configura la jail

Aggiungi in /etc/fail2ban/jail.local:

[bad-bots]
enabled   = true
filter    = bad-bots
logpath   = /var/www/vhosts/*/logs/access_ssl_log
maxretry  = 3
findtime  = 30
bantime   = 604800
action    = iptables-allports[name=bad-bots, protocol=all]

3. Testa e attiva

# Testa il filtro
fail2ban-regex /var/www/vhosts/tuodominio.it/logs/access_ssl_log \
  /etc/fail2ban/filter.d/bad-bots.conf

# Riavvia fail2ban
systemctl restart fail2ban

# Verifica gli IP bannati
fail2ban-client status bad-bots

⚠️ Attenzione: il rischio dei falsi positivi con Fail2ban

Adottando questa soluzione nella pratica, abbiamo riscontrato un problema critico: Fail2ban banna gli IP a livello di rete, bloccando tutte le connessioni provenienti da quell'indirizzo, indipendentemente dal servizio o dal protocollo.

Il rischio concreto e che Meta e altri provider CDN condividono gli stessi range di indirizzi IP. Nel nostro caso, il range 185.93.2.x viene utilizzato sia da Meta per il crawling aggressivo, sia da BunnyCDN per la propria API (api.bunny.net risolve su 185.93.2.251).

Il risultato: bannando gli IP del bot meta-webindexer, abbiamo accidentalmente bloccato anche le chiamate API di BunnyCDN, causando rallentamenti gravi nella dashboard di PrestaShop per tutti i siti che usavano il CDN su quel server. Il timeout di PHP aspettava fino a 60 secondi ad ogni caricamento della pagina prima di fallire.

La lezione e importante: Fail2ban e adatto per bloccare attacchi brute force su SSH o sul pannello di controllo, non e lo strumento giusto per bloccare bot HTTP identificati dal user-agent, proprio per questo rischio di falsi positivi.

Attenzione: non bloccare facebookexternalhit

E' importante distinguere i crawler AI aggressivi da quelli legittimi. facebookexternalhit e il bot che Facebook usa per generare le anteprime dei link condivisi su Facebook, Instagram e WhatsApp. Bloccarlo farebbe scomparire le anteprime sui social per tutti i tuoi domini - un danno inutile.

Assicurati di includere nel filtro solo meta-webindexer e meta-externalagent, che sono i crawler dedicati esclusivamente all'addestramento dell'AI.

Le soluzioni consigliate: piu precise e senza rischi

Esistono approcci piu selettivi che bloccano i bot in base al user-agent senza toccare gli IP a livello di rete, eliminando il rischio di bloccare servizi legittimi come BunnyCDN, Cloudflare o altri CDN che condividono range IP con i bot.

Soluzione 1 - Modulo PrestaShop Security & Bot Shield

Per chi usa PrestaShop, la soluzione piu completa e il modulo PrestaShop Security & Bot Shield che offre un sistema avanzato di protezione specificamente progettato per gli e-commerce.

Tra le funzionalita principali:

  • Blocco bot malevoli e scraper AI tramite user-agent - senza bannare IP
  • Integrazione con AbuseIPDB per bloccare IP pericolosi noti
  • Gestione whitelist IP fidati per evitare falsi positivi
  • Blocco richieste sospette verso WordPress da parte di bot
  • Protezione via .htaccess o hook PrestaShop
  • Controllo reverseDNS per non bloccare mai Googlebot e Bingbot ufficiali
  • Log e registrazione eventi di sicurezza con tentativi bloccati
  • Compatibile con PrestaShop 1.7, 8.x e 9.x

A differenza di Fail2ban, il modulo agisce a livello applicativo: il bot viene bloccato con un errore 403 prima che la richiesta venga elaborata, senza mai toccare le connessioni di rete degli IP condivisi con servizi legittimi.

Soluzione 2 - Regole Cloudflare WAF

Per chi usa Cloudflare come proxy, e possibile creare regole WAF (Web Application Firewall) direttamente dalla dashboard, senza toccare il server. Basta andare su Security → WAF → Custom Rules e creare una regola del tipo:

Campo:    User Agent
Operatore: contiene
Valore:   meta-webindexer
Azione:   Block

Il vantaggio di Cloudflare e che il blocco avviene prima ancora che la richiesta arrivi al server, con impatto zero sulle risorse e nessun rischio di falsi positivi sugli IP, perche il filtro e applicato esclusivamente sul user-agent HTTP. E' possibile aggiungere piu bot nella stessa regola usando l'operatore OR.

Soluzione 3 - Regole Apache via .htaccess

Per chi gestisce direttamente il server, e possibile bloccare i bot a livello Apache aggiungendo queste direttive nel file .htaccess o nella configurazione del virtual host:

<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent "meta-webindexer|meta-externalagent|AhrefsBot|SemrushBot|MJ12bot|DotBot|BLEXBot|PetalBot|Bytespider|GPTBot|ClaudeBot|anthropic-ai|CCBot|DataForSeoBot|serpstatbot|Scrapy|python-requests|python-urllib|zgrab|masscan|nikto|sqlmap" bad_bot

<RequireAll>
    Require all granted
    Require not env bad_bot
</RequireAll>
</IfModule>

Anche in questo caso il blocco e basato esclusivamente sul user-agent, senza alcun impatto sugli IP condivisi con CDN o altri servizi.

Conclusione

Il comportamento di meta-webindexer rappresenta un problema reale e crescente per tutti i gestori di server web. Con un traffico che puo superare le 100.000 richieste al giorno per singolo dominio, ignorarlo significa sprecare risorse di banda, CPU e memoria a beneficio esclusivo di Meta.

Tuttavia, la scelta dello strumento di blocco e fondamentale: Fail2ban banna gli IP a livello di rete e puo colpire accidentalmente servizi legittimi che condividono gli stessi range IP dei bot. Le soluzioni consigliate - il modulo PrestaShop Security & Bot Shield, le regole Cloudflare WAF o le direttive Apache - agiscono invece sul user-agent HTTP, garantendo una protezione precisa e senza rischi di falsi positivi.

prodotto aggiunto alla lista