To, czy ChatGPT będzie cytował Twoją witrynę, zależy z jednej strony od jakości treści i autorytetu Twojej marki w sieci, z drugiej, czy witryna jest w ogóle gotowa technicznie na wizyty botów OpenAI. W tym artykule skupimy się na drugiej części – pokażemy m.in., jak zadbać o crawlability strony pod AI i jak podejść do architektury informacji. Zapraszamy do lektury!

Czego dowiesz się z artykułu?
- Co oznacza techniczna struktura strony pod roboty OpenAI?
- Roboty OpenAI – które trzeba uwzględnić w technicznym SEO?
- Robots.txt – pierwszy, ale niejedyny element technicznej optymalizacji
- Struktura URL i architektura informacji – jak pomóc AI zrozumieć serwis?
- Linkowanie wewnętrzne – jak budować mapę pojęć dla ChatGPT?
- Renderowanie i JavaScript – czy roboty OpenAI widzą Twoją treść?
- Canonicale, noindex i duplikaty – jak nie mylić robotów AI?
- Dane strukturalne – jak opisać stronę językiem zrozumiałym dla maszyn?
- Struktura HTML i dostępność – czy robot rozumie układ strony?
- Statusy HTTP, przekierowania i błędy – co może blokować roboty OpenAI?
- CDN, WAF i Cloudflare – czy zabezpieczenia nie blokują ChatGPT?
- Logi serwera – jak sprawdzić, czy roboty OpenAI faktycznie odwiedzają stronę?
- Llms.txt – czy warto wdrożyć dodatkowy plik dla systemów AI?
- Podsumowanie
- FAQ – techniczna struktura strony pod roboty OpenAI i ChatGPT
Co oznacza techniczna struktura strony pod roboty OpenAI?
Techniczne SEO pod ChatGPT Search w ogromnym stopniu pokrywa się z tym, co od lat sprawdza się przy pozycjonowaniu w Google. Chodzi o to, aby boty – w tym przypadku crawlery OpenAI – mogły bez problemu dotrzeć do Twoich treści, pobrać je i zrozumieć, czego dotyczą. W tym celu strona musi m.in.:
- być w ogóle dostępna dla crawlerów;
- mieć jasną strukturę adresów URL i linkowania wewnętrznego;
- być dobrze opisana znacznikami schema.org;
- korzystać z czytelnego, najlepiej semantycznego kodu HTML.
Podstawy są więc identyczne, jak wskazówki, które moglibyśmy znaleźć np. w poradnikach na Google Search Central. Różnica polega na tym, że przy optymalizacji pod crawlery AI trzeba jeszcze bardziej skupić się na tym, czy informacje na stronie są prezentowane w sposób jednoznaczny i spójny na wszystkich poziomach.
Roboty OpenAI – które trzeba uwzględnić w technicznym SEO?
OpenAI crawluje sieć przy pomocy kilku różnych robotów, które działają niezależnie od siebie. Znać warto trzy: OAI-SearchBot, GPTBot oraz ChatGPT-User – działanie każdego z nich dokładnie opisuje dokumentacja OpenAI, my w poniższej tabelce podsumujemy najważniejsze informacje.
| Jakie jest jego zadanie? | Co z nim zrobić pod kątem pozycjonowania w ChatGPT? | |
|---|---|---|
| OAI-SearchBot | Odpowiada za tryb wyszukiwania w ChatGPT – przeszukuje sieć pod kątem informacji, które GPT może zacytować w odpowiedzi na konkretny prompt użytkownika. | Zezwolić mu na dostęp do strony – inaczej witryna nie będzie miała żadnych szans na cytowania w odpowiedziach chatbota. |
| GPTBot | Pobiera publicznie dostępne treści, które mogą posłużyć do trenowania modeli GPT. | Można go zablokować, jeśli nie chcesz, by Twoje treści trafiały do bazy danych treningowych – nie wpłynie to na widoczność w ChatGPT Search. |
| ChatGPT-User | Pobiera stronę „na żądanie”, gdy użytkownik każe GPT wejść pod dany adres. | Warto przyznać mu dostęp do strony, mimo że nie wpływa na widoczność w odpowiedziach. |
Robots.txt – pierwszy, ale niejedyny element technicznej optymalizacji
Zasady dostępu crawlerów do treści strony definiujemy – tak samo, jak w przypadku botów wyszukiwarek – w pliku robots.txt. Gdy roboty OpenAI trafiają na Twoją stronę, w pierwszej kolejności otwierają właśnie ten dokument, dopiero potem decydują, czy zajrzeć do treści, czy nie.
Jeśli chcesz, żeby ChatGPT w trybie wyszukiwania mógł trafić na Twoją stronę, ale zależy Ci też na tym, aby OpenAI nie wykorzystywało Twoich treści do treningu modeli, wystarczy umieścić w robots.txt dyrektywy:
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
Taka konfiguracja na start powinna być najbezpieczniejsza. Nie musisz, oczywiście, dawać dostępu OAI-SearchBot do wszystkich podstron domeny, możesz zablokować część katalogów, np. folder z panelem klienta, jeśli zajmujesz się sklepem internetowym.
Jak uporządkować sitemapę w większym serwisie?
W pliku robots.txt warto od razu dodać link do sitemapy z listą adresów, które chcesz udostępnić robotom do analizy. Na małej stronie wszystkie adresy można umieścić w jednym pliku XML, na większej – radzimy je podzielić na kilka mniejszych sitemap osadzonych w „mapie map”, czyli sitemap_index.xml.
Jakie sitemapy XML możesz utworzyć?
| Co zawiera? | Jak może pomóc? | |
|---|---|---|
| sitemap-pages.xml | Statyczne podstrony: stronę główną, „O nas”, kontakt, opisy usług. | Pomaga ustalić podstawowe fakty o marce. |
| sitemap-blog.xml | Wpisy blogowe, artykuły eksperckie, newsy. | Grupuje treści, które najczęściej odpowiadają wprost na prompty użytkowników. |
| sitemap-categories.xml | Strony kategorii i sekcji tematycznych. | Pokazuje, wokół jakich tematów zorganizowany jest serwis. |
| sitemap-products.xml | Karty produktów. | Zbiera w jednym miejscu adresy z konkretnymi danymi o ofercie. |
| sitemap-case-studies.xml | Case studies i realizacje. | Wskazuje na podstrony z unikalnymi treściami, które świadczą przy tym o kompetencjach marki. |
Struktura URL i architektura informacji – jak pomóc AI zrozumieć serwis?
Sama struktura URL-i też jest dosyć istotnym elementem przy optymalizacji strony pod OAI-SearchBot i inne roboty AI, a to dlatego, że stanowi ona odbicie całej architektury informacji na stronie. Dobrze zbudowany adres powinien już sam w sobie mówić robotom, gdzie w hierarchii serwisu znajduje się dana strona i czego dotyczy.
URL-e pod crawlery muszą być przede wszystkim semantyczne, czyli pisane tak, aby dało się po nich rozpoznać, co znajduje się na stronie. Prosty przykład:
twojadomena.pl/p?id=8412&cat=3 vs. twojadomena.pl/buty-do-biegania/nike-pegasus-41
Drugi wariant niesie ze sobą konkretną informację jeszcze przed wejściem na stronę. Dla crawlerów AI stanowi ona dodatkowy sygnał. Słowa w adresie potwierdzają temat treści i pomagają ustalić, czy strona pasuje do promptu użytkownika, czy nie.
Linkowanie wewnętrzne – jak budować mapę pojęć dla ChatGPT?
O ile w klasycznym SEO linkowanie wewnętrzne służy głównie do przekazywania „mocy SEO" między stronami i ma prowadzić użytkownika przez serwis, AI dokłada jeszcze jedną rolę: powinno budować mapę pojęć, dzięki której model rozumie, jak poszczególne treści na Twojej stronie łączą się ze sobą znaczeniowo.
Jakie połączenia mogą być szczególnie przydatne:
- z artykułów informacyjnych do stron usług lub produktów – co łączy Twoją „wiedzę” z „ofertą” w jedną ścieżkę;
- ze stron usług do case studies – czyli od opisu tego, co robisz, do dowodu, że robisz to skutecznie. Tym sposobem AI dostaje sygnał, że deklaracje marki nie są bez pokrycia;
- z case studies do powiązanych technologii, branż lub rozwiązań – wtedy pojedynczy przykład realizacji staje się swego rodzaju węzłem, który łączy efekty pracy z kompetencjami firmy;
- z sekcji FAQ do pogłębionych artykułów na ten sam temat – krótka odpowiedź w FAQ zaspokoi podstawową intencję, a artykuł może ją rozwinąć.
Renderowanie i JavaScript – czy roboty OpenAI widzą Twoją treść?
Crawlery OpenAI, podobnie zresztą jak innych chatbotów, są w jednej kwestii bardzo ograniczone – w ogóle nie przetwarzają kodu JavaScript. Wchodząc na stronę „widzą” wyłącznie surowy kod HTML; wszystko, co pojawia się dopiero po uruchomieniu skryptów JS w przeglądarce, dla nich de facto nie istnieje.
Będzie to ogromnym problemem na przykład w przypadku:
- aplikacji SPA renderowanych po stronie klienta;
- dynamicznie ładowanych opisów produktów;
- treści ukrytych w zakładkach;
- artykułów pobieranych przez API z zewnętrznego źródła już po załadowaniu strony;
- filtrów w sklepach, które dynamiczne generują adresy właśnie na bazie JavaScript.
I dlatego zasada jest prosta, wszystkie treści, które mają być dostępne dla modeli AI, muszą znajdować się bezpośrednio w kodzie HTML.
Canonicale, noindex i duplikaty – jak nie mylić robotów AI?
Na początku artykułu mówiliśmy o tym, jak ważne dla robotów AI są spójne sygnały – dotyczy to także adresów, pod którymi znajdują się treści. Crawler powinien od razu wiedzieć, która wersja danej podstrony jest kanoniczna. A może być ich przecież kilka:
- z www i bez www;
- przez http oraz https;
- z ukośnikiem na końcu adresu i bez niego (/oferta/ i /oferta);
- z parametrami sesji, śledzenia kampanii (?utm_source=...) itd.
Z tego względu najbezpieczniej byłoby, aby każda podstrona w obrębie domeny miała w kodzie HTML znacznik rel=”canonical”, nawet jeśli miałaby wskazywać… na samą siebie.
Pamiętaj również o tagu noindex (< meta name="”robots”" content="”noindex”" >) – on też wskazuje robotom, aby wykluczyły daną podstronę z wyszukiwania. Należy go stosować tylko dla podstron, które nie mają żadnej wartości dla SEO, na przykład na stronie koszyka albo w panelu klienta.
Dane strukturalne – jak opisać stronę językiem zrozumiałym dla maszyn?
Znaczniki schema są kolejnym dobrym sposobem, aby ułatwić robotom OpenAI pracę. Za ich pomocą możemy jednoznacznie określić w kodzie HTML, czym jest i jaką rolę ma dany fragment treści. A to, oczywiście, powinno pomóc crawlerom w interpretacji zawartości strony.
Jakie dane warto na początek zdefiniować przy użyciu schema:
- kto jest właścicielem strony – do tego służy znacznik Organization, który pozwala opisać firmę stojącą za stroną;
- kto jest autorem treści na danej podstronie – do czego przyda się znacznik Person; można w nim przedstawić m.in. kwalifikacje i kompetencje autora, co zawsze dodaje wiarygodności;
- czego dotyczy treść – znaczniki Article, BlogPosting, FAQPage czy HowTo mówią robotowi, z jakim typem treści ma do czynienia: czy jest to np. artykuł ekspercki, czy raczej poradnik krok-po-kroku;
- co oferuje firma – znaczniki Product i Service opisują sam produkt lub usługę, znacznik Offer, szczegóły oferty (czyli cenę, dostępność, czas realizacji itp.).
Struktura HTML i dostępność – czy robot rozumie układ strony?
Skoro crawlery modeli AI analizują treść strony głównie na bazie kodu HTML, trzeba szczególnie zadbać o jego strukturę. Tutaj znów sprawdzają się te same praktyki, co w zwykłym SEO, ale też przy optymalizacji z myślą o dostępności – roboty OpenAI nie różnią się aż tak mocno, jeśli chodzi o podejście do analizy struktury kodu, na przykład od czytników ekranu.
Absolutne minimum, o które trzeba zadbać, to:
- logiczna hierarchia nagłówków – czyli dokładnie jeden < h1 > na stronę, pod nim < h2 > dla sekcji, < h3 > dla podsekcji;
- semantyczne znaczniki HTML5 zamiast klasycznych tagów typu < div > – na przykład < main > i < article > sygnalizują robotowi „tu jest właściwa treść, tu szukaj informacji”;
- opisowe linki – tekst każdego odnośnika powinien jasno wskazywać, co znajduje się po drugiej stronie, nie tak jak „kliknij tutaj” albo „zobacz więcej”;
- atrybuty alt przy grafikach – crawlery nie są w stanie same przetwarzać obrazów, potrzebują przynajmniej ogólnego opisu ich zawartości. Z tego samego względu należy raczej unikać prezentowania kluczowych informacji (np. statystyk) tylko na grafikach, zawsze warto omówić je też w tekście;
- dostępne menu nawigacyjne – menu powinno być zbudowane na zwykłych linkach HTML (< a href >) w obrębie znacznika < nav >, a nie generowane skryptami JS.
Statusy HTTP, przekierowania i błędy – co może blokować roboty OpenAI?
Gdy crawler odwiedza stronę, dzieje się dokładnie to samo, gdy robi to użytkownik: wysyła żądanie do serwera, serwer udziela odpowiedzi i, jeśli wszystko jest w porządku, odsyła pliki witryny. Co do zasady, roboty będą w stanie wejść na stronę tylko, jeśli otrzymają w odpowiedzi kod statusu HTTP:
- 200 – wtedy wszystko jest w porządku;
- 301/308 – strona działa, ale jest trwale przekierowana;
- 302/309 – strona działa, lecz jest przekierowana tymczasowo.
W każdej innej sytuacji, jeśli serwer odpowie statusem 4xx lub 5xx (które świadczą odpowiednio o błędzie klienta lub serwera), robot wycofa się z crawlowania strony. Dlatego też trzeba monitorować w logach, jak serwer przetwarza zapytania od crawlerów; jeśli błędy pojawiają się regularnie, strona musi mieć jakiś problem.
CDN, WAF i Cloudflare – czy zabezpieczenia nie blokują ChatGPT?
Każdy dobry CDN powinien mieć swoje zabezpieczenia antybotowe, chroniące serwery przed zmasowanym ruchem botów. Natomiast wiele z nich kwalifikuje jako „podejrzane” również roboty AI i blokuje je niezależnie od tego, co znajduje się w robots.txt.
Jeżeli korzystasz z CDN-a i/lub z zapory typu WAF (dotyczy ich ten sam problem), koniecznie sprawdź w konfiguracji, czy nie blokują wizyt OAI-SearchBot. Większość robi to domyślnie, w takiej sytuacji wystarczy po prostu dodać oficjalne adresy IP robotów OpenAI jako wyjątki.
Logi serwera – jak sprawdzić, czy roboty OpenAI faktycznie odwiedzają stronę?
Logi serwera są tak naprawdę jedynym miejscem, w którym możesz czarno na białym zobaczyć, czy boty AI crawlują stronę, czy nie. W tym przypadku interesuje nas konkretnie plik access.log (pobierzesz go z panelu hostingu lub przez FTP), z zapisami wszystkich żądań, jakie trafiają do serwera. Nie musisz, oczywiście, analizować ich ręcznie – np. Log File Analyser od Screaming Frog pozwala bardzo łatwo odfiltrować zapytania botów AI od reszty ruchu.
Co trzeba sprawdzać w logach pod kątem widoczności w ChatGPT?
- Czy zapytania od OAI-SearchBot w ogóle pojawiają się w logach?
- Czy na żądania bota serwer konsekwentnie zwraca status 200 OK, ewentualnie przekierowuje go na inny adres?
- Czy CDN lub WAF nie blokuje bota? O tym może świadczyć status 403 Forbidden albo 429 Too Many Requests w odpowiedzi na żądania.
- Czy bot odwiedza te strony, na których Ci zależy?
- Czy nie crawluje masowo adresów bez wartości, na przykład dziesiątek wariantów tego samego adresu z różnymi parametrami?
- Czy odwiedza sitemapę?
- Jeśli wprowadziłeś zmiany w konfiguracji robots.txt, CDN-u albo WAF, czy zmieniło się po tym zachowanie bota?
Llms.txt – czy warto wdrożyć dodatkowy plik dla systemów AI?
Od dłuższego już czasu w dyskusjach o tym, jak dostosowywać strony pod ChatGPT i inne modele AI pojawia się temat llms.txt – pliku, który umieszczony w katalogu strony, miałby być „przewodnikiem” po niej, napisanym specjalnie dla LLM-ów. Ale wszystkie dane z badań pokazują, że wdrażanie go… nie ma większego sensu.
Llms.txt z założenia powinien zawierać opis marki stojącej za stroną oraz listę najważniejszych podstron wraz z krótkimi streszczeniami. Idea jest taka, że LLM-y mają ograniczone okno kontekstu, więc llms.txt podaje im „esencję” tego, o czym jest strona. Tyle że żaden duży dostawca modeli AI, od OpenAI po Anthropic, nie potwierdził, że w ogóle używa takiego pliku. Na początku tego roku zespół od Otterly.ai – jednego z większych narzędzi do monitorowania widoczności w chatbotach – specjalnie przeanalizował pod tym kątem 62 tysiące wizyt botów AI na swoich stronach; w ciągu trzech miesięcy pliki llms.txt zostały wywołane zaledwie 84 razy.
Można powiedzieć tyle: llms.txt na pewno nie szkodzi, ale nie ma żadnych dowodów, aby jego obecność jakkolwiek pozytywnie wpływała na AI crawlability strony.
Podsumowanie
SEO techniczne pod roboty OpenAI sprowadza się tak naprawdę do jednej myśli, która przewijała się przez cały tekst – im mniej bot musi zgadywać na temat treści strony, tym większa szansa, że weźmie je pod uwagę przy generowaniu odpowiedzi na prompty. Dobra wiadomość jest taka, że jeśli Twoja strona jest dobrze zoptymalizowana pod klasyczne wyszukiwarki, większość pracy jest już za Tobą. ;)
FAQ – techniczna struktura strony pod roboty OpenAI i ChatGPT
Czy GPTBot jest potrzebny do widoczności w ChatGPT Search?
Nie. Za wyszukiwanie odpowiada OAI-SearchBot; GPTBot służy wyłącznie do zbierania treści na potrzeby trenowania modeli. Możesz więc go zablokować bez obaw o to, czy Twoja strona będzie widoczna w ChatGPT Search.
Czy ChatGPT widzi treści ukryte za JavaScriptem?
Czy dane strukturalne pomagają robotom OpenAI?
Czy Cloudflare może blokować roboty OpenAI?
Źródła:
developers.openai.com/api/docs/bots
semrush.com/blog/technical-seo-impact-on-ai-search-study
searchengineland.com/technical-seo-generative-search-optimizing-ai-agents-473039
otterly.ai/blog/the-llms-txt-experiment
Zapisz się do darmowego newslettera
Zyskaj dodatkową wiedzę o SEO, marketingu i technologiach.



