Przejdź do strony

17 sierpnia 2026 • Piotr Firyn

Techniczne SEO a GEO: jak przygotować serwis pod cytowania w LLM

Techniczne SEO a GEO: jak przygotować serwis pod cytowania w LLM

Większość tego, co sprzedaje się dziś jako GEO, to techniczne SEO, którego nie masz domkniętego. Twarde fakty: analiza ponad 500 mln pobrań GPTBota przez Vercel i MERJ nie wykazała ani jednego przypadku wykonania JavaScriptu, badanie Ahrefs na 137 210 domenach pokazało, że 97% plików llms.txt nie dostało w maju 2026 żadnego ruchu, a od 15 września 2026 Cloudflare domyślnie blokuje część crawlerów AI na stronach z reklamami. Poniżej masz kolejność działań, które realnie decydują o tym, czy ChatGPT, Claude, Perplexity albo AI Overviews mogą Cię zacytować — i test do odpalenia u siebie przy każdym z nich.

Werdykt na wejściu

Krótko, żebyś nie musiał czytać całości, jeśli szukasz tylko kierunku.

Działa: server-side rendering treści krytycznej, przepuszczanie wyszukiwarkowych i użytkownikowych botów AI przez robots.txt i WAF, obecność w indeksie Google i Bing, czysty semantyczny HTML, akapity, które bronią się wyjęte z kontekstu, twarde liczby ze źródłem i datą, realna data aktualizacji.

Nie działa (albo nie tak, jak Ci obiecano): llms.txt jako dźwignia cytowań, „specjalna schema pod AI”, cięcie tekstu na sztuczne kawałki „pod chunki”, kupowanie narzędzia do monitoringu widoczności AI, zanim sprawdzisz, czy boty w ogóle dostają od Ciebie 200.

To nie jest teza kontrariańska dla samej kontry. Google w czerwcu 2026 zaktualizowało dokumentację i napisało wprost, że do pojawienia się w generatywnych funkcjach Search nie trzeba tworzyć nowych plików maszynowych, plików AI, znaczników ani Markdowna, bo Search ich nie używa. Wymóg jest jeden i stary: strona ma być zaindeksowana i uprawniona do wyświetlenia ze snippetem.

Reszta artykułu to kolejność, w jakiej to domykam.

Jak w ogóle powstaje cytowanie

Zanim wejdziemy w konfigurację — minimum teorii, bo bez tego kolejność działań wygląda na przypadkową.

Model językowy nie „pamięta” Twojej strony w momencie odpowiadania. Kiedy pytanie wymaga świeżych informacji, system sięga po mechanizm RAG (retrieval-augmented generation, po polsku: generowanie wspomagane wyszukiwaniem). Wygląda to tak:

  1. Pobranie kandydatów. Silnik odpytuje jakiś indeks wyszukiwania — własny, partnerski albo jedno i drugie — i dostaje listę adresów.
  2. Pobranie treści. Bot pobiera stronę. To zwykłe żądanie HTTP, z konkretnym user-agentem i konkretnym adresem IP.
  3. Podział na fragmenty. Treść jest cięta na kawałki (chunki) i porównywana znaczeniowo z pytaniem użytkownika. To robi system po swojej stronie, nie Ty.
  4. Wybór i wygenerowanie odpowiedzi. Model bierze fragmenty, które uznał za trafne, i składa z nich odpowiedź. Fragmenty, których użył, dostają przypis z linkiem.

Każdy z tych czterech etapów to osobna bramka. Jeśli oblejesz pierwszą albo drugą, jakość treści nie ma najmniejszego znaczenia — nikt jej nie zobaczy. Dlatego kolejność w tym poradniku jest taka, a nie inna: najpierw dostęp, potem renderowanie, potem indeksy, a struktura treści dopiero na końcu.

Większość materiałów o GEO zaczyna od punktu czwartego. Stąd sytuacja, którą widuje się u klientów regularnie: przepisany na „format pytanie–odpowiedź” blog, sto godzin roboty copywriterskiej i zero cytowań, bo firewall od pół roku zwraca botom 403.

Krok 1. Dostęp: user-agenty i robots.txt

To jest miejsce, w którym psuje się najwięcej rzeczy, i jednocześnie najtańsze do naprawy.

