TL;DR: aggiungendo regole nel tuo file robots.txt e usando una trappola honeypot (come in questo esempio: Use a simple bottrap to block bad bots)
Se assumiamo che i bot seguiranno le tue regole robots.txt, dovresti creare un file robots.txt nella tua directory principale e aggiungere il seguente:
User-agent: Googlebot
Disallow:
User-agent: googlebot-image
Disallow:
User-agent: googlebot-mobile
Disallow:
User-agent: bingbot
Disallow:
User-agent: MSNBot
Disconosci:
User-agent: Slurp
Disallow:
User-agent: *
Disallow: /
Questo impedirà a tutti gli spider (oltre a quelli esplicitamente elencati sopra) di scansionare il tuo sito web.
Tuttavia, se uno spider non rispetta le regole del tuo robots.txt, dovresti creare uno script per rilevare i browser automatici. Come farlo? Beh, ci sono diverse cose che i crawler hanno in comune (in generale) ma che i visitatori reali non hanno:
- Il numero di richieste al secondo al vostro sito web è molto più alto di un tipico visitatore
- Seguiranno qualsiasi link che incontrano
- Di solito non hanno javascript attivato, per ragioni di prestazioni. Tuttavia, non fatevi ingannare perché alcuni di loro potrebbero usare un browser headless (come PhantomJS)
- Di solito hanno alcune intestazioni specifiche (o ne mancano), a differenza dei browser reali (Chrome, Firefox)
Utilizzate una trappola honeypot per individuarli e bloccarli. Un buon esempio è qui: Usa un semplice bottrap per bloccare i bot cattivi
Spero che questo aiuti!