robots.txt mówi crawlerom, czego nie wolno im pobierać, i jest standardem internetowym (RFC 9309), który każdy duży crawler, łącznie z crawlerami AI, deklaruje, że respektuje. llms.txt podpowiada, co warto przeczytać, i jest propozycją z llmstxt.org, której żaden duży dostawca AI nie zobowiązał się czytać. Pytanie "llms.txt a robots.txt" nie brzmi więc "którego potrzebuję". To szlaban kontra lista lektur, a szlaban zawsze wygrywa.
Jeśli masz zapamiętać z tego artykułu jedną rzecz, niech to będzie to ostatnie zdanie. Większość zamieszania, które widzę, bierze się z traktowania tych plików jako alternatyw albo, co gorsza, z edytowania jednego, podczas gdy drugi po cichu go unieważnia.
robots.txtto Robots Exclusion Protocol, ustandaryzowany jako RFC 9309 we wrześniu 2022.llms.txtto propozycja społeczności z września 2024 bez formalnego statusu.- Żaden z plików niczego nie egzekwuje. Samo RFC 9309 mówi, że reguły nie są formą autoryzacji dostępu. Prawdziwe blokowanie dzieje się na serwerze albo w CDN.
- Jeśli
robots.txtblokujeGPTBot, posłusznyGPTBotnie pobierze też Twojegollms.txt. Lista lektur traci sens. - Crawler stosuje się tylko do najbardziej szczegółowej grupy
User-agent, która do niego pasuje. Dodaj grupę dlaGPTBot, a przestanie czytać Twoje reguły dla*. Google-Extendeddecyduje o użyciu treści do treningu i groundingu Gemini, nie o wyszukiwarce. Zablokowanie go nie usuwa Cię z AI Overviews.
Cel: szlaban i lista lektur
robots.txt służy do ograniczania. Istnieje od 1994 roku, leży pod /robots.txt na każdym hoście, a jego zadanie to powiedzieć "nie pobieraj tych ścieżek". Nic nie mówi o tym, co jest dobre. Idealnie skonfigurowany robots.txt może pozwalać na wszystko.
llms.txt służy do kuratorowania. To plik markdown pod /llms.txt, który wymienia strony uznane przez Ciebie za najprzydatniejsze, z krótkimi opisami, żeby model językowy mógł pominąć nawigację i banery cookies. Nic nie mówi o pozwoleniach. Format opisałem w poradniku, jak zrobić llms.txt, więc sekcję o składni trzymam krótko.
Różne zadania. Pokrywają się dokładnie w jednym miejscu: oba są pobierane przez boty z katalogu głównego domeny. I tu zaczynają się kłopoty.
Składnia obok siebie, z przykładowymi plikami
Oto realistyczny robots.txt dla małej firmy usługowej z UE, która chce widoczności w wyszukiwaniu AI, ale nie chce, żeby crawlowano strefę konta i wewnętrzną wyszukiwarkę:
# robots.txt dla example.com
User-agent: *
Disallow: /account/
Disallow: /search
Allow: /
User-agent: GPTBot
Disallow: /account/
Disallow: /search
# Wypisuje z treningu i groundingu Gemini. Wyszukiwarki i AI Overviews to nie dotyczy.
User-agent: Google-Extended
Disallow: /
Sitemap: https://example.com/sitemap.xml
Reguły działają liniami: User-agent otwiera grupę, Disallow i Allow przyjmują prefiksy ścieżek, a kiedy do URL-a pasują dwie reguły, wygrywa najdłuższa (najbardziej szczegółowa) ścieżka. Sitemap nie należy do podstawowych reguł RFC 9309, ale Google, Bing i główne crawlery AI go czytają.
Zauważ, że grupa GPTBot powtarza blokady. To celowe, a dlaczego, wyjaśniam niżej przy historii Michała.
A oto pasujący llms.txt:
# Example Analytics
> Niezależny monitoring GTM i GA4 dla firm z UE. Abonament od 390 EUR miesięcznie, konsultacje godzinowe, darmowy audyt GTM.
## Usługi
- [Monitoring GTM](https://example.com/gtm.md): Cotygodniowe automatyczne kontrole tagów, poprawki w 48 godzin
- [Audyty GA4](https://example.com/ga4-audit.md): Zakres, rezultaty i cena
## Artykuły
- [Lista kontrolna Consent Mode v2](https://example.com/consent-mode.md): Jak sprawdzić sygnały zgody w Tag Assistant
## Optional
- [Archiwum realizacji](https://example.com/cases.md): Starsze opisy projektów
Jedyny wymagany element to tytuł #. Podsumowanie w cytacie i sekcje ## z linkami to konwencje z propozycji, a sekcja Optional oznacza materiał, który narzędzie może pominąć, gdy brakuje kontekstu. Nie ma odpowiednika Disallow, nie ma kierowania do user agentów, nie ma wildcardów. To dokument, a nie zestaw reguł.
Kto czyta który plik
Tu drogi obu plików naprawdę się rozchodzą.
robots.txt czyta praktycznie każdy dobrze wychowany crawler: Googlebot, Bingbot i crawlery AI GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, CCBot, Applebot. OpenAI, Anthropic, Google i Perplexity dokumentują swoje user agenty i deklarują, że ich crawlery stosują się do robots.txt. RFC 9309 mówi też, że crawlery nie powinny trzymać pliku w cache dłużej niż 24 godziny, więc zmiana zwykle działa w ciągu doby.
Jest haczyk z fetcherami uruchamianymi przez użytkownika. Kiedy człowiek prosi chatbota o otwarcie konkretnego URL-a, część dostawców traktuje to inaczej niż crawlowanie. Perplexity dokumentuje, że Perplexity-User co do zasady ignoruje robots.txt, bo pobranie zainicjował człowiek. Sprawdzaj aktualną stronę o botach u każdego dostawcy, zamiast zakładać, że reguły dla crawlerów przechodzą automatycznie.
Warto też wiedzieć, że duzi dostawcy dzielą boty według zadania, więc jedna grupa w robots.txt nie obejmuje całego ruchu danego dostawcy:
| Dostawca | Crawler treningowy | Crawler wyszukiwania / indeksu | Fetcher na żądanie użytkownika |
|---|---|---|---|
| OpenAI | GPTBot |
OAI-SearchBot |
ChatGPT-User |
| Anthropic | ClaudeBot |
Claude-SearchBot |
Claude-User |
| Perplexity | (brak osobnego) | PerplexityBot |
Perplexity-User |
token Google-Extended, bez osobnego bota |
Googlebot |
nie dotyczy wyszukiwarki |
Dlatego "zablokuj AI" to trzy decyzje, a nie jedna. Zablokowanie GPTBot trzyma Cię z dala od danych treningowych OpenAI. Nie powstrzymuje OAI-SearchBot przed indeksowaniem Cię dla wyszukiwania w ChatGPT, a właśnie ten firma zwykle chce zachować.
llms.txt nie ma udokumentowanych czytelników wśród wielkiej czwórki. W moim artykule o dowodach na llms.txt opisuję, co powiedział Google (że go nie używa) i co pokazują logi serwera (sporadyczne pobrania przez crawlery treningowe, prawie nic od fetcherów na żywo). Potwierdzeni czytelnicy to narzędzia deweloperskie, do których człowiek celowo wkleja URL.
Egzekwowanie: żaden z plików nikogo nie zatrzyma
Ludzie traktują robots.txt jak zamek. To kartka na drzwiach.
RFC 9309 mówi wprost, że reguły "nie są formą autoryzacji dostępu". Crawler, który je ignoruje, nie trafia na żadną barierę techniczną, ryzykuje tylko reputację i, coraz częściej, problemy prawne. Cloudflare publicznie oskarżył w 2025 Perplexity o crawlowanie stron, które go zablokowały, przy użyciu niezadeklarowanych user agentów. Cokolwiek sądzisz o tym sporze, pokazuje on granicę: robots.txt działa na crawlery, które same chcą się stosować.
llms.txt egzekwuje jeszcze mniej, bo nawet nie próbuje. Niczego nie zablokuje ani na nic nie pozwoli.
Jeśli potrzebujesz prawdziwej blokady, rób ją tam, gdzie odpowiada się na żądania:
- Reguły CDN albo WAF dopasowujące user agenta i zweryfikowane zakresy IP (OpenAI publikuje zakresy dla swoich botów).
- Kontrola crawlerów AI w Cloudflare, która blokuje na brzegu sieci kodem
403, niezależnie od tego, co mówirobots.txt. - Uwierzytelnianie dla wszystkiego, co nie powinno być publiczne. Jeśli coś jest wrażliwe, linia
Disallowtylko reklamuje tę ścieżkę.
Jak na siebie wpływają (i błędy, które ciągle znajduję)
Dwie historie, obie z ostatniego roku.
Ewa prowadzi sklep z kosmetykami na Shopify, z Cloudflare z przodu. Spędziła dwa dni na budowaniu wersji markdown i starannego llms.txt, a potem zapytała mnie, dlaczego w cytowaniach AI nic się nie zmieniło.
Logi odpowiedziały w pięć minut: 1940 żądań od GPTBot w 30 dni, każde zakończone kodem 403. Rok wcześniej deweloper włączył w Cloudflare blokowanie botów AI i o tym zapomniał.
Jej robots.txt mówił "zapraszamy". Brzeg sieci mówił "wynocha". llms.txt nie został dostarczony ani razu.
Naprawa to jeden przełącznik. Dwa dni pracy nad llms.txt nie poszły na marne, ale przez rok leżały za zamkniętymi drzwiami.
Michał prowadzi katalog części B2B z 6200 URL-ami produktów. Dodał grupę User-agent: GPTBot z Disallow: /koszyk/ i założył, że jego dotychczasowe reguły dla *, blokujące /admin-preview/, dalej obowiązują. Nie obowiązywały.
Zgodnie z RFC 9309 crawler stosuje się do jednej, najbardziej szczegółowej grupy pasującej do jego nazwy, a resztę ignoruje. Dla GPTBot plik pozwalał teraz na wszystko poza koszykiem, łącznie z 340 stronami podglądu. Naprawa: skopiuj do nazwanej grupy każdą regułę, którą chcesz zachować.
Ogólne zasady interakcji:
-
robots.txtjest sprawdzany pierwszy. Jeśli/llms.txtjest zablokowany dla danego bota, posłuszny bot nigdy go nie przeczyta. -
Odblokowanie samego
/llms.txtnie ma sensu.Disallow: /plusAllow: /llms.txtpozwala botowi przeczytać listę lektur, a potem zabrania wejścia na każdą stronę z tej listy. -
Wpisanie zablokowanego URL-a do
llms.txtniczego nie nadpisuje. Blokada zostaje. -
Zablokowanie
Google-Extendednie dotyka AI Overviews. Te pochodzą z wyszukiwarki, crawlowanej przezGooglebota. Żeby się z nich wypisać, potrzebujesz kontroli w stylunosnippet, które szkodzą też zwykłym wynikom.
Ten ostatni punkt to powód, dla którego uważałbym z szablonami "zablokuj całe AI" kopiowanymi z forów. Część z nich blokuje boty, które dają Ci widoczność w wyszukiwaniu, a przepuszcza te, które biorą tylko dane do treningu.
Nie wiesz, które crawlery AI w ogóle docierają do Twoich stron? AI Visibility crawluje Twoją stronę tak jak LLM i pokazuje, co jest dostępne i czytelne, strona po stronie.
llms.txt a robots.txt w skrócie
robots.txt |
llms.txt |
|
|---|---|---|
| Cel | Ograniczyć, co pobierają crawlery | Wskazać, co warto przeczytać |
| Status | Standard internetowy, RFC 9309 (2022) | Propozycja z llmstxt.org (2024) |
| Lokalizacja | /robots.txt, osobno dla hosta i protokołu |
/llms.txt w katalogu głównym domeny |
| Format | Linie User-agent, Disallow, Allow |
Markdown: tytuł, podsumowanie, listy linków |
| Kierowanie do konkretnych botów | Tak, przez grupy user agentów | Nie |
| Czytany przez Google, OpenAI, Anthropic, Perplexity | Tak, wszyscy dokumentują zgodność | Brak publicznej deklaracji od kogokolwiek |
| Egzekwowanie | Dobrowolne stosowanie się | Żadne, to treść doradcza |
| Limit rozmiaru | Crawlery muszą sparsować co najmniej 500 KiB | Nieokreślony |
| Co, jeśli go brak | Wszystko jest dozwolone | Nic się nie zmienia |
| Czy może zaszkodzić | Tak, zły Disallow może wyciąć całe sekcje z indeksu |
Praktycznie nie |
W ostatni wiersz bym się wpatrywał. robots.txt to plik, który z dnia na dzień może kosztować Cię ruch. llms.txt to ten, nad którym ludzie spędzają czas.
Od którego zacząć
Powiem wprost: jeśli masz godzinę, poświęć 55 minut na robots.txt i 5 na llms.txt.
Oto kolejność, której używam, sprawdzając stronę klienta:
- Pobierz
/robots.txti przeczytaj każdą grupę. Szukaj nazwanych grup dla AI, które przypadkiem wyłączają Twoje reguły dla*. - Sprawdź, czy w CDN albo WAF nie ma blokady botów AI sprzecznej z plikiem.
- Przeszukaj 30 dni logów pod kątem
GPTBot,OAI-SearchBot,ClaudeBotiPerplexityBoti spójrz na kody odpowiedzi. Ściana403albo429znaczy, że problem nie leży w pliku. - Zdecyduj dla każdego bota, czy chcesz crawlery treningowe, wyszukiwania, czy oba. To osobne user agenty nie bez powodu.
- Dopiero wtedy opublikuj albo zaktualizuj
llms.txti upewnij się, że każdy URL w nim jest dozwolony.
Podstawy, które naprawdę dają cytowania, czyli odpowiadanie od razu i sprawdzalne fakty, opisałem w artykule o LLM SEO. Żaden plik tekstowy ich nie zastąpi.
Najczęstsze pytania
Jaka jest różnica między llms.txt a robots.txt?
robots.txt mówi crawlerom, których ścieżek nie wolno im pobierać, i jest formalnym standardem (RFC 9309), którego trzymają się główne crawlery. llms.txt to lista lektur w markdown dla modeli językowych, propozycja, której żaden duży dostawca AI nie zobowiązał się czytać.
Czy llms.txt zastępuje robots.txt?
Nie. Robią co innego, a dla każdego posłusznego crawlera robots.txt ma pierwszeństwo. Jeśli bot jest tam zablokowany, nie przeczyta ani llms.txt, ani stron, które ten plik wymienia.
Jak zablokować GPTBot w robots.txt?
Dodaj grupę z User-agent: GPTBot i Disallow: /. Jeśli chcesz zachować widoczność w wyszukiwaniu ChatGPT, a wypisać się z treningu, zablokuj GPTBot i zostaw dostęp dla OAI-SearchBot, bo OpenAI dokumentuje je jako osobne crawlery.
Czy zablokowanie Google-Extended usuwa mnie z AI Overviews?
Nie. Google-Extended decyduje, czy Twoja treść jest używana do treningu i groundingu Gemini, a Google mówi, że nie wpływa to na wyszukiwarkę. AI Overviews są częścią wyszukiwarki i korzystają ze stron crawlowanych przez Googlebota.
Czy robots.txt jest prawnie wiążący? To konwencja techniczna, a nie umowa, i RFC 9309 mówi, że reguły nie są autoryzacją dostępu. Niektóre jurysdykcje traktują maszynowo odczytywalne zastrzeżenia jako istotne przy eksploracji tekstów i danych (unijne prawo autorskie przewiduje takie zastrzeżenie), ale nie polegaj na samym pliku przy ochronie czegokolwiek wrażliwego.
Czy mogę wpisać do llms.txt strony zablokowane w robots.txt?
Możesz, ale nic to nie da. Posłuszne crawlery stosują się do robots.txt i tych URL-i nie pobiorą, więc trzymaj oba pliki w zgodzie.
Co dalej
Otwórz teraz swój /robots.txt i przeczytaj go tak, jak zrobiłby to GPTBot: znajdź najbardziej szczegółową pasującą grupę, zignoruj resztę i zobacz, co zostało. Potem sprawdź, czy CDN nie ma blokady, która go przebija. To dziesięć minut i to ta część tematu, która naprawdę zmienia wyniki.
Potem opublikuj llms.txt, jeśli chcesz. Jest tani. Tylko nie oczekuj, że lista lektur otworzy drzwi, które zamknął Twój szlaban. Jeśli wolisz, żeby ktoś przejrzał z Tobą pliki, logi i reguły CDN, to jest projekt indywidualny.
Źródła i dalsza lektura - RFC 9309: Robots Exclusion Protocol (IETF) - Propozycja llms.txt (llmstxt.org) - Wprowadzenie do robots.txt (Google Search Central) - Crawlery i user agenty OpenAI (OpenAI)
Czy Twój robots.txt po cichu blokuje crawlery AI, na których Ci zależy?
AI Visibility sprawdza, do czego crawlery AI mają dostęp na Twojej stronie, wskazuje zablokowane boty i strony, których model nie odczyta, strona po stronie. Darmowy plan, jedna strona.
Sprawdź widoczność w AI