Każdy dostawca ma nie jednego bota, tylko kilka, z różnymi zadaniami. Blokowanie ich hurtem albo blokowanie niewłaściwego to klasyk.

BotWłaścicielDo czego służyWpływ na cytowania
GPTBotOpenAIzbieranie danych treningowychpośredni — buduje „znajomość” marki w modelu
OAI-SearchBotOpenAIindeks pod wyszukiwanie w ChatGPTbezpośredni — blokada wycina Cię z kandydatów
ChatGPT-UserOpenAIpobranie strony na żądanie użytkownikabezpośredni — to ten fetch przy odpowiedzi
ClaudeBotAnthropicdane treningowepośredni
Claude-SearchBotAnthropicindeks pod wyszukiwaniebezpośredni
Claude-UserAnthropicpobranie na żądanie użytkownikabezpośredni
PerplexityBotPerplexityindeksowanie pod odpowiedzibezpośredni
Perplexity-UserPerplexitypobranie na żądanie użytkownikabezpośredni
GooglebotGoogleindeks Search — i podstawa AI Overviews oraz AI Modebezpośredni
Google-ExtendedGoogletrening i grounding w części systemów Googlepośredni — nie wycina z AI Overviews
BingbotMicrosoftindeks Bing — zasila Copilota i część retrievalu ChatGPTbezpośredni
CCBotCommon Crawlzbiór, z którego korzysta wiele pipeline’ówpośredni
meta-externalagent, Bytespider, Applebot-Extended, DuckAssistBot, MistralAI-Userróżnitrening / wyszukiwanie / fetch użytkownikazależnie od roli

Najczęstszy błąd w robots.txt

 Blokujesz GPTBota, bo „nie chcesz karmić AI”, i uznajesz sprawę za załatwioną. Nie jest. GPTBot zbiera dane treningowe. Za cytowania w wyszukiwaniu ChatGPT odpowiadają OAI-SearchBot i ChatGPT-User — czyli dokładnie te dwa, o których nikt nie pamięta. Efekt: trening zablokowany (co i tak nie wpływa na modele już wytrenowane), a wyszukiwanie zostawione otwarte albo, jeszcze gorzej, wycięte przypadkiem regułą WAF. Sprawdź obie warstwy osobno.

Minimalna, sensowna konfiguracja dla serwisu, który chce być cytowany:

# Wyszukiwanie i pobrania na żądanie użytkownika — wpuszczaj
User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: Claude-User
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Perplexity-User
Allow: /

User-agent: Bingbot
Allow: /

# Trening — decyzja biznesowa, nie techniczna
User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Google-Extended
Allow: /

# Ścieżki wrażliwe — zamknięte dla wszystkich
User-agent: *
Disallow: /koszyk/
Disallow: /konto/
Disallow: /szukaj/

Decyzja o botach treningowych jest biznesowa. Argument za wpuszczeniem: model, który widział Twoją markę w trakcie treningu, częściej rozpoznaje ją jako encję. Argument przeciw: oddajesz treść bez rekompensaty. Werdykt: na serwisie marketingowym i blogu wpuszczaj, na treści premium i w panelu aplikacji — nie. To dwie różne decyzje i nie muszą być takie same.

Uwaga na dokumentację: OpenAI podaje, że po zmianie w robots.txt systemy wyszukiwania dostosowują się w około dobę. Nie testuj efektu po dziesięciu minutach.

Krok 2. Warstwa sieciowa: WAF, rate limity, Cloudflare

robots.txt to deklaracja. Firewall to egzekucja. Te dwie rzeczy potrafią mówić coś zupełnie innego, a wygrywa firewall.

Trzy rzeczy, które psują dostęp mimo poprawnego robots.txt:

Rate limiting i kod 429 

Bot wchodzi za szybko, reguła go przycina, żądania lecą w kosz. Z perspektywy silnika Twoja strona jest po prostu niedostępna. To bywa opisywane jako jedna z częstszych przyczyn braku cytowań przy formalnie otwartej polityce crawlowania.

Reguły bot management w kategoriach

Zaznaczone „blokuj boty AI” w panelu potrafi wyciąć również boty wyszukiwarkowe, bo część dostawców klasyfikuje je jako mixed-use. Sprawdzaj kategoriami, nie jednym przełącznikiem.

