Ta witryna używa Coookies! Przebywając na niej akceptujesz ten fakt. [ Zamknij to okno ]

Sztuczna Inteligencja a Wydajność Serwerów: Jak Boty AI Obciążają Strony WWW

[20.05.2024]

Sztuczna Inteligencja a Wydajność Serwerów: Jak Boty AI Obciążają Strony WWW

Dziś jeden z naszych serwisów padł ofiarą botów, został wyssany z transferu niczym niczego niespodziewająca się wampirza ofiara - nie komarza, bo komar tyle by nie dał rady wypić - ale o tym dalej.

Powstaje coraz więcej modeli AI, a każdy z nich potrzebuje danych do swojego rozwoju. Oznacza to, że każdy bot musi przynajmniej raz przeskanować internet w poszukiwaniu wiedzy.

Oznacza to niestety nowe wyzwania dla serwerów, administratorów oraz właścicieli sklepów internetowych.

  • Pierwszym jest własność intelektualna treści na stronie i to czy chcemy, aby nasze treści zasilały modele sztucznej inteligencji
  • Drugim jest ogromne obciążenie - które może powodować blokady kont na hostingach albo spowolnienie sklepów.

Podział Botów

Boty do tej pory dzieliliśmy (a przynajmniej ja) na 3 podstawowe typy:

1. Boty związane z popularnymi wyszukiwarkami

Te boty są używane przez największe wyszukiwarki do indeksowania stron internetowych i dostarczania wyników wyszukiwania:

  • Googlebot - Web crawler Google, odpowiedzialny za indeksowanie treści dla wyszukiwarki Google.
  • Bingbot - Web crawler Microsoftu, używany do indeksowania stron dla wyszukiwarki Bing.
  • Yandex Bot - Crawler rosyjskiej wyszukiwarki Yandex.
  • Baiduspider - Crawler chińskiej wyszukiwarki Baidu.
  • DuckDuckBot - Crawler wyszukiwarki DuckDuckGo, znanej z nacisku na prywatność użytkowników.
  • Sogou Spider - Crawler chińskiej wyszukiwarki Sogou, popularnej w Chinach.

2. Boty związane z analizą SEO, linków i struktury internetu

Te boty są używane przez narzędzia SEO do analizy witryn internetowych, struktury linków i dostarczania danych analitycznych:

  • AhrefsBot - Crawler narzędzia Ahrefs, koncentrujący się na zbieraniu danych SEO.
  • SEMrushBot - Crawler narzędzia SEO SEMrush, używany do analizy i indeksowania danych.
  • Majestic-12 (MJ12bot) - Crawler platformy Majestic SEO, gromadzący dane o linkach.
  • CCBot - Crawler organizacji non-profit Common Crawl, dostarczający darmowy indeks stron internetowych do badań i analiz.

3. Boty społecznościowe i reklamowe, związane z handlem, reklamami, social mediami etc.

Te boty są używane przez platformy społecznościowe, serwisy reklamowe i e-commerce do zbierania informacji o stronach internetowych i generowania podglądów treści:

  • Facebook Bot - Crawler używany przez Facebooka do zbierania informacji o stronach udostępnianych na platformie.
  • Twitterbot - Crawler Twittera, odpowiedzialny za generowanie podglądów treści udostępnianych na platformie.
  • Pinterestbot - Crawler używany przez Pinterest do indeksowania obrazów i treści wizualnych.
  • LinkedInBot - Crawler używany przez LinkedIn do zbierania i indeksowania artykułów oraz treści udostępnianych na platformie.
  • Applebot - Crawler Apple, używany do indeksowania treści dla Siri i Spotlight Suggestions.

Obciążenie Serwera przez Bota

Każdy bot odwiedzający stronę raz na 4 sekundy wykonuje:

  • 21,600 zapytań na dobę.

10 botów wykonuje:

  • 216,000 zapytań na dobę (21,600 zapytań × 10 botów).

Taka liczba zapytań może znacząco obciążyć serwer, zwłaszcza gdy działa przez dłuższy czas lub gdy wiele botów działa równocześnie.

Bot wampir terrorysta

Wracając do tematu, dziś mieliśmy (nie)przyjemność gościć bota o nazwie ClaudeBot. Czym jest ClaudeBot, znany również jako Claude? To zaawansowany chatbot AI przez firmę Anthropic. Zapewne mniej znany wszystkim.

