Siirry pääsisältöön

Miten estää tarpeeton tai haitallinen bot-liikenne sivustolta

Päivitetty yli viikko sitten

Kaikki verkkoliikenne sivustollasi ei ole ihmisliikennettä – siellä käyvät myös botit. Bottiliikenne sivustolla voi olla haitallista, mutta useimmiten botit ovat hyödyllisiä: esimerkiksi hakukoneen botti (engl. web crawler tai spider) käy läpi sivuston sisältöä sitä kartoittaen eli crawlaa sitä, jotta sivusto indeksoituisi ja näkyisi hakukoneiden tuloksissa paremmin. Ongelmatilanteita voi kuitenkin syntyä esimerkiksi silloin, kun monta hakukonebottia intoutuu indeksoimaan sivustoa samaan aikaan ja kuormittaa sivustoa.

Seravo Pluginin avulla luettavissa olevat GoAccess-raportit laskevat kaiken sivuston HTTP-liikennemäärän. Siinä missä varsinaiset kävijäanalytiikan työkalut (esimerkiksi Google Analytics) näyttävät tarkempia tietoja sivuston kävijöistä ja niiden määristä, GoAccess-raportit sisältävät kaiken verkkoliikenteen, myös botit. Raportit löytyvät kuukausikohtaisesti WordPressin ohjauspaneelin kautta kohdasta Työkalut > Sivuston tila > HTTP-liikennetilastot:

Liikenteen estäminen nginx-konfiguraatioilla

Mikäli haluat asettaa nginx-konfiguraation, mitä kutsutaan myös nginx-conffiksi, sivustolle, voit luoda uuden .conf-päätteisen tiedoston palvelimella hakemistoon /data/wordpress/nginx/. Jotta asetus astuu voimaan, tulee nginx käynnistää uudelleen ajamalla komentorivillä wp-restart-nginx -komento.

Yksittäisten IP-osoitteiden esto

Mikäli sivustolta halutaan estää yksittäisiä IP-osoitteita, onnistuu tämä seuraavalla nginx-konfiguraatiolla:

# IP block
if ($remote_addr = 12.123.12.123) {
set $block_requests "1";
}

if ($block_requests = "1") {
return 403;
}

Yksittäisten user-agentien esto

Yksittäisten bottien estäminen onnistuu seuraavanlaisella nginx-konfiguraatiolla:

if ($http_user_agent ~* (badbot|maliciousbot)) {
return 403;
}​

Maakohtainen esto

Mikäli sivustolta halutaan estää kokonaisen maan liikenne, onnistuu myös tämä nginx-conffilla. Maiden blokkaamisessa tulee kuitenkin ottaa huomioon mahdollinen haitta esimerkiksi sivuston hakukonenäkyvyyden osalta, koska kokonaisen maan blokkaaminen voi myös estää hakukoneiden crawlereiden pääsyn sivustolle. Maiden blokkauksien yhteydessä tulee myös sallia Seravon valvontaan liittyvät IP-osoitteet.

Maiden blokkaus onnistuu seuraavanlaisella nginx-konfiguraatiolla:

# Block traffic from geo country code ES
if ($http_x_seravo_geo_country_code ~* "(ES)") {
set $block_requests "1";
}

# Seravo monitoring
if ($remote_addr = 2a04:3542:1000:910:7c25:3fff:fe79:23da) {
set $block_requests "0";
}

# Seravo monitoring
if ($remote_addr = 94.237.85.150) {
set $block_requests "0";
}

if ($block_requests = "1") {
return 403;
}

Liikenteen rajoitus robots.txt-tiedoston avulla

Voit sivuston lokien tai GoAccess-raporttien avulla tutkia, aiheuttaako jokin tietty botti erityisen paljon liikennettä sivustolla. Bottien toimintaan voi yrittää vaikuttaa tekemällä muutoksia robots.txt-tiedostoon, mutta valitettavasti sääntöjä tottelemattomiakin botteja löytyy. Hyödyllisetkin botit saattavat reagoida varsin hitaasti sääntöjen muutoksiin, ja tutkiskelevat päivitettyä robots.txt-sisältöä vasta seuraavalla vierailukerralla.

Mikäli bottia ei haluta estää kokonaan robots.txt-säännöllä, voidaan botille määrittää crawl-delay-arvo, jos botti sitä tottelee. Näin saadaan botti käymään läpi sivustoa hitaammalla tahdilla.

Tarvitsetko apua tai lisätietoja?

Ota yhteyttä asiakaspalveluumme lähettämällä viestiä osoitteeseen [email protected].

Vastasiko tämä kysymykseesi?