Zmiana defaultów u dostawcy

1 lipca 2026 Cloudflare zapowiedział, że od 15 września 2026 domyślnie zablokuje mixed-use crawlery AI na stronach wyświetlających reklamy. Nowe ustawienia obejmują nowych klientów, nowe domeny obecnych klientów i wszystkie konta na planie darmowym. Równolegle Pay Per Crawl ewoluuje w model Pay Per Use — rozliczany za realne wykorzystanie treści w odpowiedzi, nie za samo pobranie. Jeśli Twój serwis siedzi na Cloudflare, to jest data, którą chcesz mieć w kalendarzu.

Kontekst, który tłumaczy, skąd ta zmiana: według danych publikowanych przez Cloudflare w czerwcu 2026 boty treningowe odpowiadały za 50,6% ruchu botów AI w sieci, a boty wyszukiwarkowe — te, które historycznie „płaciły” za dostęp kliknięciami — spadły do 10,7%. Proporcje pobrań do odesłanego ruchu robią się dla wydawców brutalne.

Test, który zajmuje trzy minuty

Sprawdź, co bot naprawdę dostaje:

curl -s -o /dev/null -w "%{http_code}\n" \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot" \
  https://twojadomena.pl/wazna-podstrona/

Powtórz dla ChatGPT-User, Claude-SearchBot i PerplexityBot. Chcesz zobaczyć 200. Jeśli wypada 403 albo 429, masz odpowiedź, dlaczego nikt Cię nie cytuje, i nie musisz czytać dalej — najpierw napraw to.

Potem to samo w logach, na realnym ruchu:

grep -Ei "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User" access.log \
  | awk '{print $NF, $9}' \
  | sort | uniq -c | sort -rn | head -40

Interesują Cię dwie rzeczy: czy dany bot w ogóle się pojawia i jakie zbiera kody odpowiedzi. Rozkład 403/429 przy jednym user-agencie to gotowe zgłoszenie do zespołu od infrastruktury.

User-agent to nie dowód tożsamości 

Nagłówek User-Agent podrabia się jednym parametrem w curlu i scrapery robią to na masową skalę. Jeśli budujesz na tym raporty albo reguły „wpuszczaj tylko tych”, weryfikuj adres IP względem list publikowanych przez dostawców — OpenAI udostępnia je w plikach JSON osobno dla GPTBota, OAI-SearchBota i ChatGPT-User. Żądanie, które ma właściwy user-agent i obcy adres IP, jest podszywką. Docelowy kierunek to podpisywanie żądań w standardzie Web Bot Auth, wykorzystywanym już przez Cloudflare do rozróżniania crawlerów w Pay Per Crawl.

Krok 3. Renderowanie: dlaczego SPA jest niewidzialne

To jest ta część, po której najczęściej robi się cisza na spotkaniu z zespołem frontendowym.

Wspólna analiza Vercela i MERJ, obejmująca ponad 500 mln pobrań GPTBota, nie znalazła żadnych śladów wykonania JavaScriptu. Nie „rzadko” — zero. GPTBot pobierał pliki JS mniej więcej w 11,5% żądań, ClaudeBot w około 23,8%, ale żaden ich nie uruchamiał. Stan na czerwiec 2026 potwierdzają kolejne analizy: nie renderują GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Meta-ExternalAgent ani Bytespider.

Jeden istotny wyjątek: Gemini, bo jedzie na infrastrukturze Google i korzysta z tego samego renderowania co Googlebot.

Konsekwencja jest niemiła i prosta. Aplikacja renderowana po stronie klienta serwuje botom pusty <div id="root"> i tyle. Nie „mniej treści”. Nic.

Jak to sprawdzić u siebie

Otwórz podgląd źródła strony — źródła, nie zakładki Elements w DevTools, bo ta pokazuje DOM już po wykonaniu skryptów. Poszukaj w nim zdania ze swojej głównej treści. Jest — dobrze. Nie ma — bot go nie widzi.

Wersja z terminala, bez klikania:

curl -s -A "OAI-SearchBot/1.0" https://twojadomena.pl/produkt/xyz/ \
  | grep -c "unikalne zdanie z opisu produktu"

