Technikalia
Jak przygotować stronę pod AI — robots.txt, llms.txt i dane strukturalne
Przepuść roboty odpowiedzialne za widoczność, opisz firmę danymi strukturalnymi i sprawdź, czy CDN nie odsyła ich z błędem — cała reszta to dodatki.

Jak roboty AI widzą Twoją stronę
Robot AI pobiera adres, dostaje kod odpowiedzi i surowy kod HTML — i na tym zwykle kończy się jego wizyta. Nie przewija strony, nie klika w zakładki i nie czeka cierpliwie, aż doładują się skrypty. Jeśli treść dokleja się dopiero po wykonaniu JavaScriptu, ryzykujesz, że robot zobaczy pustą ramkę.
Pod jednym słowem „AI" kryją się trzy zupełnie różne wizyty. Pierwsza to wyszukiwanie i cytowanie: robot szuka odpowiedzi na pytanie użytkownika i podaje odnośnik do źródła. Druga to trenowanie modelu, czyli pobieranie treści na zapas. Trzecia to weryfikacja strony docelowej reklamy — sprawdzenie, czy adres z kampanii w ogóle istnieje.
Każda z tych wizyt ma osobnego robota z osobną nazwą, więc blokada jednego nie oznacza blokady pozostałych. To jest dobra wiadomość: da się nie zgodzić na trenowanie i jednocześnie być cytowanym. Zła jest taka, że tę różnicę trzeba zapisać ręcznie, a domyślne ustawienia serwerów i wtyczek jej nie znają.
Stąd bierze się pierwszy praktyczny wniosek: treść musi stać w kodzie HTML, który serwer oddaje przy pierwszym żądaniu. Nie w danych doklejanych po chwili, nie w zakładce otwieranej kliknięciem, nie w oknie, które pojawia się po przewinięciu. Wszystko, co wymaga akcji człowieka, dla robota nie istnieje.
Techniczna gotowość pod AI to więc nie jedno przełączenie, tylko cztery warstwy: kto ma wstęp, co znajdzie w treści, czy nie zatrzyma go zabezpieczenie i jak szybko dostanie odpowiedź. Sama widoczność w odpowiedziach to osobny temat, opisany w tekście o pozycjonowaniu w ChatGPT i zasadach GEO; tutaj zajmujemy się warstwą pod spodem.
Strona, której robot nie pobierze, nie przegrywa rankingu. Ona po prostu nie bierze udziału.
robots.txt: kogo przepuścić i po co
Zasada mieści się w jednym zdaniu: przepuść wszystko, co odpowiada za widoczność, a świadomą decyzję podejmij wyłącznie w sprawie trenowania modeli. Plik robots.txt leży w katalogu głównym domeny i jest pierwszą rzeczą, po którą sięga robot. Wystarczy w nim jedna zapomniana linijka, żeby wyciąć całą domenę.
| Robot | Do czego służy | Co z nim zrobić |
|---|---|---|
| OAI-SearchBot | Wyszukiwarka w ChatGPT — stąd biorą się cytowania i odnośniki do strony | Przepuścić |
| OAI-AdsBot | Weryfikacja strony docelowej reklamy w ChatGPT | Przepuścić, jeśli się reklamujesz |
| GPTBot | Pobieranie treści do trenowania modeli OpenAI | Decyzja własna — nie wpływa na cytowania |
| PerplexityBot | Wyszukiwarka Perplexity, która podaje źródła przy odpowiedzi | Przepuścić |
| Google-Extended | Zgoda na wykorzystanie treści w funkcjach AI Google | Przepuścić |
OAI-SearchBot jest tu najważniejszy, bo to on stoi za cytowaniem. Jeśli firma ma być widoczna w odpowiedziach ChatGPT, ten robot musi wejść na stronę i pobrać treść. Jego blokada nie chroni przed niczym sensownym — kasuje wyłącznie szansę na odnośnik.
OAI-AdsBot dotyczy tylko reklamodawców. Sprawdza stronę, na którą prowadzi reklama, więc jego blokada uderza w kampanię, zanim ta ruszy. Jeśli planujesz reklamę w ChatGPT albo masz już konto w OpenAI Ads Manager, przepustka dla tego robota jest warunkiem, nie opcją.
PerplexityBot i Google-Extended działają po stronie widoczności, nie treningu. Pierwszy zbiera źródła do odpowiedzi Perplexity, drugi steruje wykorzystaniem treści w funkcjach AI Google. Blokada Google-Extended nie wpływa na zwykłe indeksowanie w wyszukiwarce, ale wyłącza stronę z odpowiedzi układanych przez AI nad listą wyników.
GPTBot to jedyna realna decyzja do podjęcia
GPTBot pobiera treści do trenowania modeli i nie ma związku z cytowaniem. Blokując go, nie tracisz widoczności — mówisz tylko, że nie zgadzasz się na wykorzystanie swoich tekstów jako materiału treningowego. To decyzja o prawach do treści, a nie o marketingu.
Wydawca, który żyje ze sprzedaży dostępu do własnego archiwum, ma powód, żeby go zablokować. Firma usługowa publikująca poradniki po to, żeby ktoś ją znalazł, zwykle zostawia otwarte drzwi. Obie odpowiedzi są poprawne pod jednym warunkiem: że ktoś je świadomie podjął, zamiast odziedziczyć po domyślnym ustawieniu wtyczki.
# robots.txt — stan na wrzesień 2026
# Cytowania w wyszukiwarce ChatGPT
User-agent: OAI-SearchBot
Allow: /
# Weryfikacja strony docelowej reklamy
User-agent: OAI-AdsBot
Allow: /
# Trenowanie modeli OpenAI — tu podejmujesz decyzję.
# Zamień Allow na Disallow, jeśli nie zgadzasz się na trening.
User-agent: GPTBot
Allow: /
# Wyszukiwarka Perplexity
User-agent: PerplexityBot
Allow: /
# Funkcje AI Google
User-agent: Google-Extended
Allow: /
# Wszyscy pozostali
User-agent: *
Allow: /
Disallow: /koszyk/
Disallow: /panel/
Disallow: /szukaj
Sitemap: https://twojadomena.pl/sitemap.xmlGdzie ten plik leży i jak sprawdzić, że działa
robots.txt leży zawsze w katalogu głównym domeny i pod adresem twojadomena.pl/robots.txt. Plik w podkatalogu nie działa, tak samo jak plik pod adresem z „www", jeśli witryna odpowiada bez tego przedrostka. Każda subdomena ma własny robots.txt — sklep pod adresem sklep.twojadomena.pl potrzebuje osobnego.
Sprawdzenie jest banalne: wpisz ten adres w przeglądarce. Zobaczysz dokładnie to, co zobaczy robot. Jeśli zamiast tekstu pojawi się strona błędu albo strona główna witryny, pliku nie ma tam, gdzie powinien, i wszystkie wpisane w nim zasady są dziś wyłącznie teorią.
llms.txt — co to jest i czy warto
llms.txt to plik tekstowy w katalogu głównym, który podaje modelom skrócony spis treści witryny: czym firma się zajmuje i pod jakimi adresami leżą najważniejsze strony. Pomysł jest sensowny. Dane o jego skuteczności są dziś jednak bezlitosne i lepiej je znać przed wpisaniem tego zadania do harmonogramu.
Pliki bez ani jednego zapytania
97%Tyle poprawnych plików llms.txt nie zostało w maju 2026 pobranych ani razu.
Badanie na ponad 137 tysiącach domen.
Zbadane domeny
137 tys.Badanie objęło ponad 137 tysięcy domen — tej skali nie da się zbyć pojedynczym wyjątkiem.
To samo badanie.
Stan opisu
2026Wrzesień 2026. Standardy dostępu do treści zmieniają się szybciej niż same strony.
Do tego dochodzi stanowisko Google: firma deklaruje, że pliku llms.txt nie używa. Innymi słowy — plik jest przygotowany dla odbiorcy, który po niego nie sięga. To nie znaczy, że jest bez sensu, tylko że nie należy do fundamentów i nie zastąpi ani robots.txt, ani danych strukturalnych.
llms.txt bywa mylony z trzema innymi rzeczami i żadną z nich nie jest. Nie zastępuje mapy witryny, bo nie zawiera wszystkich adresów ani dat aktualizacji. Nie steruje dostępem, bo niczego nie blokuje ani nie przepuszcza — od tego jest robots.txt. Nie jest też formatem, który któraś z dużych wyszukiwarek uznała za obowiązujący.
Kiedy mimo wszystko go dodać? Kiedy masz go z czego złożyć od ręki i nie odbiera to czasu ważniejszym pracom. Plik nie szkodzi, jest czytelny dla człowieka i porządkuje wiedzę o własnej witrynie. Kolejność prac jest jednak jednoznaczna: najpierw robots.txt i dane strukturalne, potem ewentualnie to.
# Nazwa firmy
> Jedno zdanie o tym, czym firma się zajmuje, dla kogo pracuje i gdzie.
## Usługi
- [Strony internetowe](https://twojadomena.pl/uslugi/strony): zakres prac, technologia, dla kogo.
- [Sklepy internetowe](https://twojadomena.pl/uslugi/sklepy): platforma, integracje, obsługa po starcie.
- [Wdrożenia AI](https://twojadomena.pl/uslugi/ai): jakie procesy automatyzujemy i w jakim czasie.
## Wiedza
- [Poradnik GEO](https://twojadomena.pl/blog/pozycjonowanie-w-chatgpt-geo): jak powstają cytowania w ChatGPT.
- [Strona gotowa pod AI](https://twojadomena.pl/blog/strona-gotowa-pod-ai): robots.txt, llms.txt, dane strukturalne.
## Firma
- [O nas](https://twojadomena.pl/o-nas): kto to robi i od kiedy.
- [Kontakt](https://twojadomena.pl/kontakt): adres, telefon, formularz.Dane strukturalne: Article, Organization, FAQPage, Service, Product
Pięć typów wystarczy zdecydowanej większości firmowych stron. Dane strukturalne to zapis w formacie JSON-LD, który mówi maszynie wprost to, co człowiek odczytuje z układu strony: że ten napis to nazwa firmy, ten to cena, a ta para zdań to pytanie i odpowiedź.
| Typ | Gdzie stoi | Co porządkuje |
|---|---|---|
| Organization | Raz na całą witrynę | Nazwa, adres, telefon, logo, profile — kim jesteś i gdzie działasz |
| Article | Każdy wpis blogowy i poradnik | Tytuł, autor, obie daty, kategoria — czyj jest tekst i czy jest świeży |
| FAQPage | Strony z pytaniami i odpowiedziami | Gotowe pary pytanie–odpowiedź, zgodne z tym, co widać na stronie |
| Service | Strony usług | Co robisz, dla kogo i na jakim terenie |
| Product | Karty produktów w sklepie | Nazwa, cena, dostępność, opinie |
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://twojadomena.pl/#organization",
"name": "Nazwa firmy",
"url": "https://twojadomena.pl",
"logo": "https://twojadomena.pl/logo.png",
"description": "Jedno zdanie o tym, czym firma się zajmuje i dla kogo.",
"telephone": "+48 000 000 000",
"email": "kontakt@twojadomena.pl",
"address": {
"@type": "PostalAddress",
"streetAddress": "Ulica 1",
"addressLocality": "Miasto",
"postalCode": "00-000",
"addressCountry": "PL"
},
"areaServed": "PL",
"sameAs": [
"https://www.facebook.com/twojprofil",
"https://www.linkedin.com/company/twojafirma"
]
}Pole „sameAs" jest niepozorne i robi więcej, niż wygląda: łączy stronę z profilami firmy w innych serwisach, czyli pozwala maszynie potwierdzić, że mówi o tym samym podmiocie. Bez niego firma o typowej nazwie jest tylko jedną z wielu tak samo nazwanych.
W sklepach ciężar przenosi się na typ Product: nazwa, cena, dostępność i opinie to dokładnie te dane, których asystent szuka, składając odpowiedź o zakupie. Cena i dostępność w znaczniku muszą zgadzać się z tym, co pokazuje karta produktu — także w trakcie promocji, kiedy rozjeżdżają się najczęściej. Szczegóły zbieramy w osobnym tekście o GEO dla sklepów internetowych.
Od którego typu zacząć?
Zacznij od Organization, bo to jedyny blok, który opisuje firmę jako podmiot, a nie pojedynczą stronę. Nazwa, adres, telefon i odnośniki do profili wystarczą, żeby maszyna przestała zgadywać, o kim mówi — i żeby nie pomyliła Cię z firmą o podobnej nazwie z drugiego końca Polski.
Drugi w kolejności jest Article na wpisach blogowych, bo niesie datę publikacji i datę ostatniej zmiany. Świeżość to jeden z niewielu sygnałów, które da się podać maszynie wprost, a tekst bez daty modyfikacji nie mówi o sobie nic. Service i Product dokładasz wtedy, gdy pierwsze dwa już stoją.
Blokady po stronie CDN i firewalla
To jest najczęstsza cicha przyczyna niewidoczności w AI. Plik robots.txt mówi robotowi „wchodź", a warstwa stojąca przed serwerem odsyła go z błędem, zanim ktokolwiek zdąży to zauważyć. W raportach nie widać nic, bo z punktu widzenia strony nic się nie stało — ruch, którego nie było, nie zostawia śladu.
Kod odpowiedzi, który kasuje widoczność
403Robot dostaje odmowę dostępu i wychodzi. Dla systemu odpowiadającego użytkownikowi Twoja strona przestaje w tym momencie istnieć — nie jako gorsze źródło, tylko jako żadne.
Typowa odpowiedź reguły firewalla aplikacyjnego na nieznanego klienta.
Mechanizmy są trzy i każdy działa inaczej:
- reguła firewalla aplikacyjnego odrzuca żądanie kodem 403 albo 429, bo nie rozpoznaje klienta i traktuje go jak automat do zablokowania,
- zabezpieczenie antybotowe serwuje CAPTCHA — człowiek ją rozwiąże, robot zobaczy stronę z jednym pytaniem i formularzem zamiast treści,
- wyzwanie JavaScript wymaga wykonania skryptu przed pokazaniem treści; robot, który skryptów nie wykonuje, dostaje pustą stronę i kod 200, czyli błąd bez objawów.
Ostatni przypadek jest najgorszy, bo wygląda na sukces. Serwer odpowiada poprawnie, w statystykach wszystko się zgadza, a robot pobiera dokument bez ani jednego zdania treści.
Te reguły rzadko ktoś włącza świadomie. Wchodzą razem z pakietem zabezpieczeń u dostawcy hostingu albo w panelu CDN, w trybie „chroń przed automatami", i robią dokładnie to, co obiecują — nie odróżniając robota wyszukiwarki od skryptu, który kopiuje cennik. Dlatego zmiana pakietu hostingu potrafi wyciąć widoczność bez jednej linijki zmiany na stronie.
# Kod odpowiedzi dla robota wyszukiwarki ChatGPT
curl -A "OAI-SearchBot" -s -o /dev/null -w "%{http_code}\n" https://twojadomena.pl/
# To samo dla robota reklamowego i strony docelowej kampanii
curl -A "OAI-AdsBot" -s -o /dev/null -w "%{http_code}\n" https://twojadomena.pl/oferta
# Czy w treści w ogóle coś jest — liczba znaków pobranego dokumentu
curl -A "OAI-SearchBot" -s https://twojadomena.pl/ | wc -cSprawdź kod odpowiedzi dla każdego robota osobno
Wywołaj stronę główną i jedną podstronę usługową, podając nagłówek User-Agent kolejnych robotów. Interesuje Cię wyłącznie liczba: 200 albo coś innego.Testuj też adres z reklamy, jeśli prowadzi ona gdzie indziej niż strona główna.
Porównaj długość treści z tym, co widzi przeglądarka
Dokument krótszy o rząd wielkości od tego, co pokazuje przeglądarka, znaczy, że treść dokleja się skryptem albo że w odpowiedzi siedzi ekran zabezpieczenia.Zajrzyj w statystyki dostawcy CDN
Panele CDN pokazują odrzucone żądania razem z nazwą reguły, która je odrzuciła. To najszybszy sposób, żeby zobaczyć blokadę, o której nikt w firmie nie wiedział.Szukaj po nazwie robota, nie po adresie IP — adresy się zmieniają, nazwa nie.
Dodaj wyjątek po nazwie robota i powtórz test
Regułę ustaw na konkretną nazwę klienta, a nie na wyłączenie całego zabezpieczenia. Po zmianie wykonaj dokładnie te same wywołania i sprawdź, czy kod odpowiedzi się zmienił.Wynik zapisz z datą. Przy kolejnej aktualizacji reguł będziesz wiedzieć, co działało wcześniej.
Szybkość strony i Core Web Vitals
Dla robota liczy się przede wszystkim czas odpowiedzi serwera i to, czy treść stoi w kodzie HTML. Reszta wskaźników opisuje wrażenia człowieka. Robot ma ograniczony czas na pobranie strony; jeśli serwer odpowiada wolno albo zwraca błędy przy większym ruchu, część adresów po prostu nie zostanie pobrana.
Core Web Vitals mierzą trzy rzeczy: kiedy pojawia się główna treść, jak szybko strona reaguje na kliknięcie i czy układ nie skacze podczas wczytywania. Dwie ostatnie dotyczą wyłącznie człowieka — robot nie klika i nie widzi przeskoku. Pierwsza wiąże się jednak bezpośrednio z tym, czy treść jest w dokumencie od razu, czy dopiero po pracy skryptów.
Zacznij od trzech rzeczy i żadna z nich nie jest efektowna: czas odpowiedzi serwera przy pustym cache, waga zdjęć na stronie głównej, liczba skryptów firm trzecich. Dopiero po nich ma sens rozmowa o krojach pisma, animacjach i reszcie warstwy wizualnej.
Ta sama optymalizacja pracuje więc na dwa fronty. Strona, która oddaje treść w pierwszej odpowiedzi serwera, jest jednocześnie łatwiejsza do pobrania przez robota i szybsza dla człowieka, który przyjdzie z cytowania albo z strony docelowej kampanii w ChatGPT. Nie ma tu kompromisu do rozstrzygnięcia — jest jedna robota do wykonania.
Checklista do samodzielnego sprawdzenia
Pierwszych sześć punktów zrobisz bez programisty — wystarczy przeglądarka i terminal. Kolejność jest ułożona od rzeczy, które psują najwięcej, do tych, które dokładają ostatnie procenty.
- Otwórz adres twojadomena.pl/robots.txt w przeglądarce i przeczytaj plik w całości. Sprawdź, czy nie ma w nim zapisu blokującego wszystko z czasu budowy strony.
- Dopisz przepustki dla OAI-SearchBot, OAI-AdsBot, PerplexityBot i Google-Extended, używając fragmentu z tego artykułu.
- Podejmij decyzję w sprawie GPTBot i zapisz ją w komentarzu w pliku, razem z datą — inaczej nikt później nie odróżni wyboru od przeoczenia.
- Wywołaj stronę główną i jedną podstronę z nagłówkiem User-Agent każdego z tych robotów. Oczekiwany wynik to kod 200 i pełna treść dokumentu.
- Zajrzyj w panel dostawcy CDN i poszukaj odrzuconych żądań od klientów o tych nazwach. Jeśli tam są, dodaj wyjątek po nazwie robota.
- Wyłącz JavaScript w przeglądarce i sprawdź, ile treści zostaje na stronie bez skryptów.
- Dodaj blok Organization w JSON-LD z pełnym adresem, telefonem i polem sameAs prowadzącym do profili firmy.
- Dołóż Article na wpisach, Service na stronach usług, Product na kartach produktów i FAQPage tam, gdzie pytania i odpowiedzi są widoczne na stronie.
- Sprawdź w mapie witryny, czy zawiera wszystkie ważne adresy i czy jest wskazana w ostatniej linijce robots.txt.
- Na końcu, jeśli zostanie czas, dodaj llms.txt. Ten punkt jest ostatni celowo i tak ma zostać.
Cały opis dotyczy stanu na wrzesień 2026. OpenAI zmienia nazwy robotów i zasady dostępu częściej niż inni dostawcy, więc pierwsze cztery punkty tej listy trzeba powtarzać po każdej większej zmianie zasad i po każdej zmianie hostingu lub dostawcy CDN. Szerszy obraz tego, jak reklama i widoczność w ChatGPT wyglądają w Polsce, opisuje przewodnik po reklamie w ChatGPT.
Najczęstsze pytania
Co to jest OAI-AdsBot?
Czy muszę mieć llms.txt?
Jak sprawdzić, czy nie blokuję robotów AI?
Czy dane strukturalne pomagają w cytowaniu przez AI?
Czy roboty AI respektują robots.txt?
Marcin Przybył
Prowadzi zespół, który od 2021 roku zajmuje się tworzeniem narzędzi, aplikacji, serwisów i nowoczesnych stron internetowych.
- wdrożenia AI i agentów w firmach
- automatyzacja procesów (n8n, Make, integracje API)
- strony i aplikacje w Next.js
- sklepy internetowe i systemy dedykowane
- pozycjonowanie (SEO) i widoczność w wyszukiwarkach generatywnych
- kampanie Google Ads, Meta Ads i TikTok Ads
Czytaj dalej



