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.

Marcin PrzybyłCzas czytania: 12 minut
Przełącznica światłowodowa z żółtymi kablami wpiętymi w zielone porty

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ę.

Stan na wrzesień 2026. Nazwy robotów i ich zakres zmieniają się — tabelę trzeba przeglądać po każdej zmianie zasad ogłoszonej przez dostawcę.
RobotDo czego służyCo z nim zrobić
OAI-SearchBotWyszukiwarka w ChatGPT — stąd biorą się cytowania i odnośniki do stronyPrzepuścić
OAI-AdsBotWeryfikacja strony docelowej reklamy w ChatGPTPrzepuścić, jeśli się reklamujesz
GPTBotPobieranie treści do trenowania modeli OpenAIDecyzja własna — nie wpływa na cytowania
PerplexityBotWyszukiwarka Perplexity, która podaje źródła przy odpowiedziPrzepuścić
Google-ExtendedZgoda na wykorzystanie treści w funkcjach AI GooglePrzepuś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
# 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.xml
Podmień domenę w ostatniej linijce i wgraj plik do katalogu głównego. Adres pliku to zawsze twojadomena.pl/robots.txt — bez podkatalogów.

Gdzie 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

2026

Wrzesień 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.

llms.txt
# 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.
Format to zwykły Markdown: nagłówek z nazwą, cytat blokowy z opisem, potem sekcje z odnośnikami i krótkim opisem po dwukropku.

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ź.

Więcej typów nie znaczy lepiej. Nadmiar znaczników, które nie mają pokrycia w treści, tworzy tylko okazję do rozjazdu.
TypGdzie stoiCo porządkuje
OrganizationRaz na całą witrynęNazwa, adres, telefon, logo, profile — kim jesteś i gdzie działasz
ArticleKażdy wpis blogowy i poradnikTytuł, autor, obie daty, kategoria — czyj jest tekst i czy jest świeży
FAQPageStrony z pytaniami i odpowiedziamiGotowe pary pytanie–odpowiedź, zgodne z tym, co widać na stronie
ServiceStrony usługCo robisz, dla kogo i na jakim terenie
ProductKarty produktów w sklepieNazwa, cena, dostępność, opinie
JSON-LD — Organization
{
  "@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"
  ]
}
Wklej to w sekcji head strony, wewnątrz znacznika script z atrybutem type ustawionym na application/ld+json. Jeden taki blok na całą witrynę wystarczy, a podstrony mogą się do niego odwoływać przez pole @id.

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ść

403

Robot 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.

Test w terminalu
# 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 -c
Wynik poprawny to kod 200 i dokument tej samej długości, co ten oglądany w przeglądarce. Kod 403, kod 429 albo dokument wyraźnie krótszy znaczy, że robota zatrzymuje coś przed serwerem.
  1. Sprawdź 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.

  2. 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.
  3. 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.

  4. 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.

  1. 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.
  2. Dopisz przepustki dla OAI-SearchBot, OAI-AdsBot, PerplexityBot i Google-Extended, używając fragmentu z tego artykułu.
  3. 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.
  4. 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.
  5. 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.
  6. Wyłącz JavaScript w przeglądarce i sprawdź, ile treści zostaje na stronie bez skryptów.
  7. Dodaj blok Organization w JSON-LD z pełnym adresem, telefonem i polem sameAs prowadzącym do profili firmy.
  8. 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.
  9. Sprawdź w mapie witryny, czy zawiera wszystkie ważne adresy i czy jest wskazana w ostatniej linijce robots.txt.
  10. 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?
To robot OpenAI, który weryfikuje stronę docelową reklamy. Jeśli reklamujesz się w ChatGPT, musi mieć dostęp do adresów, na które prowadzą Twoje reklamy — zablokowany nie potwierdzi, że strona istnieje i zgadza się z treścią reklamy. Nie służy do trenowania modeli ani do cytowań w wyszukiwarce; tym zajmują się osobne roboty. Opis dotyczy stanu na wrzesień 2026.
Czy muszę mieć llms.txt?
Nie. To dodatek, nie fundament. Badanie na ponad 137 tysiącach domen pokazało, że 97% poprawnych plików llms.txt nie dostało w maju 2026 ani jednego zapytania, a Google deklaruje, że go nie używa. Plik nie szkodzi i jest tani w przygotowaniu, ale poprawny robots.txt oraz dane strukturalne dają dziś nieporównanie więcej.
Jak sprawdzić, czy nie blokuję robotów AI?
Wywołaj własną stronę, podając nagłówek User-Agent robota — na przykład OAI-SearchBot — i sprawdź kod odpowiedzi. Kod 200 znaczy, że robot wchodzi. Kod 403, 429 albo strona z CAPTCHA znaczy, że zatrzymuje go CDN lub firewall, nawet jeśli robots.txt na to pozwala. Otwórz też sam plik robots.txt w przeglądarce i przeczytaj go w całości — blokady najczęściej zostają tam z czasu budowy strony.
Czy dane strukturalne pomagają w cytowaniu przez AI?
Pomagają maszynie ustalić, kim jesteś, co sprzedajesz i na jakie pytania odpowiadasz, ale niczego nie gwarantują. Żaden dostawca modelu nie obiecuje cytowania w zamian za znaczniki. Article, Organization, FAQPage, Service i Product traktuj jako uporządkowanie faktów o firmie, a nie jako dźwignię widoczności.
Czy roboty AI respektują robots.txt?
Duzi dostawcy deklarują, że tak, i publikują nazwy swoich robotów właśnie po to, żeby dało się nimi sterować. Sam plik nie wymusza jednak niczego technicznie — to prośba, nie zamek. Jeśli chcesz mieć pewność, przepustkę albo blokadę trzeba postawić na serwerze lub w firewallu, a robots.txt zostawić jako deklarację.

O autorze

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
Opublikowano

Czytaj dalej