Zero to zła wiadomość.

Zrób to osobno dla różnych typów szablonów. Klasyczny układ w e-commerce: strona kategorii renderowana serwerowo (bo ktoś kiedyś zrobił to pod Google), ale opis produktu, warianty, ceny promocyjne i sekcja recenzji dociągane po stronie klienta z API. Efekt: bot widzi nazwę i breadcrumby, nie widzi ceny ani opinii. Potem klient dziwi się, że asystent AI podaje o jego produkcie mniej niż o produkcie konkurencji.

Realizm platformowy

Na zamkniętych platformach SaaS nie zawsze przestawisz to jednym przełącznikiem. Co da się zrobić w praktyce: przenieść treść krytyczną do szablonu serwerowego zamiast do widgetu, wstrzyknąć kluczowe dane w JSON-LD w początkowym HTML-u (to bot przeczyta, bo nie wymaga wykonania skryptu), zrezygnować z ładowania opisu przez aplikację zewnętrzną, a przy migracji frontendowej wybrać SSR albo prerendering zamiast czystego CSR. Jeśli platforma na nic z tego nie pozwala, to jest realne ograniczenie biznesowe i tak trzeba je nazwać na zarządzie — a nie udawać, że rozwiąże je copywriting.

Krok 4. Indeksy, z których korzystają silniki

Nie ma jednego „indeksu AI”. Są różne kanały i każdy ma swoją bramkę.

Google (AI Overviews, AI Mode)

Warunek jest sformułowany wprost w dokumentacji: strona musi być zaindeksowana i uprawniona do wyświetlenia w wynikach ze snippetem, spełniając standardowe wymagania techniczne Search. Żadnych dodatkowych wymogów, żadnego osobnego indeksu, żadnego osobnego zgłoszenia. Kontrola dostępu odbywa się przez dyrektywy robots.txt dla Googlebota, a kontrola tego, ile treści może być pokazane — przez nosnippetdata-nosnippetmax-snippet i noindex.

Bing (Copilot, część retrievalu w ChatGPT)

Wiele serwisów ma świetną widoczność w Google i mizerną w Bingu z prostego powodu: nigdy nie zweryfikowali domeny w Bing Webmaster Tools. Zweryfikuj (jest import ustawień z Search Console), wyślij mapę witryny i włącz IndexNow, żeby zgłaszać nowe i zaktualizowane adresy od razu po publikacji zamiast czekać na crawl.

Uczciwie o ChatGPT

Obraz nie jest tu w pełni jednoznaczny. Partnerstwo OpenAI z Microsoftem i dokumentacja wskazują na Bing jako główne źródło wyników, uzupełniane własnym crawlerem OAI-SearchBot. Od października 2024, przy przejściu z „Browse with Bing” na ChatGPT Search, OpenAI mówi już tylko o „zewnętrznych dostawcach wyszukiwania”, bez nazywania ich. W 2026 pojawiły się też niezależne obserwacje sugerujące korzystanie z innych źródeł w różnych wariantach produktu. Nikt tego oficjalnie nie potwierdził. Praktyczny wniosek jest za to odporny na te wątpliwości: bądź w indeksie Bing i w indeksie Google, i wpuść OAI-SearchBota. Wtedy nie musisz zgadywać, którą drogą przyszedł retrieval.

Nosnippet to nóż obosieczny 

Kusi, żeby dyrektywami snippetowymi ograniczyć to, co Google pokazuje w odpowiedziach AI. Problem: te same dyrektywy sterują snippetem w klasycznych wynikach. Ograniczając widoczność w AI Overviews, gasisz sobie także opis w zwykłym SERP-ie. Osobnego przełącznika nie ma. Google-Extended też nim nie jest — kontroluje trening i grounding w części systemów, ale nie wypisuje strony z AI Overviews, bo te korzystają z regularnego indeksu Search.

Krok 5. Struktura strony pod ekstrakcję fragmentu

Dopiero teraz treść — i to w wersji technicznej, nie stylistycznej.

Skoro system tnie stronę na fragmenty i porównuje je znaczeniowo z pytaniem, to jednostką konkurencji nie jest artykuł, tylko akapit. Z tego wynikają rzeczy praktyczne:

Odpowiedź na początku sekcji. 

