Kiedy rok temu klient przyszedl do mnie z pytaniem, dlaczego jego sklep WooCommerce nie pojawia sie w odpowiedziach ChatGPT ani Perplexity, siadlem do logow serwera. Okazalo sie, ze GPTBot przychodzil regularnie, ale pobiral glownie strony z komunikatem "Loading..." - typowy objaw aplikacji, ktora caly content renderuje przez JavaScript. Bot widzial pusta strone i odchodzil z niczym.

Technical SEO dla AI crawlerow to osobna warstwa od klasycznej optymalizacji. Nie chodzi tu o Core Web Vitals, szybkosc ladowania ani strukture URL - te rzeczy sa wazne dla Google, ale AI crawlery maja zupelnie inne wymagania techniczne. Ten artykul skupia sie wylacznie na tym, co widzi bot AI: surowy HTML, pliki konfiguracyjne i logi serwera.

Dlaczego AI crawlery nie renderuja JavaScriptu

GPTBot, ClaudeBot, PerplexityBot i wiekszosc pozostalych botow AI pobiera strony jak przegladarka z lat 90. Wysyla zadanie HTTP GET, odbiera HTML i tyle. Badania przeprowadzone przez Vercel i firme MERJ wykazaly, ze 69% AI crawlerow nie wykonuje JavaScriptu w ogole.

Dlaczego tak jest? Renderowanie JS jest kosztowne obliczeniowo. Googlebot moze pozwolic sobie na Chrome headless, bo ma do dyspozycji infrastrukture na poziomie globalnego data center. AI crawlery, ktore odwiedzaja miliardy stron miesieczniu, nie moga tego uzasadnic ekonomicznie. Dlatego pobieraja raw HTML i parsuja to, co dostaja.

Dla wlasciciela sklepu WooCommerce lub strony zbudowanej na klasycznym WordPressie to zazwyczaj dobra wiadomosc - WordPress domyslnie serwuje gotowy HTML z serwera. Problem pojawia sie, gdy uzywasz:

  • motywu opartego na React/Vue (Headless WordPress),
  • pluginow, ktore ukrywaja ceny lub opisy produktow za AJAX-em,
  • lazy loadingu tresci przez JavaScript,
  • Single Page Application jako frontend.

Jesli Twoj sklep WooCommerce pokazuje ceny przez AJAX (np. dla roznych grup klientow), bot AI zobaczy tylko puste miejsce po cenie. Sprawdz, czy robots.txt nie blokuje tez endpointu /wp-admin/admin-ajax.php.

Jak sprawdzic, czy Twoja strona dziala bez JS

Test jest prosty i mozesz go zrobic teraz. Otworz Chrome DevTools (F12), kliknij ikone kola zebatego (Settings), przejdz do zakladki Preferences i zaznacz "Disable JavaScript". Nastepnie odswierz strone.

Co powinienes zobaczyc: pelna tresc - naglowki, opisy, ceny produktow, teksty uslug. Jesli widzisz tylko spinner albo pustke, AI crawler ma ten sam problem co Ty teraz.

Druga metoda: skorzystaj z Google Search Console, wejdz w URL Inspection i kliknij "Test Live URL". W zakladce HTML mozesz zobaczyc, co Chrome Googlebot faktycznie pobral - to bliskie temu, co widzi AI crawler, choc Googlebot renderuje JS, a wiekszosc AI crawlerow nie.

Trzecia metoda, ktora polecam technicznie: curl z terminala.

curl -s -A "Mozilla/5.0 (compatible; GPTBot/1.0)" https://twojadomena.pl/ | grep -i "<h1|<p|description"

Jesli w wyniku widzisz puste tagi lub tylko strukture bez tresci, masz problem.

Checklist: czy strona dziala bez JS

  • Testuje strone w Chrome z wylaczonym JavaScript
  • Uruchamiam curl z user-agentem GPTBot i sprawdzam HTML
  • Wszystkie opisy produktow sa w statycznym HTML, nie ladowane przez AJAX
  • Ceny sa widoczne w HTML bez dodatkowych zadan JS
  • Meta opengraph i meta description sa w HTML (nie wstrzykiwane przez JS)
  • Schema.org markup jest w HTML, nie w osobnym skrypcie doadanym po renderze

Czym jest llms.txt i do czego sluzy

