Merchant Center pisze, że nie może pobrać pliku z produktami, a OpenAI Ads twierdzi, że robots.txt blokuje sklep. Sklep działa, plik jest poprawny, a w logach serwera nie ma śladu. Winna jest reguła w Cloudflare.
Marcin Ledwolorz
CEO, APTURN
Pod koniec września właściciel dwóch sklepów zgłosił nam dwa problemy naraz. Google Merchant Center od dłuższego czasu pokazywał komunikat o błędzie pliku z produktami, a przy próbie uruchomienia kampanii w OpenAI Ads pojawiała się informacja, że strona jest zablokowana w robots.txt. Sklep działał, plik z produktami otwierał się w przeglądarce, a robots.txt niczego nie blokował.
Oba problemy miały tę samą przyczynę: regułę zabezpieczającą w Cloudflare, która traktowała roboty Google i OpenAI jak podejrzany ruch. Opisujemy, jak to znaleźć, bo ta awaria jest wyjątkowo dobrze schowana.
Dlaczego tego nie widać
Cloudflare stoi przed serwerem sklepu. Jeśli reguła w Cloudflare odrzuci żądanie, nie dociera ono do serwera wcale, więc w logach serwera i w WordPressie nie ma żadnego wpisu. Przeglądanie logów hostingu nic tu nie da.
Druga pułapka: test z własnego komputera wprowadza w błąd. Jeśli pobierzesz feed z podmienionym user agentem Googlebota albo robota Facebooka, Cloudflare odpowie 403, bo uzna to za podszywanie się pod bota. Wygląda to jak potwierdzenie blokady, ale niczego nie dowodzi. Liczą się tylko żądania, które przyszły naprawdę z sieci Google czy OpenAI.
Przypadek 1: Google Merchant Center i robot google-xrawler
Merchant Center pobiera pliki z produktami robotem, który przedstawia się jako google-xrawler. Przychodzi on z sieci Google, ale Cloudflare nie ma go na swojej liście zweryfikowanych botów, tak jak ma Googlebota. W praktyce to zwykły nieznany ruch z dużej chmury.
W marcu na obu sklepach dodano regułę, która wymusza dodatkową weryfikację dla ruchu z dużych chmur i spoza Polski. To popularne ustawienie, które dobrze odcina boty. Człowiek w przeglądarce przechodzi taką weryfikację bez problemu. Robot pobierający plik nie przejdzie jej nigdy i dostaje 403. Merchant Center próbował co godzinę, przez sześć miesięcy, a sklep przez ten czas działał normalnie, więc nikt tego nie łączył.
Przypadek 2: OpenAI Ads i „blokada w robots.txt”
Przy dodawaniu kampanii OpenAI sprawdza stronę docelową robotem OAI-AdsBot. Ten robot pyta najpierw o plik robots.txt. W naszym przypadku żądania przychodziły z sieci Azure i Cloudflare nie rozpoznawał ich jako zweryfikowanego bota. Reguła na „agresywne crawlery”, która łapie nieznane boty z nazwą zawierającą „Bot”, odpowiadała 403.
OpenAI interpretuje brak dostępu do robots.txt jako blokadę i tak to komunikuje w panelu. Sam plik był w porządku, nikt go nie zmieniał. Co ciekawe, inne roboty OpenAI (OAI-SearchBot w aktualnej wersji, ChatGPT-User) przechodziły normalnie, więc w logach widać było mieszankę odpowiedzi 200 i 403 dla OpenAI. Trzeba patrzeć na dokładną nazwę robota.
Jak to sprawdzić u siebie
- W Cloudflare otwórz Security → Events i przefiltruj zdarzenia po user agencie: google-xrawler, OAI-AdsBot. Każde zdarzenie z akcją challenge albo block oznacza, że robot nie dostał pliku.
- Na darmowym planie część danych o zdarzeniach jest niedostępna. Wtedy pomaga statystyka żądań z kodem odpowiedzi 403 dla tych user agentów.
- Zobacz, która reguła zadziałała. Najczęściej to reguły typu „weryfikuj ruch z dużych dostawców chmury”, „blokuj kraje spoza Polski” albo „agresywne crawlery”.
- W Merchant Center sprawdź historię pobrań źródła danych. Seria nieudanych pobrań o regularnych porach to typowy obraz blokady.
Jak to naprawić bez otwierania sklepu na boty
Nie trzeba wyłączać zabezpieczeń. Wystarczy reguła, która pomija weryfikację tylko dla konkretnych robotów i tylko wtedy, gdy przychodzą z sieci swojego właściciela. Sam user agent łatwo podrobić, numer sieci (ASN) już nie.
- Google Merchant Center: user agent zawiera „google-xrawler” i żądanie przychodzi z sieci Google (ASN 15169).
- OpenAI Ads: user agent zawiera „OAI-AdsBot” i żądanie przychodzi z sieci, z której korzysta OpenAI. Najprecyzyjniej jest oprzeć się na liście adresów, którą OpenAI publikuje dla tego robota.
- Regułę pomijającą ustaw wyżej niż reguły, które blokują, bo Cloudflare sprawdza je po kolei.
- Na darmowym planie jest limit pięciu własnych reguł. Zwykle trzeba dopisać warunek do istniejącej reguły przepuszczającej dobre boty, zamiast dodawać nową.
- Jeśli na darmowym planie włączony jest Bot Fight Mode, reguły go nie omijają. Gdy robot nadal dostaje 403, trzeba go wyłączyć albo przejść na wyższy plan.
Po zmianie Merchant Center pobrał oba pliki w ciągu kilku minut, a kampania w OpenAI Ads dała się dodać od razu. W Merchant Center warto ręcznie kliknąć „Zaktualizuj” przy źródle danych, zamiast czekać na następne pobranie.
Przy okazji: stare adresy feedów
Przy takiej diagnozie często wychodzi drugi problem. Po zmianie wtyczki do feedów w Merchant Center i Meta Commerce Manager zostają stare adresy plików, które teraz przekierowują na stronę główną albo zwracają 404. To nie jest blokada, tylko martwe źródło, które trzeba usunąć i zastąpić nowym adresem.
Lekcja na przyszłość
Każda nowa reguła w Cloudflare, która utrudnia życie botom, utrudnia je też robotom, które przynoszą sprzedaż: Merchant Center, katalogom reklamowym i weryfikatorom reklam. Po dodaniu takiej reguły warto przez kilka dni obserwować zdarzenia dla tych robotów, a do szablonu reguł od razu dopisać dla nich wyjątki.
Merchant Center albo OpenAI Ads nie widzą Twojego sklepu?
Sprawdzimy zdarzenia w Cloudflare i ustawimy wyjątki tak, żeby roboty reklamowe przechodziły, a reszta zabezpieczeń została na miejscu. Napisz do nas.
Potrzebujesz pomocy z tym tematem?
Wdrażamy to, o czym piszemy. Porozmawiaj z nami o swoim projekcie - bezpłatna konsultacja bez zobowiązań.