Jeśli nagłówek zapowiada „ile kosztuje X”, pierwsze dwa–trzy zdania mają to mówić. Rozgrzewka przed odpowiedzią to fragment bez wartości informacyjnej.

Fragment ma się bronić sam

Zdania typu „jak wspomniałem wyżej”, „ta metoda” bez nazwy, „w takim przypadku” bez kontekstu — wyjęte z otoczenia znaczą zero. Nazywaj rzeczy pełnymi nazwami także w środku tekstu.

Semantyczny HTML, nie divy z klasą

Jeden <h1>, nieprzeskakująca hierarchia nagłówków, <table> na dane tabelaryczne, <ul> na listy, <time datetime="..."> na daty. Czytelna, hierarchiczna struktura HTML wraca w badaniach nad cytowaniami jako czynnik, który realnie pomaga.

Liczby z jednostką, źródłem i datą

„Duży wzrost” jest niecytowalny. „Wzrost o 34% w II kwartale 2026 według [źródło]” — cytowalny. To samo dotyczy cen, progów, limitów i parametrów.

Odsyłacze do wiarygodnych źródeł

Badania nad tym, co podnosi szanse na cytowanie, dość zgodnie wskazują na statystyki, cytaty i jawne źródła — a nie na upychanie fraz.

Chunking: gdzie jest granica

Tu trzeba powiedzieć rzecz, którą część branży pomija. W styczniu 2026 Danny Sullivan z Google odradził w podcaście Search Off the Record cięcie treści na drobne kawałki specjalnie pod modele — argument: nawet jeśli coś takiego działa dziś, systemy pójdą w stronę nagradzania treści pisanej dla ludzi. Mike King odpowiedział, że pisanie dla użytkownika i świadomość struktury nie są sprzeczne, bo mechanizm RAG jest realny.

Mój werdykt: obaj mają rację, tylko mówią o różnych rzeczach. Sztuczne siekanie tekstu na bloczki po 50 słów, z powtarzanym co akapit słowem kluczowym, to optymalizacja pod dzisiejszy pipeline i przeżyje jedną zmianę systemu. Pisanie tak, żeby akapit wyjęty z kontekstu nadal był zrozumiały — to zwykła higiena redakcyjna, która działała długo przed LLM-ami i przetrwa je. Rób drugie, nie pierwsze.

Dane strukturalne – ile z tego jest prawdą

Rozliczmy to szybko, bo krąży tu sporo obietnic.

Google mówi wprost: do generatywnych funkcji Search nie jest wymagany żaden specjalny markup schema.org. Danych strukturalnych używaj wtedy, gdy opisują treść realnie widoczną na stronie i pomagają zrozumieć, czym ona jest.

Co z tego wynika w praktyce:

  • Rób: Organization z sameAs (spójne profile marki w sieci to materiał do rozpoznania encji), Article z authordatePublished i dateModifiedProduct z ceną i dostępnością, BreadcrumbList. To i tak przyda się w klasycznym SEO.
  • Nie licz na: FAQPage jako dźwignię cytowań. Efekt, jeśli jest, bierze się stąd, że JSON-LD siedzi w początkowym HTML-u i wyraźnie oddziela pytanie od odpowiedzi — czyli z czytelności, nie z magii typu schematu.
  • Nie rób: markupu opisującego treść, której na stronie nie ma. To ryzyko ręcznego działania, a zysku po stronie AI i tak nie ma.

Ważny detal techniczny, który tłumaczy, czemu schema bywa skuteczna tam, gdzie treść nie: JSON-LD jest częścią surowej odpowiedzi serwera. Bot, który nie wykonuje JavaScriptu, i tak go przeczyta. Na serwisie z mocno klienckim renderowaniem dane strukturalne bywają jedyną rzeczą, jaką model o Tobie widzi. To nie jest strategia docelowa — to opatrunek.

llms.txt: werdykt