llms.txt to plik tekstowy w formacie Markdown, ktory umieszczasz w glownym katalogu swojej domeny: twojadomena.pl/llms.txt. Ma jeden cel: powiedziec modelowi jezykowym, co jest na Twojej stronie, bez koniecznosci crawlowania setek podstron.

Format pochodzi od inicjatywy llmstxt.org i jest celowo prosty. Plik zaczyna sie od naglowka H1 z nazwa i jednozdaniowym opisem, potem zawiera sekcje z linkami do kluczowych stron. Nie ma tu XML-a, JSON-a ani specjalnej skladni.

Wazna uwaga: zadna z duzych firm AI nie potwierdzila oficjalnie, ze czyta llms.txt w systemach produkcyjnych. Google Search takze tego nie robi. Anthropic wyroznilo standard w swojej dokumentacji, ale bez gwarancji. Mimo to wdrozenie nic nie kosztuje - a standard moze sie upowszechnic.

robots.txt vs llms.txt

Cecharobots.txtllms.txt
CelKontroluje dostep crawlerowOpisuje tresc dla LLM
FormatDyrektywy allow/disallowMarkdown z linkami
Obsluga przez GoogleTak, oficjalnieNie (potwierdzone przez Muellera)
Obsluga przez AICzesciowo (blokowanie botow)Eksperymentalnie
Moze zablokowac dostepTakNie
Wiek standardu19942024-2025
Wdrozenie w WPWbudowane w coreRank Math od VIII 2025

Jak zbudowac llms.txt dla WordPress i WooCommerce

Najszybsza droga to Rank Math. Od sierpnia 2025 wtyczka ma modul LLMS Txt. Wlaczasz go w Rank Math - Dashboard - Modules, a potem konfigurujesz w Titles & Meta - LLMS Txt, zaznaczajac ktore typy postow maja byc uwzglednione. Rank Math generuje plik automatycznie i aktualizuje go przy kazdej zmianie.

Jesli nie uzywasz Rank Math lub chcesz miec wiecej kontroli, mozesz stworzyc plik recznie. Przyklad dla sklepu WooCommerce:

# Nazwa Twojego Sklepu

Opis jednozdaniowy: co sprzedajesz i dla kogo.

## Uslugi / Kategorie

