{"id":4015,"date":"2026-06-29T10:39:14","date_gmt":"2026-06-29T08:39:14","guid":{"rendered":"https:\/\/dhosting.pl\/community\/?p=4015"},"modified":"2026-07-22T12:40:53","modified_gmt":"2026-07-22T10:40:53","slug":"jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study","status":"publish","type":"post","link":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/","title":{"rendered":"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Poznaj autora<\/strong><\/h2>\n\n\n\n<p><strong>Andrzej Pi\u0142atowicz<\/strong> \u2013 klient dhosting.pl, w\u0142a\u015bciciel butikowej pracowni Studio Zaiste, od ponad 15 lat zwi\u0105zany z e-commerce. Zaczyna\u0142 od UX\/UI i designu: projektowania interfejs\u00f3w, architektury informacji i optymalizacji konwersji. Z czasem przeszed\u0142 w stron\u0119 web developmentu oraz rozwoju stron, sklep\u00f3w i narz\u0119dzi AI. Dzi\u0119ki temu na projekty patrzy ca\u0142o\u015bciowo, \u0142\u0105cz\u0105c perspektyw\u0119 biznesow\u0105, techniczn\u0105 i u\u017cytkow\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Wst\u0119p<\/strong><\/h2>\n\n\n\n<p>Boty internetowe nie s\u0105 nowym problemem. Od lat po stronach chodz\u0105 crawlery wyszukiwarek, narz\u0119dzia SEO, scrapery cenowe czy automaty zbieraj\u0105ce tre\u015bci. W ostatnim czasie coraz wi\u0119kszym wyzwaniem staj\u0105 si\u0119 jednak boty zwi\u0105zane z AI &#8211; szczeg\u00f3lnie wtedy, gdy trafiaj\u0105 na rozbudowane sklepy WooCommerce z du\u017c\u0105 liczb\u0105 filtr\u00f3w, parametr\u00f3w i dynamicznie generowanych adres\u00f3w URL.<\/p>\n\n\n\n<p>W tym case study pokazujemy, jak jeden ze sklep\u00f3w WooCommerce po migracji na dhosting.pl zacz\u0105\u0142 mierzy\u0107 si\u0119 z nag\u0142ym wzrostem obci\u0105\u017cenia, dlaczego samo zwi\u0119kszenie zasob\u00f3w nie rozwi\u0105za\u0142o problemu i jak uda\u0142o si\u0119 ograniczy\u0107 sztuczny ruch przy pomocy kilku warstw ochrony: Cloudflare, regu\u0142 na poziomie serwera, w\u0142asnego pluginu WordPress oraz pliku robots.txt. <strong>Warto doda\u0107, \u017ce na poprzednim hostingu ca\u0142y serwis dzia\u0142a\u0142&nbsp;wolno i nie by\u0142o mo\u017cliwo\u015bci sprawdzenia dlaczego &#8211; w hostingu EWH klient widzi m.in. obci\u0105\u017cenie procesora.&nbsp;<\/strong><\/p>\n\n\n\n<p>To nie jest uniwersalna recepta do bezrefleksyjnego skopiowania 1:1. To raczej praktyczny przyk\u0142ad diagnozy i podej\u015bcia \u201edefense in depth\u201d, czyli kilku warstw zabezpiecze\u0144, z kt\u00f3rych ka\u017cda \u0142apie inny typ niepo\u017c\u0105danego ruchu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pocz\u0105tek problemu: migracja, szybki start i nag\u0142e spowolnienie<\/strong><\/h2>\n\n\n\n<p>Historia zacz\u0119\u0142a si\u0119 do\u015b\u0107 zwyczajnie: od migracji sklepu WooCommerce z innego hostingu na dhosting.pl.<\/p>\n\n\n\n<p>Sama migracja przebieg\u0142a bezproblemowo. Sklep zosta\u0142 przeniesiony, sprawdzony i po oko\u0142o 30 minutach dzia\u0142a\u0142 ju\u017c na nowym \u015brodowisku. Pocz\u0105tkowo wszystko wygl\u0105da\u0142o dobrze &#8211; strona \u0142adowa\u0142a si\u0119 poprawnie, sklep dzia\u0142a\u0142 stabilnie, a podstawowe testy nie wykazywa\u0142y problem\u00f3w.<\/p>\n\n\n\n<p>Po dw\u00f3ch dniach m\u00f3j klient zg\u0142osi\u0142 jednak, \u017ce strona zacz\u0119\u0142a dzia\u0142a\u0107 wolno. Czas \u0142adowania podstron wynosi\u0142 momentami od kilkunastu do nawet kilkudziesi\u0119ciu sekund. Po wej\u015bciu do dPanelu okaza\u0142o si\u0119, \u017ce obci\u0105\u017cenie CPU wyra\u017anie wzros\u0142o wzgl\u0119dem pierwszych dni po migracji i utrzymywa\u0142o si\u0119 na podwy\u017cszonym poziomie.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"984\" height=\"464\" src=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image1.png\" alt=\"\" class=\"wp-image-4024\" srcset=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image1.png 984w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image1-300x141.png 300w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image1-768x362.png 768w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image1-696x328.png 696w\" sizes=\"(max-width: 984px) 100vw, 984px\" \/><\/a><\/figure>\n\n\n\n<p>Pierwsz\u0105 reakcj\u0105 by\u0142o w\u0142\u0105czenie dodatkowych zasob\u00f3w w ramach Elastycznego Skalowania. To wa\u017cna funkcja po stronie hostingu, bo pozwala klientowi zwi\u0119kszy\u0107 dost\u0119pne zasoby, takie jak CPU, RAM czy przestrze\u0144 dyskowa. Podniesienie zasob\u00f3w pozwoli\u0142o utrzyma\u0107 sklep w dzia\u0142aniu na czas diagnozy, ale nie usuwa\u0142o przyczyny: obci\u0105\u017cenie nadal by\u0142o bardzo wysokie.<\/p>\n\n\n\n<p>To by\u0142 pierwszy sygna\u0142, \u017ce problemem nie jest wy\u0142\u0105cznie \u201eza ma\u0142y serwer\u201d, ale co\u015b, co generuje nienaturalnie du\u017cy i kosztowny ruch. W badanym sklepie wykorzystano mi\u0119dzy innymi:<\/p>\n\n\n\n<ul>\n<li>WordPress,<\/li>\n\n\n\n<li>WooCommerce,<\/li>\n\n\n\n<li>ACF Pro,<\/li>\n\n\n\n<li>dedykowany szablon,<\/li>\n\n\n\n<li>cz\u0119\u015b\u0107 wtyczek z repozytorium WordPressa,<\/li>\n\n\n\n<li>cz\u0119\u015b\u0107 wtyczek napisanych indywidualnie,<\/li>\n\n\n\n<li>\u0142\u0105cznie oko\u0142o 30 wtyczek.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Dlaczego boty AI s\u0105 problemem dla sklep\u00f3w WooCommerce?<\/strong><\/h2>\n\n\n\n<p>Dla u\u017cytkownika problem wygl\u0105da prosto: \u201estrona muli\u201d. Po stronie serwera sytuacja jest jednak bardziej z\u0142o\u017cona.<\/p>\n\n\n\n<p>Cz\u0142owiek odwiedzaj\u0105cy sklep zwykle zachowuje si\u0119 przewidywalnie. Wchodzi na stron\u0119 g\u0142\u00f3wn\u0105, otwiera kilka kategorii, sprawdza par\u0119 produkt\u00f3w, mo\u017ce u\u017cywa filtr\u00f3w, a potem wychodzi albo sk\u0142ada zam\u00f3wienie. Bot dzia\u0142a inaczej.<\/p>\n\n\n\n<p>Crawler potrafi wej\u015b\u0107 we wszystko, co znajdzie na stronie: menu, kategorie, wpisy blogowe, produkty, parametry sortowania, paginacj\u0119, wyszukiwark\u0119 i filtry. W WooCommerce filtry s\u0105 szczeg\u00f3lnie problematyczne, bo mog\u0105 generowa\u0107 ogromn\u0105 liczb\u0119 kombinacji adres\u00f3w URL.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1012\" height=\"518\" src=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image3.png\" alt=\"\" class=\"wp-image-4026\" srcset=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image3.png 1012w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image3-300x154.png 300w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image3-768x393.png 768w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image3-696x356.png 696w\" sizes=\"(max-width: 1012px) 100vw, 1012px\" \/><\/a><\/figure>\n\n\n\n<p>Przyk\u0142ad? Sklep mo\u017ce mie\u0107 kilkaset realnych produkt\u00f3w, ale je\u015bli ka\u017cdy produkt da si\u0119 filtrowa\u0107 po kolorze, rozmiarze, marce, cenie, etykiecie, parametrze technicznym czy sortowaniu, to liczba mo\u017cliwych adres\u00f3w URL ro\u015bnie bardzo szybko. Z pozornie niewielkiego katalogu mo\u017ce powsta\u0107 kilkadziesi\u0105t tysi\u0119cy, a czasem nawet wi\u0119cej unikalnych adres\u00f3w.<\/p>\n\n\n\n<p>Dla bota ka\u017cdy taki adres wygl\u0105da jak osobna podstrona do odwiedzenia.<\/p>\n\n\n\n<p>To w\u0142a\u015bnie tzw. <strong>crawl trap<\/strong>, czyli pu\u0142apka indeksowania. Bot wpada w system filtr\u00f3w i zaczyna metodycznie odwiedza\u0107 kolejne kombinacje adres\u00f3w, kt\u00f3re z punktu widzenia realnego u\u017cytkownika cz\u0119sto nie maj\u0105 \u017cadnej warto\u015bci.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Dlaczego cache nie zawsze pomaga?<\/strong><\/h2>\n\n\n\n<p>W normalnym ruchu page cache potrafi znacz\u0105co odci\u0105\u017cy\u0107 serwer. Je\u017celi wielu u\u017cytkownik\u00f3w odwiedza t\u0119 sam\u0105 stron\u0119 produktu albo kategori\u0119, cache mo\u017ce poda\u0107 gotow\u0105 wersj\u0119 strony bez ka\u017cdorazowego uruchamiania PHP, zapyta\u0144 do bazy danych i renderowania ca\u0142ego widoku. Problem zaczyna si\u0119 wtedy, gdy bot generuje tysi\u0105ce unikalnych adres\u00f3w.<\/p>\n\n\n\n<p>Dla cache\u2019a ka\u017cdy nowy adres URL to potencjalnie \u015bwie\u017ce \u017c\u0105danie. Je\u017celi adres nie by\u0142 wcze\u015bniej odwiedzony, cache nie ma gotowej odpowiedzi. W efekcie \u017c\u0105danie przechodzi pe\u0142n\u0105 \u015bcie\u017ck\u0119:<\/p>\n\n\n\n<ol>\n<li>uruchomienie PHP,<\/li>\n\n\n\n<li>za\u0142adowanie WordPressa,<\/li>\n\n\n\n<li>za\u0142adowanie WooCommerce,<\/li>\n\n\n\n<li>wykonanie zapyta\u0144 do bazy danych,<\/li>\n\n\n\n<li>przeliczenie filtr\u00f3w,<\/li>\n\n\n\n<li>wyrenderowanie strony od zera.<\/li>\n<\/ol>\n\n\n\n<p>Przy realnym ruchu u\u017cytkownik\u00f3w wi\u0119kszo\u015b\u0107 odwiedzin mo\u017ce by\u0107 tania dla serwera. Przy botach chodz\u0105cych po tysi\u0105cach kombinacji filtr\u00f3w niemal ka\u017cde wej\u015bcie mo\u017ce by\u0107 kosztowne. Efekt? Procesor pracuje na wysokim obci\u0105\u017ceniu, mimo \u017ce liczba prawdziwych klient\u00f3w na stronie wcale nie musi by\u0107 du\u017ca. <\/p>\n\n\n\n<p>Co wa\u017cne, takiego ruchu cz\u0119sto nie wida\u0107 w Google Analytics ani podobnych narz\u0119dziach analitycznych. One pokazuj\u0105 g\u0142\u00f3wnie zachowania u\u017cytkownik\u00f3w, a nie pe\u0142ny obraz \u017c\u0105da\u0144 trafiaj\u0105cych do serwera. Pe\u0142ny obraz wida\u0107 dopiero w logach serwera albo statystykach hostingu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Czy boty nale\u017cy blokowa\u0107?<\/strong><\/h2>\n\n\n\n<p>Najprostsza odpowied\u017a brzmi: to zale\u017cy. Nie ka\u017cdy bot ma tak\u0105 sam\u0105 warto\u015b\u0107 i nie ka\u017cdy generuje taki sam koszt. Cz\u0119\u015b\u0107 z nich mo\u017ce by\u0107 ca\u0142kowicie zb\u0119dna dla danego sklepu, cz\u0119\u015b\u0107 mo\u017ce wspiera\u0107 widoczno\u015b\u0107 tre\u015bci w wyszukiwarkach lub narz\u0119dziach AI, a cz\u0119\u015b\u0107 mo\u017ce by\u0107 po prostu agresywnym scraperem, kt\u00f3ry nie wnosi (w danym momencie) \u017cadnej warto\u015bci biznesowej.<\/p>\n\n\n\n<p>Warto przy tym pami\u0119ta\u0107 o szerszym trendzie: coraz wi\u0119cej os\u00f3b szuka produkt\u00f3w i us\u0142ug nie w Google, ale pytaj\u0105c asystent\u00f3w AI. Strona ca\u0142kowicie odci\u0119ta od bot\u00f3w AI z czasem znika z odpowiedzi, rekomendacji i por\u00f3wna\u0144 generowanych przez te narz\u0119dzia. Dlatego <strong>celem nie jest blokada ruchu AI jako takiego, tylko odci\u0119cie tej jego cz\u0119\u015bci, kt\u00f3ra generuje koszt bez warto\u015bci<\/strong>.<\/p>\n\n\n\n<p><strong>Dlatego problemem nie jest samo blokowanie bot\u00f3w, tylko blokowanie ich bez \u015bwiadomo\u015bci, co dok\u0142adnie odcinamy.<\/strong> W praktyce warto patrze\u0107 na boty selektywnie:<\/p>\n\n\n\n<ul>\n<li>kt\u00f3re boty generuj\u0105 du\u017cy ruch,<\/li>\n\n\n\n<li>kt\u00f3re trafiaj\u0105 w kosztowne endpointy,<\/li>\n\n\n\n<li>kt\u00f3re odwiedzaj\u0105 filtry, wyszukiwark\u0119, koszyk lub panel administracyjny,<\/li>\n\n\n\n<li>kt\u00f3re mog\u0105 mie\u0107 warto\u015b\u0107 dla widoczno\u015bci sklepu,<\/li>\n\n\n\n<li>kt\u00f3re s\u0105 wy\u0142\u0105cznie obci\u0105\u017ceniem.<\/li>\n<\/ul>\n\n\n\n<p>Dopiero na tej podstawie mo\u017cna zdecydowa\u0107, czy danego bota dopu\u015bci\u0107, ograniczy\u0107, czy ca\u0142kowicie zablokowa\u0107.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Warstwa 1: Cloudflare<\/strong><\/h3>\n\n\n\n<p>Pierwszym krokiem by\u0142o wpi\u0119cie Cloudflare. Klient wcze\u015bniej z niego nie korzysta\u0142, a nawet darmowa wersja daje sporo mo\u017cliwo\u015bci analizy i filtrowania ruchu. Po pod\u0142\u0105czeniu Cloudflare wdro\u017cono kilka regu\u0142 bezpiecze\u0144stwa w sekcji: <strong>Cloudflare \u2192 Security \u2192 Security Rules<\/strong><\/p>\n\n\n\n<p>Strategia by\u0142a dwupoziomowa: najpierw odci\u0105\u0107 oczywi\u015bcie niepotrzebny ruch geograficzny, a nast\u0119pnie ograniczy\u0107 boty chodz\u0105ce po filtrach i ci\u0119\u017ckich endpointach.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Regu\u0142a 1: blokada wybranych kontynent\u00f3w<\/strong><\/h3>\n\n\n\n<p>Pierwsza regu\u0142a blokowa\u0142a ruch spoza Europy i Ameryki P\u00f3\u0142nocnej. Warto od razu zaznaczy\u0107: g\u0142\u00f3wne crawlery, takie jak Googlebot, GPTBot czy ClaudeBot, skanuj\u0105 w\u0142a\u015bnie z Ameryki P\u00f3\u0142nocnej, wi\u0119c ta regu\u0142a z za\u0142o\u017cenia ich nie dotyczy. Geoblok s\u0142u\u017cy do odsiania \u015bmieciowego ruchu z pozosta\u0142ych region\u00f3w, a nie do walki z botami AI.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(ip.src.continent in {\"AF\" \"AN\" \"AS\" \"OC\" \"SA\" \"T1\"})\nAkcja:\nBlock<\/code><\/pre>\n\n\n\n<p>W tym konkretnym przypadku by\u0142a to \u015bwiadoma decyzja biznesowa. Sklep sprzedawa\u0142 wy\u0142\u0105cznie na rynek polski, wi\u0119c ruch z Azji, Afryki, Oceanii czy Ameryki Po\u0142udniowej na stronach produktowych by\u0142 uznany za ma\u0142o warto\u015bciowy i w du\u017cej cz\u0119\u015bci podejrzany.<\/p>\n\n\n\n<p>To oczywi\u015bcie nie jest regu\u0142a dla ka\u017cdego sklepu. Je\u017celi sklep sprzedaje globalnie, taki geoblok m\u00f3g\u0142by zaszkodzi\u0107 sprzeda\u017cy. Ale przy sklepie nastawionym wy\u0142\u0105cznie na Polsk\u0119 by\u0142 to akceptowalny kompromis.<\/p>\n\n\n\n<p>Geoblok jest wi\u0119c tylko pierwsz\u0105 warstw\u0105 odsiewania, przygotowuj\u0105c\u0105 grunt pod kolejne regu\u0142y.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Regu\u0142a 2: Managed Challenge na filtrach<\/strong><\/h3>\n\n\n\n<p>Druga regu\u0142a celowa\u0142a w endpointy generuj\u0105ce crawl trap. W tym sklepie filtry obs\u0142ugiwa\u0142a w\u0142asna wtyczka, kt\u00f3ra generowa\u0142a adresy zawieraj\u0105ce \/f\/.<\/p>\n\n\n\n<p>Regu\u0142a wygl\u0105da\u0142a wi\u0119c tak:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(http.request.uri.path contains \"\/f\/\")\nAkcja:\nManaged Challenge<\/code><\/pre>\n\n\n\n<p>W przypadku innych popularnych rozwi\u0105za\u0144 adresy filtr\u00f3w mog\u0105 wygl\u0105da\u0107 inaczej. Dla przyk\u0142adu przy niekt\u00f3rych konfiguracjach filtr\u00f3w w URL-ach mog\u0105 pojawia\u0107 si\u0119 segmenty \u0142\u0105czone przez -or-.<\/p>\n\n\n\n<p>Wtedy regu\u0142a mo\u017ce wygl\u0105da\u0107 tak:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(http.request.uri.path contains \"-or-\")\nAkcja r\u00f3wnie\u017c:\nManaged Challenge<\/code><\/pre>\n\n\n\n<p>Dlaczego nie twarde Block?<\/p>\n\n\n\n<p>Bo filtry s\u0105 potrzebne realnym klientom. Gdyby zablokowa\u0107 je ca\u0142kowicie, u\u017cytkownicy mogliby straci\u0107 mo\u017cliwo\u015b\u0107 normalnego korzystania ze sklepu. Managed Challenge pozwala przerzuci\u0107 decyzj\u0119 na Cloudflare. Prawdziwy u\u017cytkownik w przegl\u0105darce zwykle przechodzi weryfikacj\u0119 automatycznie, natomiast prosty bot bez obs\u0142ugi JavaScriptu, cookies i sesji mo\u017ce utkn\u0105\u0107 na wyzwaniu.<\/p>\n\n\n\n<p>To dobry kompromis: nie zabijamy funkcjonalno\u015bci sklepu, ale utrudniamy masowe crawlowanie filtr\u00f3w.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Regu\u0142a 3: twarda blokada zadeklarowanych bot\u00f3w na ci\u0119\u017ckich endpointach<\/strong><\/h3>\n\n\n\n<p>Trzecia regu\u0142a by\u0142a bardziej precyzyjna. \u0141\u0105czy\u0142a dwa warunki:<\/p>\n\n\n\n<ol>\n<li>\u017c\u0105danie trafia w ci\u0119\u017cki endpoint, np. filtry, wyszukiwark\u0119, sortowanie, panel admina,<\/li>\n\n\n\n<li>User-Agent wskazuje, \u017ce mamy do czynienia z botem.<\/li>\n<\/ol>\n\n\n\n<p>Przyk\u0142adowe fragmenty warunk\u00f3w obejmowa\u0142y mi\u0119dzy innymi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http.request.uri.path contains \"\/f\/\"\nhttp.request.uri.path contains \"-or-\"\nhttp.request.uri.query contains \"filter_\"\nhttp.request.uri.query contains \"min_price=\"\nhttp.request.uri.query contains \"max_price=\"\nhttp.request.uri.query contains \"orderby=\"\nhttp.request.uri.query contains \"product_count=\"\nhttp.request.uri.query contains \"dgwt_wcas\"\noraz User-Agenty zawieraj\u0105ce m.in.:\nbot\nspider\ncrawl\ngptbot\namazonbot\napplebot\nperplexity\nclaudebot\nbytespider\nccbot\ncohere-ai<\/code><\/pre>\n\n\n\n<p>W tej regule mo\u017cna by\u0142o zastosowa\u0107 twarde <strong>Block<\/strong>, poniewa\u017c warunek by\u0142 zaw\u0119\u017cony. Nie blokowano wszystkich u\u017cytkownik\u00f3w na filtrach, tylko \u017c\u0105dania, kt\u00f3re jednocze\u015bnie:<\/p>\n\n\n\n<ul>\n<li>trafia\u0142y w problematyczne endpointy,<\/li>\n\n\n\n<li>pochodzi\u0142y od klienta deklaruj\u0105cego si\u0119 jako bot.<\/li>\n<\/ul>\n\n\n\n<p>To istotna r\u00f3\u017cnica. Realny u\u017cytkownik nie wysy\u0142a w User-Agencie warto\u015bci typu GPTBot, ClaudeBot czy Bytespider.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Kolejno\u015b\u0107 regu\u0142 ma znaczenie<\/strong><\/h2>\n\n\n\n<p>W Cloudflare regu\u0142y powinny by\u0107 ustawione tak, aby si\u0119 uzupe\u0142nia\u0142y, a nie przeszkadza\u0142y sobie nawzajem. W tym przypadku kolejno\u015b\u0107 by\u0142a nast\u0119puj\u0105ca:<\/p>\n\n\n\n<ol>\n<li><strong>Geo-block<\/strong> &#8211; najpierw odcina niepotrzebne regiony.<\/li>\n\n\n\n<li><strong>Bot gate<\/strong> &#8211; twardo blokuje zadeklarowane boty na filtrach i ci\u0119\u017ckich endpointach.<\/li>\n\n\n\n<li><strong>Crawler filters<\/strong> &#8211; \u0142apie pozosta\u0142y podejrzany ruch na filtrach przez Managed Challenge.<\/li>\n<\/ol>\n\n\n\n<p>Dzi\u0119ki temu jawne boty dostaj\u0105 <strong>blokad\u0119,<\/strong> ukryte lub mniej oczywiste automaty dostaj\u0105 <strong>wyzwanie<\/strong>, a realni u\u017cytkownicy nadal <strong>korzystaj\u0105 ze sklepu.<\/strong> Po wdro\u017ceniu tych regu\u0142 Cloudflare w ci\u0105gu doby pokaza\u0142 mi\u0119dzy innymi:<\/p>\n\n\n\n<ul>\n<li>oko\u0142o <strong>2,39 tys. zablokowanych \u017c\u0105da\u0144<\/strong> przez blokad\u0119 kontynent\u00f3w,<\/li>\n\n\n\n<li>oko\u0142o <strong>1,82 tys. zablokowanych \u017c\u0105da\u0144<\/strong> przez regu\u0142y dotycz\u0105ce crawler\u00f3w na wyszukiwarce i filtrach.<\/li>\n<\/ul>\n\n\n\n<p>\u0141\u0105cznie da\u0142o to ponad 4 tysi\u0105ce zatrzymanych \u017c\u0105da\u0144 w 24 godziny.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1006\" height=\"186\" src=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image4.png\" alt=\"\" class=\"wp-image-4027\" srcset=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image4.png 1006w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image4-300x55.png 300w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image4-768x142.png 768w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image4-696x129.png 696w\" sizes=\"(max-width: 1006px) 100vw, 1006px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Problem: boty omija\u0142y Cloudflare i uderza\u0142y bezpo\u015brednio w origin<\/strong><\/h2>\n\n\n\n<p>Po wdro\u017ceniu Cloudflare obci\u0105\u017cenie lekko spad\u0142o, ale nie tak mocno, jak mo\u017cna by\u0142o oczekiwa\u0107. W logach serwera nadal by\u0142o wida\u0107 ruch bot\u00f3w. To oznacza\u0142o, \u017ce cz\u0119\u015b\u0107 \u017c\u0105da\u0144 omija Cloudflare i trafia bezpo\u015brednio na serwer \u017ar\u00f3d\u0142owy, czyli origin.<\/p>\n\n\n\n<p>Origin to w\u0142a\u015bciwy serwer, na kt\u00f3rym dzia\u0142a WordPress. Po poprawnym wdro\u017ceniu Cloudflare ruch HTTP\/S powinien przechodzi\u0107 najpierw przez Cloudflare, a dopiero potem do originu. Je\u017celi jednak kto\u015b zna prawdziwy adres IP serwera, mo\u017ce pr\u00f3bowa\u0107 po\u0142\u0105czy\u0107 si\u0119 bezpo\u015brednio, z pomini\u0119ciem ca\u0142ej warstwy ochronnej.<\/p>\n\n\n\n<p>W logach originu wida\u0107 by\u0142o mi\u0119dzy innymi \u017c\u0105dania tego typu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GPTBot GET \/sklep\/f\/... 200 OK\n\nAmazonbot GET \/produkty\/...\/f\/... 200 OK\n\nMeta-externalagent GET \/produkty\/...-or-... 200 OK<\/code><\/pre>\n\n\n\n<p>Najwa\u017cniejszy by\u0142 tutaj kod odpowiedzi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>200 OK<\/code><\/pre>\n\n\n\n<p>Oznacza\u0142 on, \u017ce bot nie zosta\u0142 zablokowany. Serwer wyrenderowa\u0142 pe\u0142n\u0105 stron\u0119, czyli wykona\u0142 kosztown\u0105 prac\u0119. Cloudflare tego ruchu nie widzia\u0142, bo \u017c\u0105dania w og\u00f3le przez niego nie przechodzi\u0142y.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Test diagnostyczny<\/strong><\/h2>\n\n\n\n<p>Problem potwierdzi\u0142 prosty test.<\/p>\n\n\n\n<p>\u017b\u0105danie przez Cloudflare:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -I -A \"GPTBot\" https:\/\/&#91;domena-sklepu]\/sklep\/f\/test\/\nOdpowied\u017a:\nHTTP\/2 403\n\u017b\u0105danie bezpo\u015brednio na origin, z pomini\u0119ciem Cloudflare:\ncurl -I --resolve &#91;domena-sklepu]:443:&lt;origin-ip&gt; -A \"GPTBot\" https:\/\/&#91;domena-sklepu]\/sklep\/f\/test\/\nOdpowied\u017a:\nHTTP\/2 200<\/code><\/pre>\n\n\n\n<p>Wniosek by\u0142 prosty: Cloudflare dzia\u0142a\u0142 poprawnie dla ruchu, kt\u00f3ry przez niego przechodzi\u0142. Problemem by\u0142 ruch bezpo\u015bredni na origin.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Sk\u0105d boty mog\u0105 zna\u0107 adres IP originu?<\/strong><\/h2>\n\n\n\n<p>W materiale wskazano kilka mo\u017cliwych \u017ar\u00f3de\u0142:<\/p>\n\n\n\n<ul>\n<li>subdomeny pocztowe, takie jak imap, smtp czy poczta, kt\u00f3re cz\u0119sto nie s\u0105 proxowane przez Cloudflare,<\/li>\n\n\n\n<li>publiczne logi Certificate Transparency,<\/li>\n\n\n\n<li>bazy passive DNS przechowuj\u0105ce historyczne rekordy A,<\/li>\n\n\n\n<li>nag\u0142\u00f3wki SMTP w wiadomo\u015bciach wychodz\u0105cych.<\/li>\n<\/ul>\n\n\n\n<p>Niezale\u017cnie od \u017ar\u00f3d\u0142a efekt jest ten sam: je\u017celi bot zna prawdziwy adres IP serwera, mo\u017ce pr\u00f3bowa\u0107 omin\u0105\u0107 Cloudflare. Dlatego sama konfiguracja na poziomie CDN\/WAF nie wystarczy\u0142a. Trzeba by\u0142o domkn\u0105\u0107 ochron\u0119 tak\u017ce na poziomie serwera.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Warstwa 2: blokada na poziomie <\/strong><strong>.htaccess<\/strong><\/h2>\n\n\n\n<p>Kolejnym krokiem by\u0142o dodanie regu\u0142 w .htaccess. To wa\u017cna warstwa, bo dzia\u0142a wcze\u015bniej ni\u017c WordPress. \u017b\u0105danie mo\u017ce zosta\u0107 odrzucone przez Apache\/LiteSpeed zanim uruchomi si\u0119 PHP, WooCommerce, motyw i wtyczki.<\/p>\n\n\n\n<p>Wdro\u017cono dwa typy blokad:<\/p>\n\n\n\n<ol>\n<li><strong>hard block<\/strong> &#8211; dla bot\u00f3w uznanych za niewnosz\u0105ce warto\u015bci dla sklepu,<\/li>\n\n\n\n<li><strong>soft block<\/strong> &#8211; dla bot\u00f3w AI tylko na ci\u0119\u017ckich endpointach.<\/li>\n<\/ol>\n\n\n\n<p>Przyk\u0142adowa konfiguracja:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RewriteEngine On\n# Hard block - boty bez warto\u015bci dla sklepu\nRewriteCond %{HTTP_USER_AGENT} (Amazonbot|Bytespider|meta-externalagent|meta-webindexer|FacebookBot|CCBot|PetalBot|MJ12bot|DotBot|Sogou|SeznamBot|Baiduspider) &#91;NC]\nRewriteRule .* - &#91;F,L]\n# Soft block - AI boty blokowane tylko na ci\u0119\u017ckich endpointach\nRewriteCond %{HTTP_USER_AGENT} (GPTBot|ClaudeBot|PerplexityBot) &#91;NC]\nRewriteCond %{REQUEST_URI} (\/f\/|-or-|\/koszyk|\/zamowienie|\/moje-konto|\/wp-admin|\/wp-json) &#91;OR]\nRewriteCond %{QUERY_STRING} (wc-ajax=|filter_|min_price=|max_price=|orderby=|product_count=|dgwt_wcas|^s=)\nRewriteRule .* - &#91;F,L]<\/code><\/pre>\n\n\n\n<p>Podej\u015bcie by\u0142o selektywne. Boty takie jak Amazonbot, Bytespider, crawlery Meta czy agresywne scrapery SEO zosta\u0142y zablokowane twardo. W tym sklepie, sprzedaj\u0105cym wy\u0142\u0105cznie na rynek polski, w\u0142a\u015bciciel oceni\u0142, \u017ce ruch Amazonbota nie przek\u0142ada si\u0119 na \u017cadn\u0105 warto\u015b\u0107 biznesow\u0105. Dla sklep\u00f3w obecnych na Amazon lub licz\u0105cych na widoczno\u015b\u0107 w Amazon Search i asystencie Rufus ta ocena mo\u017ce wygl\u0105da\u0107 zupe\u0142nie inaczej, dlatego to decyzja do podj\u0119cia indywidualnie, a nie uniwersalna rekomendacja. <\/p>\n\n\n\n<p>Natomiast boty AI, takie jak GPTBot, ClaudeBot czy PerplexityBot, by\u0142y blokowane tylko na ci\u0119\u017ckich endpointach:<\/p>\n\n\n\n<ul>\n<li>filtrach produktowych,<\/li>\n\n\n\n<li>kombinacjach -or-,<\/li>\n\n\n\n<li>koszyku,<\/li>\n\n\n\n<li>checkoucie,<\/li>\n\n\n\n<li>panelu u\u017cytkownika,<\/li>\n\n\n\n<li>\/wp-admin,<\/li>\n\n\n\n<li>\/wp-json,<\/li>\n\n\n\n<li>parametrach sortowania i wyszukiwania.<\/li>\n<\/ul>\n\n\n\n<p>Strony produkt\u00f3w, kategorii i tre\u015bci blogowe mog\u0142y pozosta\u0107 dla nich dost\u0119pne. To najwa\u017cniejsza zasada ca\u0142ego wdro\u017cenia: <strong>nie blokowa\u0107 wszystkiego, tylko odci\u0105\u0107 botom dost\u0119p do miejsc, kt\u00f3re generuj\u0105 najwi\u0119kszy koszt i najmniejsz\u0105 warto\u015b\u0107.<\/strong> Dzi\u0119ki temu sklep pozostaje widoczny w odpowiedziach i rekomendacjach narz\u0119dzi AI, bo boty nadal maj\u0105 dost\u0119p do tre\u015bci, kt\u00f3re faktycznie maj\u0105 warto\u015b\u0107, a jednocze\u015bnie przestaj\u0105 kr\u0105\u017cy\u0107 po tysi\u0105cach kombinacji filtr\u00f3w, kt\u00f3re warto\u015bci nie maj\u0105 \u017cadnej.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Warstwa 3: w\u0142asny plugin WordPress<\/strong><\/h2>\n\n\n\n<p>Ostatni\u0105 warstw\u0105 by\u0142 w\u0142asny plugin WordPress. Jego zadaniem by\u0142o z\u0142apanie przypadk\u00f3w, kt\u00f3re przesz\u0142y przez wcze\u015bniejsze sita, oraz dodanie prostego rate limitu dla bot\u00f3w, kt\u00f3re nadal mia\u0142y dost\u0119p do wybranych cz\u0119\u015bci strony.<\/p>\n\n\n\n<p>Plugin dzia\u0142a\u0142 bardzo wcze\u015bnie, na hooku plugins_loaded z priorytetem 1, czyli zanim za\u0142aduje si\u0119 motyw, wi\u0119kszo\u015b\u0107 wtyczek i ci\u0119\u017cka logika WooCommerce.<\/p>\n\n\n\n<p>Uproszczony fragment mechanizmu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_action('plugins_loaded', function() {\n$ua_lower = strtolower($_SERVER&#91;'HTTP_USER_AGENT'] ?? '');\n$ip = $_SERVER&#91;'REMOTE_ADDR'] ?? 'unknown';\n\/\/ Hard block + tarpit\n\nforeach ($hard_block as $bot) {\nif (strpos($ua_lower, $bot) !== false) {\nsleep(rand(3, 8));\nhttp_response_code(403);\nheader('Retry-After: 86400');\nexit('Access denied');\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;}\n\n\/\/ Soft block dla AI bot\u00f3w - tylko na ci\u0119\u017ckich endpointach\n\nforeach ($ai_bots as $bot) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (strpos($ua_lower, $bot) !== false) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$should_block =\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strpos($uri, '\/f\/') !== false ||\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strpos($uri, '-or-') !== false ||\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match('\/wc-ajax=|filter_|orderby=\/', $query);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($should_block) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http_response_code(429);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit('Rate limited');\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apply_rate_limit($ip, $bot, 30, 60);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;}\n}, 1);<\/code><\/pre>\n\n\n\n<p>Plugin realizowa\u0142 trzy funkcje.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Tarpit dla wybranych bot\u00f3w<\/strong><\/h2>\n\n\n\n<p>Dla bot\u00f3w z grupy hard block zastosowano tzw. tarpit, czyli kr\u00f3tkie op\u00f3\u017anienie przed zwr\u00f3ceniem odpowiedzi 403.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sleep(rand(3, 8));<\/code><\/pre>\n\n\n\n<p>Z perspektywy bota oznacza to wolniejsz\u0105 odpowied\u017a. Z perspektywy CPU koszt jest niski, bo proces w tym czasie \u201e\u015bpi\u201d.<\/p>\n\n\n\n<p>Trzeba jednak bardzo uwa\u017ca\u0107 z takim mechanizmem. \u015api\u0105cy proces nadal zajmuje workera PHP. Przy bocie wysy\u0142aj\u0105cym wiele r\u00f3wnoleg\u0142ych \u017c\u0105da\u0144 zbyt d\u0142ugi sleep mo\u017ce zaszkodzi\u0107 stronie, bo zajmie pul\u0119 worker\u00f3w potrzebn\u0105 realnym u\u017cytkownikom.<\/p>\n\n\n\n<p>Dlatego w tym wdro\u017ceniu tarpit zastosowano tylko dla wybranych bot\u00f3w i tylko jako element hard blocku. Na hostingu wsp\u00f3\u0142dzielonym, gdzie liczba r\u00f3wnoleg\u0142ych proces\u00f3w PHP jest ograniczona, <strong>tarpit nale\u017cy stosowa\u0107 bardzo ostro\u017cnie albo wcale<\/strong>. Bezpieczniejsz\u0105 opcj\u0105 jest szybka odpowied\u017a 403, kt\u00f3ra natychmiast zwalnia proces.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Soft block dla AI bot\u00f3w na ci\u0119\u017ckich endpointach<\/strong><\/h2>\n\n\n\n<p>Dla bot\u00f3w AI zastosowano odpowied\u017a: <strong>Too Many Requests<\/strong><\/p>\n\n\n\n<p>ale tylko wtedy, gdy trafia\u0142y w ci\u0119\u017ckie endpointy: filtry, koszyk, panel administracyjny, API lub parametry generuj\u0105ce dynamiczne widoki.<\/p>\n\n\n\n<p>To wa\u017cne rozr\u00f3\u017cnienie. B\u0142\u0105d 429 komunikuje ograniczenie tempa lub dost\u0119pno\u015bci, ale nie jest tak definitywny jak 403. Dodatkowo odpowied\u017a by\u0142a zwracana szybko, bez op\u00f3\u017anienia, \u017ceby jak najszybciej zwolni\u0107 worker PHP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Rate limit per bot per IP<\/strong><\/h2>\n\n\n\n<p>Dla bot\u00f3w, kt\u00f3re mog\u0142y odwiedza\u0107 dozwolone cz\u0119\u015bci sklepu, wdro\u017cono prosty rate limit per bot i per IP.<\/p>\n\n\n\n<p>Licznik \u017c\u0105da\u0144 by\u0142 przechowywany jako plik JSON w katalogu tymczasowym, bez anga\u017cowania bazy danych. To \u015bwiadomy kompromis: mechanizm nie jest idealny przy du\u017cej wsp\u00f3\u0142bie\u017cno\u015bci, ale jest lekki i nie dok\u0142ada obci\u0105\u017cenia do MySQL. Przyk\u0142adowe limity z materia\u0142u:<\/p>\n\n\n\n<ul>\n<li>GPTBot: 30 \u017c\u0105da\u0144 na minut\u0119,<\/li>\n\n\n\n<li>SemrushBot: 10 \u017c\u0105da\u0144 na minut\u0119,<\/li>\n\n\n\n<li>AhrefsBot: 30 \u017c\u0105da\u0144 na minut\u0119.<\/li>\n<\/ul>\n\n\n\n<p>Warto\u015bci zosta\u0142y dobrane na podstawie tego, co realnie by\u0142o wida\u0107 w logach.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Warstwa 4: <\/strong><strong>robots.txt<\/strong><\/h2>\n\n\n\n<p>Ostatnim elementem by\u0142 plik robots.txt.<\/p>\n\n\n\n<p>Przyk\u0142ad:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User-agent: GPTBot\nDisallow: \/sklep\/f\/\nDisallow: \/produkty\/*\/f\/\nDisallow: \/*-or-*\nDisallow: \/*?orderby=\nDisallow: \/*?filter_*\nUser-agent: ChatGPT-User\nAllow: \/\nUser-agent: Amazonbot\nDisallow: \/\nUser-agent: meta-externalagent\nDisallow: \/<\/code><\/pre>\n\n\n\n<p>Trzeba jednak powiedzie\u0107 jasno: <strong>robots.txt nie jest zabezpieczeniem. To pro\u015bba, nie zapora<\/strong>. Cz\u0119\u015b\u0107 bot\u00f3w respektuje te regu\u0142y, ale cz\u0119\u015b\u0107 je ignoruje. Dotyczy to szczeg\u00f3lnie bot\u00f3w wywo\u0142ywanych na \u017c\u0105danie u\u017cytkownika, takich jak ChatGPT-User czy Perplexity-User, kt\u00f3re pobieraj\u0105 stron\u0119 w momencie, gdy kto\u015b o ni\u0105 zapyta w czacie i nie zawsze sprawdzaj\u0105 robots.txt. To kolejny argument, \u017ceby realn\u0105 ochron\u0119 opiera\u0107 na blokadach serwerowych. W analizowanym przypadku w logach nadal by\u0142o wida\u0107 \u017c\u0105dania do adres\u00f3w, kt\u00f3re zgodnie z intencj\u0105 nie powinny by\u0107 crawlowane. <\/p>\n\n\n\n<p>Warto te\u017c pami\u0119ta\u0107, \u017ce niekt\u00f3re nazwy, jak Applebot-Extended czy anthropic-ai, to tokeny przeznaczone wy\u0142\u0105cznie do pliku robots.txt. Nie wyst\u0119puj\u0105 jako User-Agent w \u017c\u0105daniach HTTP, wi\u0119c dodawanie ich do regu\u0142 .htaccess lub Cloudflare nie zablokuje \u017cadnego ruchu. Je\u017celi chcesz ograniczy\u0107 wykorzystanie tre\u015bci do trenowania modeli Apple, w\u0142a\u015bciwym miejscem jest w\u0142a\u015bnie robots.txt z tokenem Applebot-Extended.<\/p>\n\n\n\n<p>Dlatego robots.txt nale\u017cy traktowa\u0107 jako warstw\u0119 informacyjn\u0105 dla bot\u00f3w dobrej woli. Tward\u0105 ochron\u0119 zapewnia\u0142y dopiero:<\/p>\n\n\n\n<ol>\n<li>Cloudflare,<\/li>\n\n\n\n<li>.htaccess,<\/li>\n\n\n\n<li>plugin WordPress.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Efekt wdro\u017cenia<\/strong><\/h2>\n\n\n\n<p>Poprawa przysz\u0142a w dw\u00f3ch fazach. Pierwsza faza, czyli Cloudflare, da\u0142a widoczny efekt w statystykach zablokowanych \u017c\u0105da\u0144. W ci\u0105gu oko\u0142o 24 godzin Cloudflare zatrzyma\u0142 ponad 4 tysi\u0105ce \u017c\u0105da\u0144 zwi\u0105zanych z geoblokad\u0105 i ruchem crawler\u00f3w na filtrach oraz wyszukiwarce. Wp\u0142yw na CPU by\u0142 jednak ograniczony, bo cz\u0119\u015b\u0107 bot\u00f3w nadal omija\u0142a Cloudflare i uderza\u0142a bezpo\u015brednio w origin.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"360\" src=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image2.png\" alt=\"\" class=\"wp-image-4025\" srcset=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image2.png 1016w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image2-300x106.png 300w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image2-768x272.png 768w, https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/image2-696x247.png 696w\" sizes=\"(max-width: 1016px) 100vw, 1016px\" \/><\/a><\/figure>\n\n\n\n<p>Druga faza, czyli .htaccess oraz plugin WordPress, przynios\u0142a w\u0142a\u015bciwy spadek obci\u0105\u017cenia. Boty omijaj\u0105ce Cloudflare zacz\u0119\u0142y dostawa\u0107 odpowiedzi 403 lub 429 na poziomie serwera albo bardzo wczesnego etapu WordPressa, zanim uruchamia\u0142a si\u0119 ci\u0119\u017cka logika WooCommerce. <\/p>\n\n\n\n<p>Wed\u0142ug danych z wdro\u017cenia <strong>CPU sustained spad\u0142o z oko\u0142o: 5 GHz do oko\u0142o: 1,5 GHz<\/strong> czyli o oko\u0142o 65% wzgl\u0119dem stanu sprzed wdro\u017cenia.<\/p>\n\n\n\n<p>Po ustabilizowaniu sytuacji mo\u017cna by\u0142o wr\u00f3ci\u0107 do pierwotnego limitu rdzeni w panelu hostingu, kt\u00f3ry wcze\u015bniej zosta\u0142 tymczasowo podniesiony na czas diagnozy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ko\u0144cowa architektura ochrony<\/strong><\/h2>\n\n\n\n<p>Ostateczne rozwi\u0105zanie by\u0142o oparte o kilka warstw.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Cloudflare WAF<\/strong><\/h3>\n\n\n\n<p>Cloudflare \u0142apa\u0142 ruch, kt\u00f3ry przechodzi\u0142 przez CDN. Tu dzia\u0142a\u0142y:<\/p>\n\n\n\n<ul>\n<li>regu\u0142y geograficzne,<\/li>\n\n\n\n<li>blokady bot\u00f3w,<\/li>\n\n\n\n<li>Managed Challenge na filtrach,<\/li>\n\n\n\n<li>Custom Rules dla ci\u0119\u017ckich endpoint\u00f3w.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. <\/strong><strong>.htaccess<\/strong><\/h3>\n\n\n\n<p>Regu\u0142y na poziomie Apache\/LiteSpeed \u0142apa\u0142y ruch bezpo\u015bredni na origin, czyli taki, kt\u00f3ry omija\u0142 Cloudflare.<\/p>\n\n\n\n<p>To by\u0142a kluczowa warstwa dla bot\u00f3w uderzaj\u0105cych bezpo\u015brednio w IP serwera.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Plugin WordPress<\/strong><\/h3>\n\n\n\n<p>Plugin obs\u0142ugiwa\u0142 przypadki brzegowe:<\/p>\n\n\n\n<ul>\n<li>tarpit dla wybranych bot\u00f3w,<\/li>\n\n\n\n<li>soft block dla AI bot\u00f3w na kosztownych endpointach,<\/li>\n\n\n\n<li>rate limit per bot per IP.<\/li>\n<\/ul>\n\n\n\n<p>Dzia\u0142a\u0142 bardzo wcze\u015bnie, \u017ceby ograniczy\u0107 koszt obs\u0142ugi niechcianych \u017c\u0105da\u0144.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. <\/strong><strong>robots.txt<\/strong><\/h3>\n\n\n\n<p>robots.txt pe\u0142ni\u0142 rol\u0119 sygna\u0142u dla bot\u00f3w respektuj\u0105cych standard. Nie by\u0142 traktowany jako realna zapora, tylko jako dodatkowa warstwa informacyjna.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Najwa\u017cniejsze wnioski<\/strong><\/h2>\n\n\n\n<p>Najwi\u0119kszy problem nie polega\u0142 na tym, \u017ce sklep mia\u0142 za ma\u0142o zasob\u00f3w. Problemem by\u0142 wzorzec ruchu: boty AI i scrapery trafia\u0142y w dynamiczne adresy generowane przez filtry WooCommerce, powoduj\u0105c tysi\u0105ce kosztownych \u017c\u0105da\u0144, kt\u00f3rych cache nie by\u0142 w stanie skutecznie obs\u0142u\u017cy\u0107.<\/p>\n\n\n\n<p>Samo zwi\u0119kszenie CPU mog\u0142o pom\u00f3c chwilowo, ale nie usuwa\u0142o przyczyny. Samo Cloudflare r\u00f3wnie\u017c nie wystarczy\u0142o, bo cz\u0119\u015b\u0107 ruchu omija\u0142a CDN i trafia\u0142a bezpo\u015brednio na origin.<\/p>\n\n\n\n<p>Dopiero po\u0142\u0105czenie kilku warstw da\u0142o realny efekt:<\/p>\n\n\n\n<ul>\n<li>Cloudflare ograniczy\u0142 ruch przechodz\u0105cy przez CDN,<\/li>\n\n\n\n<li>.htaccess zatrzyma\u0142 boty uderzaj\u0105ce bezpo\u015brednio w serwer,<\/li>\n\n\n\n<li>plugin WordPress doda\u0142 rate limiting i obs\u0142ug\u0119 przypadk\u00f3w brzegowych,<\/li>\n\n\n\n<li>robots.txt przekaza\u0142 instrukcje botom, kt\u00f3re respektuj\u0105 standard.<\/li>\n<\/ul>\n\n\n\n<p>W praktyce najlepszym podej\u015bciem nie okaza\u0142o si\u0119 \u201eblokujemy wszystkie boty\u201d, tylko:<\/p>\n\n\n\n<p><strong>blokujemy botom dost\u0119p do miejsc, kt\u00f3re generuj\u0105 nam najwi\u0119kszy (zb\u0119dny) koszt, a zostawiamy otwarte te cz\u0119\u015bci sklepu, kt\u00f3re mog\u0105 mie\u0107 warto\u015b\u0107 biznesow\u0105.<\/strong><\/p>\n\n\n\n<p>Dla sklep\u00f3w WooCommerce szczeg\u00f3lnie wa\u017cne s\u0105 filtry, sortowania, wyszukiwarka, koszyk, checkout, panel u\u017cytkownika i API. To w\u0142a\u015bnie tam najcz\u0119\u015bciej powstaje crawl trap, kt\u00f3ry potrafi zamieni\u0107 zwyk\u0142y sklep w generator tysi\u0119cy ci\u0119\u017ckich, dynamicznych \u017c\u0105da\u0144.<\/p>\n\n\n\n<p>Ten przypadek dobrze pokazuje, \u017ce ruch bot\u00f3w nie powinien by\u0107 traktowany zero-jedynkowo. Dla jednego sklepu dany crawler mo\u017ce by\u0107 neutralny albo wr\u0119cz po\u017c\u0105dany, dla innego &#8211; ca\u0142kowicie zb\u0119dny. Wszystko zale\u017cy od rynku, typu strony, modelu sprzeda\u017cy, widoczno\u015bci w AI i tego, jak bot zachowuje si\u0119 w praktyce.<\/p>\n\n\n\n<p>Najgorszym scenariuszem jest sytuacja, w kt\u00f3rej w\u0142a\u015bciciel sklepu nie wie, kto odwiedza jego stron\u0119, ile kosztuje go ten ruch i kt\u00f3re boty generuj\u0105 najwi\u0119ksze obci\u0105\u017cenie. <strong>Najlepszym &#8211; gdy mo\u017ce zobaczy\u0107 najaktywniejsze boty i \u015bwiadomie zdecydowa\u0107, <\/strong>kt\u00f3re z nich chce dopu\u015bci\u0107, a kt\u00f3re nie maj\u0105 dla niego \u017cadnej warto\u015bci.<\/p>\n\n\n\n<p><strong><strong>Od redakcji dhosting<\/strong><\/strong><\/p>\n\n\n\n<p>Cz\u0119\u015b\u0107 opisanej w tym case study ochrony <strong>zrealizujesz dzi\u015b bezpo\u015brednio w dPanelu<\/strong>. Serwerow\u0105 blokad\u0119 wybranych bot\u00f3w po User-Agencie, kt\u00f3r\u0105 autor skonfigurowa\u0142 r\u0119cznie w .htaccess, w\u0142\u0105czysz w sekcji Boty AI jednym prze\u0142\u0105cznikiem, bez edycji plik\u00f3w konfiguracyjnych i bez wiedzy technicznej. Blokada dzia\u0142a na poziomie serwera, wi\u0119c obejmuje tak\u017ce ruch omijaj\u0105cy Cloudflare i trafiaj\u0105cy bezpo\u015brednio w origin, a zablokowany bot otrzymuje odpowied\u017a 403, zanim uruchomi si\u0119 PHP i WordPress.<\/p>\n\n\n\n<p>Sekcj\u0119 znajdziesz w dPanelu: Strony WWW, wybierz stron\u0119, Boty AI. Przy ka\u017cdym bocie zobaczysz opis jego dzia\u0142ania oraz nasz\u0105 rekomendacj\u0119, a blokad\u0119 w\u0142\u0105czysz i wy\u0142\u0105czysz w dowolnym momencie, osobno dla ka\u017cdej strony www. Domy\u015blnie wszystkie boty pozostaj\u0105 dozwolone. To Ty decydujesz, kt\u00f3re z nich maj\u0105 dost\u0119p do Twojej strony. Instrukcj\u0119 krok po kroku ze zrzutami ekranu znajdziesz w artykule <a href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/aktywacja-blokady-botow-ai-w-dpanelu\/\">Aktywacja blokady bot\u00f3w AI w dPanelu<\/a>.<\/p>\n\n\n\n<p>Bardziej zaawansowane elementy, takie jak regu\u0142y warunkowe na ci\u0119\u017ckich endpointach czy rate limiting, nadal wymagaj\u0105 w\u0142asnej konfiguracji, dok\u0142adnie takiej, jak\u0105 opisa\u0142 autor. Przegl\u0105d dodatkowych warstw ochrony (robots.txt, metatagi, TDMRep, twarda blokada na serwerze) zebrali\u015bmy w poradniku <a href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/jak-w-uniwersalny-sposob-blokowac-boty-ai-i-llm-na-stronie-www\/\">Jak w uniwersalny spos\u00f3b blokowa\u0107 boty AI i LLM na stronie WWW<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Poznaj autora Andrzej Pi\u0142atowicz \u2013 klient dhosting.pl, w\u0142a\u015bciciel butikowej pracowni Studio Zaiste, od ponad 15 lat zwi\u0105zany z e-commerce. Zaczyna\u0142 od UX\/UI i designu: projektowania interfejs\u00f3w, architektury informacji i optymalizacji konwersji. Z czasem przeszed\u0142 w stron\u0119 web developmentu oraz rozwoju stron, sklep\u00f3w i narz\u0119dzi AI. Dzi\u0119ki temu na projekty patrzy ca\u0142o\u015bciowo, \u0142\u0105cz\u0105c perspektyw\u0119 biznesow\u0105, techniczn\u0105 [&hellip;]<\/p>\n","protected":false},"author":42,"featured_media":4074,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study | dhosting.pl Community<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study | dhosting.pl Community\" \/>\n<meta property=\"og:description\" content=\"Poznaj autora Andrzej Pi\u0142atowicz \u2013 klient dhosting.pl, w\u0142a\u015bciciel butikowej pracowni Studio Zaiste, od ponad 15 lat zwi\u0105zany z e-commerce. Zaczyna\u0142 od UX\/UI i designu: projektowania interfejs\u00f3w, architektury informacji i optymalizacji konwersji. Z czasem przeszed\u0142 w stron\u0119 web developmentu oraz rozwoju stron, sklep\u00f3w i narz\u0119dzi AI. Dzi\u0119ki temu na projekty patrzy ca\u0142o\u015bciowo, \u0142\u0105cz\u0105c perspektyw\u0119 biznesow\u0105, techniczn\u0105 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/\" \/>\n<meta property=\"og:site_name\" content=\"dhosting.pl Community\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dhostingpl\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-29T08:39:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-22T10:40:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Piotr Pantkowski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dhosting_pl\" \/>\n<meta name=\"twitter:site\" content=\"@dhosting_pl\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Piotr Pantkowski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/\"},\"author\":{\"name\":\"Piotr Pantkowski\",\"@id\":\"https:\/\/dhosting.pl\/community\/#\/schema\/person\/84c432bbfd7263ae4364615c3379b68c\"},\"headline\":\"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study\",\"datePublished\":\"2026-06-29T08:39:14+00:00\",\"dateModified\":\"2026-07-22T10:40:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/\"},\"wordCount\":3826,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dhosting.pl\/community\/#organization\"},\"image\":{\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg\",\"articleSection\":[\"Ambitne Projekty\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/\",\"url\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/\",\"name\":\"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study | dhosting.pl Community\",\"isPartOf\":{\"@id\":\"https:\/\/dhosting.pl\/community\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg\",\"datePublished\":\"2026-06-29T08:39:14+00:00\",\"dateModified\":\"2026-07-22T10:40:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#primaryimage\",\"url\":\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg\",\"contentUrl\":\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/dhosting.pl\/community\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dhosting.pl\/community\/#website\",\"url\":\"https:\/\/dhosting.pl\/community\/\",\"name\":\"dhosting.pl Community\",\"description\":\"Blog oraz spo\u0142eczno\u015b\u0107 dhosting.pl.\",\"publisher\":{\"@id\":\"https:\/\/dhosting.pl\/community\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dhosting.pl\/community\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dhosting.pl\/community\/#organization\",\"name\":\"dhosting.pl Sp. z o.o.\",\"url\":\"https:\/\/dhosting.pl\/community\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/dhosting.pl\/community\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2019\/10\/32x32@1x.png\",\"contentUrl\":\"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2019\/10\/32x32@1x.png\",\"width\":32,\"height\":32,\"caption\":\"dhosting.pl Sp. z o.o.\"},\"image\":{\"@id\":\"https:\/\/dhosting.pl\/community\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/dhostingpl\/\",\"https:\/\/x.com\/dhosting_pl\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/dhosting.pl\/community\/#\/schema\/person\/84c432bbfd7263ae4364615c3379b68c\",\"name\":\"Piotr Pantkowski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/dhosting.pl\/community\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/dhosting.pl\/community\/wp-content\/litespeed\/avatar\/c1184a49ab986ba912572dc4154412ba.jpg?ver=1784669377\",\"contentUrl\":\"https:\/\/dhosting.pl\/community\/wp-content\/litespeed\/avatar\/c1184a49ab986ba912572dc4154412ba.jpg?ver=1784669377\",\"caption\":\"Piotr Pantkowski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study | dhosting.pl Community","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/","og_locale":"pl_PL","og_type":"article","og_title":"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study | dhosting.pl Community","og_description":"Poznaj autora Andrzej Pi\u0142atowicz \u2013 klient dhosting.pl, w\u0142a\u015bciciel butikowej pracowni Studio Zaiste, od ponad 15 lat zwi\u0105zany z e-commerce. Zaczyna\u0142 od UX\/UI i designu: projektowania interfejs\u00f3w, architektury informacji i optymalizacji konwersji. Z czasem przeszed\u0142 w stron\u0119 web developmentu oraz rozwoju stron, sklep\u00f3w i narz\u0119dzi AI. Dzi\u0119ki temu na projekty patrzy ca\u0142o\u015bciowo, \u0142\u0105cz\u0105c perspektyw\u0119 biznesow\u0105, techniczn\u0105 [&hellip;]","og_url":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/","og_site_name":"dhosting.pl Community","article_publisher":"https:\/\/www.facebook.com\/dhostingpl\/","article_published_time":"2026-06-29T08:39:14+00:00","article_modified_time":"2026-07-22T10:40:53+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg","type":"image\/jpeg"}],"author":"Piotr Pantkowski","twitter_card":"summary_large_image","twitter_creator":"@dhosting_pl","twitter_site":"@dhosting_pl","twitter_misc":{"Napisane przez":"Piotr Pantkowski","Szacowany czas czytania":"20 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#article","isPartOf":{"@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/"},"author":{"name":"Piotr Pantkowski","@id":"https:\/\/dhosting.pl\/community\/#\/schema\/person\/84c432bbfd7263ae4364615c3379b68c"},"headline":"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study","datePublished":"2026-06-29T08:39:14+00:00","dateModified":"2026-07-22T10:40:53+00:00","mainEntityOfPage":{"@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/"},"wordCount":3826,"commentCount":0,"publisher":{"@id":"https:\/\/dhosting.pl\/community\/#organization"},"image":{"@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#primaryimage"},"thumbnailUrl":"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg","articleSection":["Ambitne Projekty"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/","url":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/","name":"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study | dhosting.pl Community","isPartOf":{"@id":"https:\/\/dhosting.pl\/community\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#primaryimage"},"image":{"@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#primaryimage"},"thumbnailUrl":"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg","datePublished":"2026-06-29T08:39:14+00:00","dateModified":"2026-07-22T10:40:53+00:00","breadcrumb":{"@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#primaryimage","url":"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg","contentUrl":"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2026\/06\/Grafika_01-1.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/dhosting.pl\/community\/jak-ograniczyc-ruch-botow-ai-w-sklepie-woocommerce-i-odciazyc-hosting-case-study\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/dhosting.pl\/community\/"},{"@type":"ListItem","position":2,"name":"Boty AI w sklepie WooCommerce: jak odci\u0105\u0107 zb\u0119dny ruch, odci\u0105\u017cy\u0107 hosting i nie straci\u0107 widoczno\u015bci w AI. Case study"}]},{"@type":"WebSite","@id":"https:\/\/dhosting.pl\/community\/#website","url":"https:\/\/dhosting.pl\/community\/","name":"dhosting.pl Community","description":"Blog oraz spo\u0142eczno\u015b\u0107 dhosting.pl.","publisher":{"@id":"https:\/\/dhosting.pl\/community\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dhosting.pl\/community\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/dhosting.pl\/community\/#organization","name":"dhosting.pl Sp. z o.o.","url":"https:\/\/dhosting.pl\/community\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/dhosting.pl\/community\/#\/schema\/logo\/image\/","url":"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2019\/10\/32x32@1x.png","contentUrl":"https:\/\/dhosting.pl\/community\/wp-content\/uploads\/2019\/10\/32x32@1x.png","width":32,"height":32,"caption":"dhosting.pl Sp. z o.o."},"image":{"@id":"https:\/\/dhosting.pl\/community\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dhostingpl\/","https:\/\/x.com\/dhosting_pl"]},{"@type":"Person","@id":"https:\/\/dhosting.pl\/community\/#\/schema\/person\/84c432bbfd7263ae4364615c3379b68c","name":"Piotr Pantkowski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/dhosting.pl\/community\/#\/schema\/person\/image\/","url":"https:\/\/dhosting.pl\/community\/wp-content\/litespeed\/avatar\/c1184a49ab986ba912572dc4154412ba.jpg?ver=1784669377","contentUrl":"https:\/\/dhosting.pl\/community\/wp-content\/litespeed\/avatar\/c1184a49ab986ba912572dc4154412ba.jpg?ver=1784669377","caption":"Piotr Pantkowski"}}]}},"_links":{"self":[{"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/posts\/4015"}],"collection":[{"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/comments?post=4015"}],"version-history":[{"count":15,"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/posts\/4015\/revisions"}],"predecessor-version":[{"id":4076,"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/posts\/4015\/revisions\/4076"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/media\/4074"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/media?parent=4015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/categories?post=4015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/community\/wp-json\/wp\/v2\/tags?post=4015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}