robots.txt — co blokuje, a co nie (także boty AI)
robots.txt to zwykły plik tekstowy pod adresem twojadomena.pl/robots.txt, w którym mówisz robotom, których adresów mają nie odwiedzać. Jedna źle postawiona linijka potrafi odciąć od Google cały sklep, a błąd serwera przy tym pliku wstrzymuje odwiedziny Googlebota na całej stronie. Z drugiej strony robots.txt nie usuwa niczego z wyników wyszukiwania — do tego służy coś innego.
Jak sprawdzić samemu
- Wpisz w przeglądarce
https://twojadomena.pl/robots.txt. Szukaj liniiDisallow: /(sam ukośnik), osobnej grupyUser-agent: Googleboti blokad katalogów z plikami CSS/JS (np./wp-content/,/themes/). Jeśli zamiast pliku widzisz stronę błędu, to też problem — opisany niżej. - Google Search Console → Ustawienia → Raport dotyczący pliku robots.txt. Zobaczysz, kiedy Google ostatnio pobrał plik, czy się udało („Pobrano” / „Nie pobrano”) i czy są błędy składni.
- Search Console → Sprawdzenie adresu URL → wklej adres. Jeśli w sekcji indeksowania jest informacja o blokadzie przez plik robots.txt, reguła działa na ten adres.
- Nasz audyt pokazuje konkretną regułę i grupę User-agent, która blokuje stronę, oraz listę zablokowanych botów AI.
Składnia w pigułce
Plik składa się z grup. Każda grupa zaczyna się od linii User-agent (dla kogo), a pod nią są reguły Disallow (nie wchodź) i Allow (wejdź, mimo szerszego zakazu). Linia Sitemap stoi osobno i dotyczy wszystkich.
User-agent: *
Disallow: /koszyk/
Disallow: /moje-konto/
Allow: /moje-konto/regulamin/
Sitemap: https://twojadomena.pl/sitemap.xml
Jak roboty to czytają (tak samo liczymy w audycie — zgodnie ze standardem RFC 9309, którego trzyma się Google):
- Bot wybiera jedną, najbardziej pasującą grupę. Jeśli w pliku jest grupa
User-agent: Googlebot, Googlebot czyta tylko ją i całkowicie ignoruje regułę dla*. To częsta pułapka: ktoś dopisuje grupę dla Googlebota z jedną regułą i nieświadomie zdejmuje z niego wszystkie pozostałe ograniczenia — albo odwrotnie, zostawia w niejDisallow: /. - Wygrywa najdłuższa pasująca reguła.
Allow: /moje-konto/regulamin/jest dłuższa niżDisallow: /moje-konto/, więc regulamin jest dostępny. - Przy remisie wygrywa Allow (reguła mniej restrykcyjna).
- Reguła to początek ścieżki:
Disallow: /blogblokuje też/blog-firmowy/i/blog/. Wielkość liter w ścieżkach ma znaczenie (w nazwach botów — nie). Działają symbole*(dowolny ciąg znaków) i$(koniec adresu). - Plik działa tylko dla jednego hosta i protokołu.
sklep.twojadomena.plpotrzebuje własnego pliku. - Google zwykle trzyma kopię pliku do 24 godzin, więc zmiana nie działa od razu.
Typowe wpadki
Disallow: /zostawione po stronie testowej albo migracji. Na wersji roboczej blokuje się całą stronę, a po przeniesieniu na docelową domenę nikt nie zmienia pliku. Objaw: nowe strony nie wchodzą do Google, a stare z czasem tracą opisy w wynikach. Uwaga: w WordPressie opcja „Proś wyszukiwarki o nieindeksowanie tej witryny” nie dopisuje dziś niczego do robots.txt — działa przez noindex, opisujemy ją w artykule o noindex. Blokada w robots.txt to prawie zawsze ręcznie wgrany plik albo ustawienie wtyczki.- Blokowanie CSS i JavaScriptu (np.
Disallow: /wp-content/,/themes/,/assets/,/*.js$). Google pobiera te pliki, żeby zobaczyć stronę tak jak użytkownik. Bez nich może źle ocenić układ, wersję mobilną i treść ładowaną skryptem (więcej: treść i JavaScript). - Blokada całego katalogu zamiast kilku adresów. Np.
Disallow: /produkty, żeby schować filtry, a w praktyce znikają wszystkie karty produktów. Do filtrów i sortowania lepsze są precyzyjne reguły z parametrem, np.Disallow: /*?sort=. - Blokada strony, którą chcesz usunąć z Google. O tym niżej — to nie działa.
robots.txt nie usuwa strony z Google
robots.txt zabrania odwiedzania, a nie indeksowania. Zablokowany adres może dalej wisieć w wynikach — bez opisu, bo Google nie widzi treści. Co gorsza, jeśli na takiej stronie jest tag noindex, Google go nie przeczyta, bo nie może wejść.
Chcesz usunąć stronę z wyników? Odblokuj ją w robots.txt i dodaj noindex. Dopiero gdy zniknie z indeksu, możesz ją z powrotem zablokować, jeśli chcesz oszczędzić serwer. Instrukcja: noindex — jak to ustawić i sprawdzić.
Błąd serwera przy robots.txt (5xx, 429)
Gdy plik nie istnieje (404) albo jest pusty, Google przyjmuje „wszystko wolno” — to nie błąd, choć plik warto mieć, żeby wskazać w nim mapę witryny. Gdy serwer odpowiada błędem 5xx, Google zakłada najgorsze: przez pierwsze 12 godzin w ogóle przestaje odwiedzać stronę, potem przez maksymalnie 30 dni korzysta z ostatniej dobrej kopii pliku. Kod 429 Google traktuje jak błąd serwera.
Najczęstsze przyczyny:
- robots.txt generuje PHP (WordPress, wtyczka SEO), a strona ma kłopoty z bazą lub pamięcią,
- zapora (WAF, Cloudflare, ochrona hostingu) ogranicza liczbę zapytań i odpowiada 429 albo 503,
- tryb konserwacji zwraca 503 dla wszystkich adresów, łącznie z robots.txt.
Rozwiązanie: robots.txt ma zwracać 200 (albo 404, jeśli pliku celowo nie ma). Najprościej postawić fizyczny plik tekstowy w katalogu głównym — serwer odda go bez uruchamiania PHP. Wyłącz też plik z limitów zapory i z trybu konserwacji.
Boty AI: które blokować, a których nie
Boty AI dzielą się na dwie grupy. Boty wyszukiwania i odpowiedzi pobierają strony po to, żeby asystent AI mógł je pokazać i podlinkować jako źródło. Boty treningowe zbierają treści do uczenia modeli. Blokada pierwszych oznacza, że Twoja strona nie pojawi się jako źródło w ChatGPT, Perplexity czy Claude. Blokada tylko drugich to świadomy wybór i nie wpływa na widoczność w odpowiedziach.
| Bot (User-agent) | Firma | Do czego służy | Co daje blokada |
|---|---|---|---|
| OAI-SearchBot | OpenAI | wyszukiwanie w ChatGPT | strona nie pojawi się w odpowiedziach wyszukiwania ChatGPT |
| ChatGPT-User | OpenAI | otwieranie stron na prośbę użytkownika | ograniczona — OpenAI zaznacza, że robots.txt może tu nie obowiązywać; o obecności w wyszukiwaniu decyduje OAI-SearchBot |
| PerplexityBot | Perplexity | indeks wyszukiwarki Perplexity | strona nie będzie pokazywana i linkowana w Perplexity |
| Perplexity-User | Perplexity | otwieranie stron na prośbę użytkownika | niewielka — Perplexity podaje, że ten bot zwykle ignoruje robots.txt |
| Claude-SearchBot | Anthropic | indeks wyszukiwania Claude | gorsza widoczność strony w wynikach wyszukiwania Claude |
| Claude-User | Anthropic | pobieranie stron, gdy użytkownik pyta Claude | Claude nie pobierze strony, żeby odpowiedzieć na pytanie |
| GPTBot | OpenAI | trening modeli | treść nie trafi do treningu; brak wpływu na wyszukiwanie ChatGPT |
| ClaudeBot | Anthropic | trening modeli | przyszłe treści nie trafią do treningu |
| Google-Extended | znacznik (nie osobny bot): trening Gemini i ugruntowanie odpowiedzi w Gemini/Vertex AI | brak wpływu na wyniki Google i AI Overviews — te zależą od Googlebota | |
| Applebot-Extended | Apple | znacznik (nie odwiedza stron): trening modeli Apple Intelligence | brak wpływu na wyszukiwanie Apple (Siri, Spotlight) |
| CCBot | Common Crawl | otwarte archiwum internetu, często używane do treningu modeli | strona nie trafi do kolejnych zbiorów Common Crawl |
| meta-externalagent | Meta | trening modeli AI i indeksowanie do produktów Meta | treść nie trafi do treningu Meta |
Dwie rzeczy, o których warto pamiętać. Po pierwsze: dostęp do Google, także do AI Overviews i trybu AI, reguluje reguła dla Googlebota (a to, co się wyświetla — noindex i nosnippet). Zablokowanie Google-Extended niczego tam nie zmienia. Po drugie: robots.txt to prośba, a nie zamek. Poważni operatorzy się do niego stosują, ale jeśli chcesz twardo zablokować bota, robi się to na zaporze (np. w Cloudflare).
Jak naprawić
WordPress (i WooCommerce)
WordPress, jeśli w katalogu głównym nie ma fizycznego pliku, generuje robots.txt „w locie”. Domyślnie blokuje tylko /wp-admin/ (z wyjątkiem admin-ajax.php) — to jest w porządku. Fizyczny plik robots.txt w katalogu głównym zawsze wygrywa z wirtualnym.
- Yoast SEO: Yoast SEO → Narzędzia → Edytor plików (ang. Tools → File editor). Jeśli pliku nie ma, przycisk tworzy go. Gdy menu się nie pojawia, edycja plików jest wyłączona na serwerze — wtedy przez FTP lub menedżer plików hostingu.
- Rank Math: Rank Math SEO → Ustawienia ogólne → Edytuj robots.txt (pozycja widoczna w trybie zaawansowanym). Rank Math edytuje plik wirtualny — jeśli w katalogu głównym jest fizyczny plik, trzeba go najpierw usunąć przez FTP, inaczej zmiany nie zadziałają.
- Bez wtyczki: wgraj przez FTP plik
robots.txtdo katalogu, w którym leżywp-config.php.
WooCommerce nie wymaga osobnych reguł. Nie blokuj /wp-content/ ani /wp-includes/. Koszyka i konta zwykle nie trzeba blokować — WooCommerce i wtyczki SEO oznaczają je noindex.
Shopify
Shopify generuje rozsądny plik automatycznie i dla większości sklepów nie trzeba go ruszać. Zmiany: Sklep online → Motywy → przy aktywnym motywie menu „…” → Edytuj kod → Dodaj nowy szablon → robots → Utwórz szablon. Powstaje plik robots.txt.liquid. Dopisuj reguły do domyślnych, zamiast zastępować cały szablon zwykłym tekstem — Shopify ostrzega, że błędna edycja może odciąć cały ruch, a wsparcie nie pomaga przy tym pliku. Przy imporcie motywu szablon nie przechodzi, trzeba go przenieść ręcznie.
PrestaShop
PrestaShop ma generator: Preferencje → Ruch i SEO, na dole strony sekcja generowania pliku robots i przycisk generowania. Generator nadpisuje fizyczny plik robots.txt w katalogu głównym — jeśli dopisywałeś własne reguły, po ponownym wygenerowaniu znikną, więc zachowaj kopię i dopisz je potem przez FTP. Po zmianach sprawdź, czy plik nie blokuje katalogów z motywem (/themes/) i modułów potrzebnych do wyświetlenia strony.
Shoper
Plik edytuje się w panelu: Ustawienia → Zaawansowane → SEO → zakładka Zaawansowane. Domyślny plik Shopera blokuje koszyk, rejestrację i panel administracyjny, a zostawia dostęp do produktów, kategorii i stron informacyjnych. Shoper wprost odradza samodzielne zmiany i nie udziela wsparcia przy ich modyfikacji, więc zmieniaj tylko to, co musisz (np. usuń Disallow: / albo blokadę botów wyszukiwania AI), i zachowaj kopię oryginału.
Cloudflare
Jeśli domena stoi za Cloudflare, robots.txt mógł zostać zmieniony bez Twojej wiedzy. Funkcja zarządzanego robots.txt dopisuje na początku Twojego pliku blokadę (Disallow: /) dla botów treningowych: GPTBot, ClaudeBot, Google-Extended, CCBot, Applebot-Extended, meta-externalagent, Bytespider, Amazonbot. Jeśli pliku na serwerze nie ma, Cloudflare tworzy go sam. Stąd w audycie bywa „blokada botów treningowych”, której nikt nie pisał.
Ustawienia: Security → Settings → filtr „Bot traffic” → Configure AI bot policies (tu zarządzasz też plikiem zarządzanym) oraz AI Crawl Control, gdzie możesz zezwalać lub blokować pojedyncze boty. Starszy przełącznik „Block AI bots” Cloudflare wycofał we wrześniu 2026 r. Pamiętaj, że blokada na poziomie zapory działa niezależnie od robots.txt: jeśli zapora blokuje boty wyszukiwania AI, poprawny plik nic nie da.
Apache i nginx
Na własnym serwerze robots.txt to po prostu plik w katalogu głównym strony. Sprawdź, czy reguły przekierowań lub ochrony nie zwracają dla niego błędu (curl -I https://twojadomena.pl/robots.txt powinien pokazać 200 i Content-Type: text/plain). Plik musi być dostępny pod tym samym protokołem i hostem, pod którym działa strona (więcej: HTTPS i przekierowania).
Przykładowy plik
Wersja dla typowej strony firmowej lub sklepu: wszystko otwarte poza częściami prywatnymi, boty AI mają dostęp.
User-agent: *
Disallow: /koszyk/
Disallow: /zamowienie/
Disallow: /moje-konto/
Disallow: /*?s=
Disallow: /*?sort=
Sitemap: https://twojadomena.pl/sitemap.xml
Wariant, jeśli nie chcesz, żeby treści trafiały do treningu modeli, ale chcesz być cytowany przez asystentów AI — dopisz na końcu:
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: meta-externalagent
Disallow: /
Kilka zasad do obu wersji: adres w Sitemap podawaj w pełnej postaci z https:// (zob. mapa strony XML), nie blokuj CSS ani JS, nie dodawaj Crawl-delay — Google go ignoruje. Ścieżki /koszyk/ itp. zamień na te, których naprawdę używa Twoja platforma. Blokowanie koszyka czy konta jest w porządku, bo tych stron nie musisz mieć w Google — ale jeśli któraś już jest w indeksie i chcesz ją usunąć, najpierw noindex, blokada potem. Jeśli dodasz osobną grupę dla Googlebota, pamiętaj, że przestanie on czytać grupę *.
Jak sprawdzić, że naprawione
- Otwórz
/robots.txtw przeglądarce w trybie prywatnym i sprawdź, czy widzisz nową wersję (jeśli nie — wyczyść cache wtyczki, hostingu lub Cloudflare). - W Search Console → Ustawienia → Raport dotyczący pliku robots.txt kliknij menu przy pliku i wybierz Poproś o ponowne zindeksowanie. Google zwykle pobiera plik sam w ciągu doby, ale po usunięciu blokady warto go poprosić.
- Sprawdzenie adresu URL → test wersji opublikowanej dla kilku ważnych stron. Komunikat o blokadzie przez robots.txt powinien zniknąć.
- Uruchom nasz audyt ponownie.
Ile to trwa: sam plik Google odświeża zwykle w ciągu 24 godzin. Ponowne odwiedzenie i przywrócenie odblokowanych stron w wynikach to kwestia dni lub tygodni — zależy od wielkości strony i tego, jak długo blokada trwała. Boty AI odświeżają robots.txt we własnym tempie, Meta podaje np. do 24 godzin.
Kiedy warto poprosić o pomoc
Jeśli blokada trwała długo i strony wypadły z wyników, plik jest generowany przez kilka narzędzi naraz (wtyczka, hosting, Cloudflare) i nie wiesz, które wygrywa, albo masz duży sklep z filtrami, gdzie reguły trzeba dobrać precyzyjnie — warto, żeby spojrzał na to ktoś, kto robi to na co dzień. W IF.PL zajmujemy się SEO i stronami WWW, możemy przejrzeć plik i ustawienia serwera razem z Tobą.
Źródła
- Google Search Central — Wprowadzenie do pliku robots.txt
- Google Search Central — Jak Google interpretuje specyfikację robots.txt
- RFC 9309 — Robots Exclusion Protocol
- Pomoc Search Console — Raport dotyczący pliku robots.txt
- Google Search Central — Jak kody HTTP i błędy sieci wpływają na Google (429 = błąd serwera)
- Google — Popularne roboty Google (w tym Google-Extended)
- Google — Funkcje AI w wyszukiwarce a Twoja witryna
- OpenAI — Overview of OpenAI Crawlers
- Anthropic — boty ClaudeBot, Claude-User, Claude-SearchBot
- Perplexity — Perplexity Crawlers
- Apple — About Applebot
- Meta — Web crawlers
- Common Crawl — CCBot
- Yoast — The robots.txt file in Yoast SEO
- Rank Math — How to edit robots.txt
- Shopify — Editing robots.txt.liquid
- Shoper Learn — Dlaczego mojego sklepu nie widać w Google?
- Cloudflare — Managed robots.txt
- Cloudflare — AI Crawl Control