Nie pod cytowania. Dane, a nie przeczucia:

  • Ahrefs przeanalizowało 137 210 domen: 97% plików llms.txt nie odnotowało w maju 2026 żadnego ruchu, a boty AI nie szukają pliku, którego wcześniej nie było.
  • Badanie SE Ranking na 300 tys. domen dało około 10% adopcji — po półtora roku dyskusji w branży.
  • Google w dokumentacji z czerwca 2026 stwierdza, że plik nie wpływa na Search ani na AI Overviews — ani na plus, ani na minus. John Mueller porównał go do meta tagu keywords, wskazując na powód strukturalny: samodzielnie deklarowany manifest nie może różnicować stron, bo każda strona zadeklaruje, że jest najlepsza.
  • Żaden z głównych dostawców nie zobowiązał się publicznie do używania pliku w produkcji jako sygnału cytowania.

Kiedy plik ma sens mimo to: gdy Twoim odbiorcą są agenty, nie wyszukiwarki. Asystenty programistyczne i agenty przeglądające sieć w imieniu użytkownika realnie korzystają z takiego spisu treści, dlatego utrzymują go m.in. dostawcy narzędzi deweloperskich. Od maja 2026 Lighthouse 13.3 sprawdza obecność pliku w nowej kategorii audytów agentic browsing — co jest sygnałem o gotowości na agenty, nie o rankingu.

Werdykt: jeśli masz dokumentację techniczną albo produkt, po którym chodzą agenty — zrób, to trzydzieści minut roboty. Jeśli liczysz na cytowania w ChatGPT — odpuść i wróć do kroku 2. Czego na pewno nie rób: nie generuj kopii każdej podstrony w Markdownie. Jeśli będą indeksowalne, dorobisz się duplikacji na skalę całego serwisu.

Jak to mierzyć, żeby nie zgadywać

Trzy warstwy, w tej kolejności. Bez pierwszej dwie kolejne są zgadywanką.

1. Logi serwera czy boty w ogóle wchodzą. 

Miesięczne zestawienie: liczba trafień per user-agent, rozkład kodów odpowiedzi, najczęściej pobierane ścieżki. Trafienia ChatGPT-User to niezły przybliżony wskaźnik tego, które Twoje strony realnie lądują w odpowiedziach, bo to fetch wykonywany przy obsłudze zapytania. Weryfikuj IP względem publikowanych list, inaczej zliczysz podszywki.

2. Search Console i Bing Webmaster Tools — czy jesteś w indeksach. 

Po stronie Google: status indeksacji i uprawnienie do snippetu na stronach kluczowych. Google ogłosiło 3 czerwca 2026 raportowanie ruchu z generatywnych funkcji Search, ale wdrożenie objęło część serwisów — jeśli nie masz go w panelu, opieraj się na standardowych raportach. Po stronie Bing: pokrycie indeksu i raport wydajności AI.

3. Zestaw promptów — czy Cię cytują 

Ustal 20–30 pytań, na które Twoja firma powinna być odpowiedzią. Odpytuj je cyklicznie, tym samym zestawem, i notuj: czy pojawia się cytowanie, z której podstrony, kto zajmuje slot zamiast Ciebie. Bez stałego zestawu i stałej częstotliwości nie odróżnisz trendu od losowości — cytowania rotują.

I rzecz z mojego podwórka: jeśli robisz to trzeci raz ręcznie, przestań. Pętla po liście promptów przez API, zapis wyniku z datą do prostej bazy albo choćby CSV, cotygodniowy cron. Do tego drugi skrypt, który raz w miesiącu przemiela logi tym greppem z kroku 2. Dwa popołudnia roboty i masz szereg czasowy zamiast wrażeń. Narzędzia komercyjne robią to ładniej, ale kupowanie subskrypcji, zanim sprawdzisz kody odpowiedzi w logach, to kupowanie ładnego wykresu problemu, którego jeszcze nie zdiagnozowałeś.

Checklista wdrożeniowa

Do skopiowania i odhaczenia. Kolejność ma znaczenie — pozycje z góry blokują wszystko poniżej.

Dostęp

  •  robots.txt jawnie przepuszcza OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Bingbot, Googlebot
  •  Podjęta świadoma decyzja o botach treningowych (GPTBot, ClaudeBot, Google-Extended, CCBot) — osobno dla serwisu marketingowego i dla treści premium
  •  Test curl z każdym z kluczowych user-agentów zwraca 200 na stronach priorytetowych
  •  Brak 403/429 dla tych user-agentów w logach z ostatnich 30 dni
  •  Reguły WAF i bot management przejrzane kategoriami; ustawienia Cloudflare sprawdzone pod kątem zmian obowiązujących od 15 września 2026
  •  Weryfikacja botów po adresie IP, nie po samym nagłówku user-agent