Kolokwialnie mówiąc, zarżnął nam serwer. Prawdopodobnie nigdy byśmy tego nie zauważyli, bo na tym serwerze nie mamy żadnych limitów transferu, ani niczego. Lecz uznaję za dobrą praktykę takie limity nałożyć. Dość spore, bo limitem był 1TB danych. Tylko dzięki temu zorientowaliśmy się, że coś jest nie tak.

Dziś, do godziny 18, Claude wykonał 322,968 zapytań, co znacząco obciążyło serwer i wyczerpało dostępny transfer na jednym z naszych kont. Trochę więcej matematyki:

  • Łączna liczba zapytań od listopada: 1,415,322
  • Liczba zapytań w ciągu ostatnich 17 dni: 1,337,928
  • Liczba zapytań dzisiaj (do godziny 18): 322,968

Średnie zapytania na sekundę:

  • Od listopada: około 0.27 zapytań na sekundę
  • W ciągu ostatnich 17 dni: około 0.91 zapytań na sekundę
  • Dzisiaj (do godziny 18): około 6.21 zapytań na sekundę

Co zrobić z niegrzecznymi botami?

Zapewne wielu z Was zna robots.txt - plik, w którym definiujemy, jak sobie życzymy, aby boty skanowały nasze strony.

Jest to teoretycznie najlepsze rozwiązanie, jeśli nie chcemy blokować każdego adresu IP, jaki tylko wejdzie na naszą stronę - a tych adresów mogą być setki, a nawet tysiące.

W tym pliku możemy zdefiniować zarówno globalne zasady, jak i zasady per-bot. Pozwala nam to decydować, które boty mogą przeglądać i indeksować nasze strony, a które mają być zablokowane.

Poniżej znajdziesz przykładowy plik robots.txt zawierający instrukcje dla różnych znanych botów, w tym Claude i GPT Bot.

# robots.txt

###
### Najpierw zablokujmy boty AI
### 

# Sogou Spider
User-agent: Sogouspider
Disallow: /

# SEMrushBot
User-agent: SEMrushBot
Disallow: /

# Majestic-12 (MJ12bot)
User-agent: MJ12bot
Disallow: /

# CCBot - AI 
User-agent: CCBot
Disallow: /

# ClaudeBot - AI
User-agent: ClaudeBot
Disallow: /

# GPT Bot - AI
User-agent: GPTBot
Disallow: /

# Googlebot
User-agent: Googlebot
Allow: /

# Bingbot
User-agent: Bingbot
Allow: /

# YandexBot
User-agent: YandexBot
Allow: /

# Baiduspider
User-agent: Baiduspider
Disallow: /

###
### Dozwolone roboty
###

# DuckDuckBot
User-agent: DuckDuckBot
crawl-delay: 5
Allow: /

# Facebook Bot
User-agent: FacebookBot
crawl-delay: 5
Allow: /

# Twitterbot
User-agent: Twitterbot
crawl-delay: 5
Allow: /

# Pinterestbot
User-agent: Pinterestbot
crawl-delay: 5
Allow: /

# LinkedInBot
User-agent: LinkedInBot
crawl-delay: 5
Allow: /

# Applebot
User-agent: Applebot
crawl-delay: 5
Allow: /

# AhrefsBot
User-agent: AhrefsBot
crawl-delay: 5
Allow: /

# Inne boty
User-agent: *
crawl-delay: 5
Allow: /
Disallow: /private/

Opis:

Plik robots.txt pozwala kontrolować, które boty mogą przeglądać i indeksować nasze strony, a które powinny być zablokowane. Dostosowując te zasady, możemy zarządzać obciążeniem serwera i chronić nasze zasoby przed nadmiernym skanowaniem.

Oto opis różnych poleceń. Ale trzeba mieć na uwadze, że roboty mogą, ale nie muszą się ich słuchać. Te grzeczne się posłuchają, te bardziej niesforne mogę zingorować np. Crawl-delay

My już sprawdziliśmy że Claude na pewno posłuchał się polecenia Disallow: /

  • User-agent: Określa bota, do którego odnoszą się poniższe zasady.
  • Disallow: Zakazuje botowi dostępu do określonych części strony (np. Disallow: / zakazuje dostępu do całej strony, a Disallow: /private/ zakazuje dostępu do katalogu "/private/").
  • Allow: Zezwala botowi na dostęp do określonych części strony (np. Allow: / zezwala na dostęp do całej strony).
  • crawl-delay to dyrektywa używana w pliku robots.txt do kontrolowania częstotliwości, z jaką boty indeksujące mogą odwiedzać stronę internetową. Ustawiając wartość crawl-delay, właściciele witryn mogą zmniejszyć obciążenie serwera spowodowane nadmiernymi zapytaniami ze strony botów.