- [Kategoria glowna 1](https://twojadomena.pl/kategoria-1/)
- [Kategoria glowna 2](https://twojadomena.pl/kategoria-2/)

## Kluczowe strony

- [O nas](https://twojadomena.pl/o-nas/)
- [Kontakt i dostawa](https://twojadomena.pl/kontakt/)
- [Regulamin](https://twojadomena.pl/regulamin/)

## Blog

- [Tytul artykulu 1](https://twojadomena.pl/blog/artykul-1/)
- [Tytul artykulu 2](https://twojadomena.pl/blog/artykul-2/)

## Optional

- [Archiwum produktow](https://twojadomena.pl/sklep/)

Plik wrzucasz przez FTP lub menadzera plikow hostingu do katalogu public_html. Sprawdz, czy jest dostepny pod twojadomena.pl/llms.txt - powinien zwracac kod HTTP 200 i Content-Type text/plain.

Dla duzych sklepow WooCommerce (1000+ produktow) nie wpisuj kazdego produktu z osobna. Linkuj do stron kategorii i top 5-10 bestsellerow. Plik llms.txt powinien byc krotki - kilkadziesiat linii, nie kilka tysiecy.

69%AI crawlerow nie renderuje JS (badania Vercel/MERJ 2026)
5.52%witryn blokuje GPTBot w robots.txt (Q1 2026)
15-25%potencjalnego ruchu informacyjnego traci sie przez blokady AI
2025Rank Math uruchomil modul llms.txt dla WordPress

Jak nie zablokowac AI botow przez przypadek w robots.txt

Najczestszy blad, ktory widze w audytach: ktos w 2022 dodal do robots.txt blokade User-agent: * z Disallow: / albo skopiował template z internetu i nie zaktualizowal go. Albo zablokowal wszystkie boty poza Googlebotom i Bingbotem, nie wiedząc, ze AI crawlery maja inne nazwy.

Kolejny problem: blokowanie GPTBot nie blokuje ChatGPT Search. OpenAI ma kilka roznych user-agentow z rozna rola:

  • GPTBot - crawl do trenowania modelu
  • ChatGPT-User - pobieranie stron na bezposrednie zadanie uzytkownika
  • OAI-SearchBot - indeksowanie do wynikow ChatGPT Search

Podobnie Anthropic: ClaudeBot (trenowanie), Claude-SearchBot (indeksowanie), Claude-User (zadania uzytkownika). Blokowanie jednego nie blokuje pozostalych.

Jesli chcesz byc widoczny w AI Search, Twoj robots.txt powinien wygladac mniej wiecej tak:

# Boty treningowe - blokowac
User-agent: CCBot
Disallow: /

User-agent: GPTBot
Disallow: /

User-agent: anthropic-ai
Disallow: /

# Boty wyszukiwarkowe AI - zezwolic
User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

Taka konfiguracja chroni Twoje tresci przed uzyciem do trenowania modeli, jednoczesnie pozwala AI na indeksowanie i cytowanie Twojej strony w wynikach.

Plusy

  • Blokowanie botow treningowych chroni oryginalne tresci przed przejsciem do modeli konkurencji
  • Dopuszczenie botow wyszukiwarkowych zwieksza szanse na pojawienie sie w ChatGPT Search i Perplexity
  • llms.txt daje AI szybki przeglad strony bez crawlowania setek URL
  • Test bez JS jest szybki i bezplatny - wystarczy Chrome DevTools

Minusy

  • llms.txt nie ma potwierdzenia adopcji od zadnego duzego AI poza Anthropic
  • Rozroznienie user-agentow AI jest skomplikowane i wymaga regularnej aktualizacji
  • Strony SSR/React wymagaja przebudowy architektury, nie tylko poprawki w pliku
  • Logi serwera na hostingach shared bywaja niedostepne lub rotowane zbyt czesto

Logi serwera jako audyt ruchu AI botow

Najcenniejsza informacja o tym, jak AI crawlery widza Twoja strone, nie lezy w zadnym narzedziu SaaS - lezy w plikach access.log na serwerze. To zrodlo prawdy.

Na LH.pl (gdzie mam wiekszosc klientow) logi dostepowe sa w cPanel pod "Surowe dzienniki dostepu". Pobierasz plik, otwierasz w edytorze lub filtrujesz w terminalu. Wiersz logu wyglada tak:

66.249.79.1 - - [13/Jun/2026:08:32:14 +0200] "GET /blog/artykul/ HTTP/1.1" 200 45231 "-" "Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)"

Co czytasz z tego wpisu:

  • IP 66.249.79.x to zakres OpenAI,
  • GET i 200 - bot pobral strone i dostal odpowiedz OK,
  • 45231 bajtow - to rozmiar odpowiedzi; jesli widzisz tu 1-2 kB zamiast 40-50 kB, bot dostal pusta strone.

Najwazniejsze rzeczy do sprawdzenia w logach:

1. Czy AI boty w ogole przychodza? Filtruj po GPTBot, ClaudeBot, PerplexityBot.
2. Jakie kody HTTP dostaja? 200 to sukces, 403 to blokada (sprawdz robots.txt), 404 to zerwane linki.
3. Jak duze sa odpowiedzi? Mala wielkosc = pusta strona lub przekierowanie.
4. Ktore podstrony sa crawlowane najczesciej? To wskazowka, co AI uwaza za wazne.

Jesli nie masz dostepu do raw logow, mozesz zainstalowac plugin WP Security Audit Log lub Matomo z moderatem logowania botow jako alternatywe.

W logach na pewno znajdziesz tez ruch od CCBot (Common Crawl) - to dane uzywane przez wiele open-source modeli. Jesli nie chcesz byc w tym zbiorze, dodaj blokade w robots.txt i sprawdz po tygodniu, czy bot przestal przychodzic.

Warstwa AI vs klasyczny technical SEO

Chce jasno odroznic to, o czym pisalem powyzej, od standardowego audytu technicznego SEO. Klasyczny audyt (o ktorym pisalem osobno w kontekscie pozycjonowania stron) obejmuje Core Web Vitals, canonicale, duplikaty tresci, redirecty, sitemap.xml i wiele innych elementow technicznych.

Warstwa AI crawlerow to cos innego. Nie zastepuje klasycznego SEO - nakiada sie na nie. Mozesz miec perfekcyjny PageSpeed i czysty kod, a mimo to AI crawlery beda omijac Twoja strone, jesli:

  • robots.txt blokuje ich user-agenta (czesto przypadkowo),
  • caly content jest renderowany przez JavaScript,
  • nie ma pliku llms.txt z jasna mapa tresci.

Szerzej o tym, czemu widocznosc w AI to osobna strategia, pisalem w kompleksowym przewodniku po SEO i AI 2026. Jesli interesuje Cie warstwa semantyczna - encje, Knowledge Graph i schema.org - zajrzyj do artykulu o schema pod AI. Natomiast taktyki cytowania przez asystentow AI opisuje przewodnik GEO i AEO.

Podsumowanie: co robic dzis, nie kiedys

Technical SEO pod AI crawlery nie wymaga duzego budzetu ani przebudowy strony. W wiekszosci przypadkow startujemy od prostego sprawdzenia i kilku zmian w plikach konfiguracyjnych.

Priorytety sa jasne: najpierw upewnij sie, ze boty moga w ogole wejsc (robots.txt), potem sprawdz czy widza tresc (test bez JS), na koniec ulatw im orientacje w strukturze (llms.txt). Jesli robisz pozycjonowanie dla biznesu, ktory chce byc widoczny w AI Search - te trzy rzeczy powinny byc na checklistcie obok klasycznej optymalizacji.

Jesli chcesz, zeby ktos przejrzal Twoje logi serwera i sprawdzil konfiguracje pod katem AI crawlerow - napisz do mnie, robie to w ramach audytow dla klientow.

Najczęstsze pytania

Czy llms.txt jest oficjalnym standardem W3C lub Google?

Nie. llms.txt to propozycja spolecznosciowa (llmstxt.org), ktora nie ma oficjalnego wsparcia W3C, a Google potwierdzilo ze Google Search nie czyta tego pliku. Mimo to wdrozenie nic nie kosztuje, a Anthropic wyroznilo standard w dokumentacji - warto miec plik na wypadek szerszej adopcji.

Jak sprawdzic, czy moja strona dzialaa bez JavaScriptu?

W Chrome DevTools wejdz w ustawienia (kolo zebate) i wylacz JavaScript, albo otworz adres w przegladarce lynx/w3m. Mozesz tez uzyc Fetch as Googlebot w Search Console - renderowany HTML pokazuje co widzi bot. Jesli strona wyswietla pustke lub spinner, AI crawler nie zobaczy tresci.

Czy powinienem blokowac AI crawlery w robots.txt?

Zalezy co chcesz osiagnac. Blokowanie botow treningowych (CCBot, GPTBot, anthropic-ai) jest sensowne jesli nie chcesz, zeby Twoje tresci trenowaly cudze modele. Natomiast blokowanie botow wyszukiwarkowych AI (OAI-SearchBot, PerplexityBot, ClaudeBot) eliminuje szanse na pojawianie sie w ChatGPT Search czy Perplexity.

Czym rozni sie ClaudeBot od Claude-SearchBot?

ClaudeBot odpowiada za trenowanie modeli Anthropic - mozesz go bezpiecznie zablokowac. Claude-SearchBot indeksuje strony do wynikow wyszukiwania w Claude, a Claude-User pobiera strony na bezposrednie zadanie uzytkownika. Kazdy z nich wymaga osobnej dyrektywy w robots.txt.

Jak zbudowac llms.txt dla sklepu WooCommerce?

W pliku wypisz: naglowek H1 z nazwa i jednozdaniowym opisem sklepu, sekcje z linkami do najwazniejszych kategorii produktow, podstrony uslug i kluczowe wpisy blogowe. Format to czysty Markdown. Rank Math generuje go automatycznie; dla WooCommerce mozesz dodac recznie sekcje z kategoriami produktow, ktore wtyczka pomija.

Czy logi serwera na shared hostingu sa dostepne?

Na wiekszosci polskich hostingow (LH.pl, nazwa.pl, home.pl) logi access.log sa dostepne przez panel lub FTP w katalogu /logs/. Na LH.pl znajdziesz je w cPanel pod 'Surowe dzienniki dostepu'. Jesli nie ma dostepu, mozesz zainstalowac WP plugin do logowania botow (np. WP Security Audit Log) jako alternatywe.