Renderowanie

  •  Treść krytyczna (opis, cena, parametry, główny tekst) obecna w surowym HTML-u — sprawdzone curl | grep, nie w DevTools
  •  Sprawdzone osobno dla każdego typu szablonu: strona główna, kategoria, produkt/usługa, artykuł
  •  Sekcje dociągane z API (recenzje, warianty, dostępność) przeniesione do renderowania serwerowego albo zdublowane w JSON-LD

Indeksy

  •  Strony priorytetowe zaindeksowane w Google i uprawnione do snippetu
  •  Brak przypadkowych noindexnosnippet i data-nosnippet na treści, która ma być cytowana
  •  Domena zweryfikowana w Bing Webmaster Tools, mapa witryny wysłana
  •  IndexNow włączony i pingujący przy publikacji oraz aktualizacji
  •  Mapa witryny z rzetelnym lastmod

Treść i struktura

  •  Odpowiedź na pytanie z nagłówka w pierwszych 2–3 zdaniach sekcji
  •  Akapity zrozumiałe po wyjęciu z kontekstu (bez „jak wyżej”, „ta metoda”)
  •  Semantyczny HTML: jeden <h1>, spójna hierarchia, <table><ul><time>
  •  Twarde liczby z jednostką, źródłem i datą
  •  Odsyłacze do wiarygodnych źródeł zewnętrznych
  •  Widoczna data publikacji i aktualizacji, spójna z dateModified w danych strukturalnych

Dane strukturalne

  •  Organization z sameAsArticle z autorem i datami, ProductBreadcrumbList
  •  Markup opisuje wyłącznie treść realnie obecną na stronie

Pomiar

  •  Miesięczny raport z logów: trafienia i kody odpowiedzi per bot
  •  Stały zestaw 20–30 promptów odpytywany cyklicznie, z zapisem wyników i dat
  •  Raporty w Search Console i Bing Webmaster Tools przeglądane regularnie

Czego nie robić

  • Nie kupuj narzędzia do monitoringu widoczności AI, zanim sprawdzisz logi. Jeśli firewall zwraca 403, dashboard pokaże Ci ładny wykres zera.
  • Nie przepisuj całego bloga na format pytanie–odpowiedź. Sam format niczego nie gwarantuje; liczy się trafność, struktura, konkret i wiarygodność źródła.
  • Nie traktuj llms.txt jako projektu na kwartał. To trzydzieści minut i realna wartość tylko dla agentów.
  • Nie wycinaj się z AI dyrektywami snippetowymi bez policzenia kosztu — tracisz też opis w klasycznych wynikach.
  • Nie zakładaj, że skoro Googlebot renderuje JavaScript, to reszta też. Nie renderuje. To jest ta jedna rzecz, którą warto zapamiętać z całego tekstu.
  • Nie optymalizuj pod jeden silnik. Nakładanie się źródeł cytowanych przez różne systemy bywa niewielkie, więc strategia oparta na jednym z nich jest krucha z definicji.

Podsumowanie w jednym zdaniu

GEO nie jest nową dyscypliną, tylko starym technicznym SEO z ostrzejszymi wymaganiami: bot musi dostać 200, przeczytać treść bez uruchamiania skryptów, znaleźć Cię w indeksie i wyjąć z Twojej strony fragment, który broni się sam.

Jeśli chcesz sprawdzić, na którym z pięciu kroków wykłada się Twój serwis — najczęściej wystarczy godzina na logach i kilka testów curl, żeby to nazwać.

Piotr Firyn

O autorze: Piotr Firyn

Technical SEO Specialist

Technical SEO Specialist, prelegent konferencji branżowych i ekspert od pozycjonowania serwisów działających na platformach SaaS. Od 8 lat rozwiązuje najbardziej złożone problemy e-commerce. W Studio Algorytm dba o to, by zaplecze techniczne stron klientów było ich największą przewagą konkurencyjną, wspierając się przy tym nowoczesnymi automatyzacjami.

Zobacz wszystkie artykuły autora