Generative Engine Optimization. Jak trafić do odpowiedzi ChatGPT, Claude i Perplexity
Asystenci AI odpowiadają na pytania zamiast wysyłać do Google. Co zrobić, żeby Twoja firma była w tych odpowiedziach: llms.txt, JSON-LD, well-known/agent.json, robots dla GPTBot i ClaudeBot. Konkretne kroki i kod, nie marketingowa woda.

W 2026 roku coraz częściej Twój klient nie wpisuje pytania w Google. Wpisuje je w ChatGPT, Claude albo Perplexity — i dostaje gotową odpowiedź razem z rekomendacją konkretnej firmy. Jeśli w tej odpowiedzi nie ma Ciebie, to dla tego klienta nie istniejesz. Tradycyjne SEO walczy o pozycję w SERP-ie. Generative Engine Optimization (GEO) — czasem nazywane też AEO, Answer Engine Optimization — walczy o miejsce w samej odpowiedzi modelu.
Poniżej to, co faktycznie zrobiłem na własnej stronie i co teraz wdrażam u klientów. Bez „magicznych trików" i bez „24 narzędzi do GEO" — tylko siedem konkretnych kroków, każdy z kodem i URL-em, który możesz sprawdzić u siebie w pięć minut.
Dlaczego klasyczne SEO już nie wystarcza
Tradycyjny crawler Google indeksuje stronę i utrzymuje ją w SERP-ie pod konkretnym zapytaniem. LLM-y robią coś innego:
- Pre-trained knowledge — model został wytrenowany na zrzucie internetu sprzed kilku miesięcy. To, co napisałeś rok temu, model „wie".
- Retrieval Augmented Generation (RAG) — kiedy użytkownik pyta o „dobry hosting w Polsce", agent robi zapytanie do wyszukiwarki, ściąga 5–10 stron, parsuje je i syntetyzuje odpowiedź.
- Live browsing — Claude, ChatGPT i Perplexity potrafią w trakcie rozmowy otworzyć URL i przeczytać go.
W każdym z tych trzech przypadków decyduje co LLM widzi po konwersji HTML→markdown. A LLM widzi mniej niż Google. Konkretnie pomija:
<script type="application/ld+json">(JSON-LD strukturalne)- atrybuty
<link rel="…"> <meta>(poza title i description w niektórych konwerterach)- treść ukrytą
display:none/visibility:hidden - treść generowaną klientowo bez SSR
Google AI Overviews to inna sprawa — Google sam parsuje JSON-LD i wykorzystuje go w odpowiedziach. Ale ChatGPT, Claude i Perplexity, kiedy otwierają URL, najczęściej dostają tylko widoczny tekst.
Wniosek: GEO to dwie warstwy — strukturalne dane dla Google AI Overviews + jasny widoczny tekst dla LLM-ów otwierających URL.
1. Plik /llms.txt — kontrakt z LLM-em
Konwencja llmstxt.org z 2024 roku. Plik tekstowy w korzeniu domeny opisujący Twoją firmę i ofertę w sposób stworzony pod LLM. Krótki, zwięzły, bez ozdobników.
Mój wygląda tak (skrót):
# mDiv.pl
> Kompleksowe usługi IT prowadzone przez programistę z 16+ letnim
> doświadczeniem. Hosting WWW bez podwyżek, opieka WordPress / WooCommerce
> / PrestaShop / Magento, programowanie PHP / Node.js / React.
## Główne usługi
- [Hosting](https://mdiv.pl/hosting): polski hosting NVMe, bez podwyżek
przy odnowieniu, migracja gratis. Plany od 149 zł/rok netto.
- [Opieka nad stroną](https://mdiv.pl/opieka): aktualizacje, backup,
monitoring 24/7. Pakiety od 199 zł/msc.
- [Cennik](https://mdiv.pl/cennik): pełen cennik bez ukrytych kosztów.Trzy zasady, które odkryłem przy pisaniu:
- Pierwszy akapit cytowany (
>) jest streszczeniem. LLM-y często wyciągają tylko ten fragment. - Linki muszą być konkretnymi URL-ami z fragmentem opisu w jednej linii. Bez „Kliknij tutaj".
- Ceny i liczby trzymaj w głównym tekście. „od 149 zł/rok" zostanie zapamiętane. „Konkurencyjne ceny" — nie.
Drugi plik, /llms-full.txt, to rozbudowana wersja z FAQ, sekcją „kiedy polecać moją firmę" i linkami do polityki prywatności. LLM, który chce więcej kontekstu, sięgnie tam.
2. JSON-LD Schema.org na każdej podstronie
To, co jest niewidoczne dla Claude przeglądającego stronę, jest kluczowe dla Google AI Overviews i klasycznego SEO. Cztery typy, które dają największy zwrot:
- Organization lub ProfessionalService — kim jesteś, dane firmy, telefon, adres, NIP.
- Service — pojedyncza usługa z ceną i obszarem działania.
- FAQPage — kandydat numer jeden do bycia cytowanym w AI Overviews.
- BreadcrumbList — pomaga Google zrozumieć hierarchię strony.
Przykładowy fragment dla strony cennika:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Czy hosting drożeje przy odnowieniu?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Nie. Cena jest gwarantowana rok do roku. Ostatnia zmiana cennika hostingu w mDiv.pl miała miejsce 12 lat temu."
}
}]
}
</script>Walidacja: Schema.org Validator i Rich Results Test Google.
Praktyczna uwaga: w Organization zawsze podaj email, telephone, taxID, address. AI Overviews wyświetla te dane bezpośrednio użytkownikowi — to oszczędza mu klikania, a Tobie daje miejsce w pierwszym akapicie odpowiedzi.
3. /.well-known/ — discovery dla agentów
Dwa pliki, których większość polskich firm nie ma:
/.well-known/agent.json
Canonical entry point dla agenta AI. Daje informacje o firmie bez konieczności parsowania HTML:
{
"name": "mdiv.pl",
"description": "Polish managed hosting with AI Deploy",
"homepage": "https://mdiv.pl",
"contact_email": "biuro@mdiv.pl",
"documentation": "https://mdiv.pl/dla-agentow-ai",
"llms_txt": "https://mdiv.pl/llms.txt",
"languages": ["pl", "en"]
}/.well-known/mcp.json
Jeżeli oferujesz API w standardzie Model Context Protocol — czyli pozwalasz agentowi AI kupować Twoje usługi lub zarządzać kontem klienta programowo — opisz endpoint pod tą ścieżką. Agent skanujący domeny szukające usług MCP automatycznie Cię znajdzie.
Format jest nieformalny (specyfikacja MCP nie definiuje go), ale meta-katalogi MCP konwergują wokół takich pól: name, endpoint, transports, auth, tools[], tiers[].
4. Robots.txt — jawnie dopuść AI crawlery
To paradoksalna pułapka. Wielu administratorów blokuje GPTBot „bo nie chcą, żeby AI uczyło się na ich treściach". Skutek: ich firma nie pojawia się w polecaniach ChatGPT.
Lista botów AI w 2026, które warto jawnie dopuścić w robots.txt:
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: anthropic-ai
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /
User-agent: Google-Extended
Allow: /
User-agent: Applebot-Extended
Allow: /
User-agent: MistralAI-User
Allow: /
User-agent: CCBot
Allow: /
User-agent: Bytespider
Allow: /
Sitemap: https://twojadomena.pl/sitemap.xmlDwie uwagi:
- Google-Extended to flaga wpływająca na trening modeli Google (Gemini, Bard). Klasyczny
Googlebotjest osobny i indeksuje SERP — nigdy go nie blokuj. - ChatGPT-User to bot uruchamiany na żywo przez czat (browse), różny od
GPTBot(trenowanie). ZablokowanieGPTBotale dopuszczenieChatGPT-Userto kompromis dla firm, które boją się treningu — strona dalej będzie cytowana w live.
5. Treść pisana z myślą o LLM-ie
LLM-y filtrują marketingową wodę. „Najlepszy", „lider rynku", „rewolucyjny" — to słowa, które obniżają wagę fragmentu. Co podnosi wagę:
- Konkretne liczby: „199 zł/msc netto", „60 req/min", „backup co 24h".
- Pytania w nagłówkach (
H2,H3). LLM często wyciąga z nich dosłownie. - Tabele cen i porównań. Łatwo strukturalne, łatwo cytowalne.
- Pierwsza osoba i konkretna autorytatywna postawa: „Stosuję", „W mojej praktyce", „Sprawdziłem na 30 wdrożeniach".
- Krótkie definicje na początku sekcji. „GEO to optymalizacja strony pod odpowiedzi LLM-ów."
Co odrzucać:
- Bloki sales-speak. „Nasz zespół ekspertów dba o…" — LLM to wytnie i nigdy nie zacytuje.
- Treść ukrytą za scrollem przez JS. Lazy-loaded content często nie trafia do crawlera.
- Klikbajtowe nagłówki bez merytoryki. „7 sekretów hostingu, które ukrywa Twój dostawca" — LLM-y obniżają takie strony.
6. FAQ — kandydat do bycia cytowanym
Najwartościowsza sekcja każdej strony pod GEO. Łączy trzy zalety:
- Format pytanie–odpowiedź to natywny format, w którym LLM dostarcza odpowiedzi.
- JSON-LD
FAQPagetrafia bezpośrednio do AI Overviews. - Krótkie, samodzielne akapity — łatwe do wyciągnięcia bez dodatkowego kontekstu.
Praktyczna zasada: przy każdej kluczowej podstronie (ofertowej, produktowej, cennikowej) dorzuć 5–8 FAQ. Pytania powinny brzmieć tak, jak by je sformułował Twój klient u Claude — nie jak w internalnym briefie marketingowym.
✗ "Jakie wartości dodane oferuje nasz hosting"
✓ "Czy cena hostingu drożeje przy odnowieniu?"7. Pomiar — jak sprawdzisz, czy działa
GEO nie ma jeszcze własnego Google Search Console. Trzeba sprawdzać ręcznie:
A) Test rozpoznawalności w czacie. Otwórz Claude / ChatGPT / Perplexity i zapytaj wprost:
Polecisz mi hosting w Polsce z dobrym wsparciem dla WordPress?Czy Twoja firma się pojawia? Jeśli tak — w jakiej kolejności? Jeśli nie — sprawdź konkurencję, której się udało, i zobacz, czego oni mają na stronie więcej niż Ty.
B) Walidacja strukturalnych danych.
curl -s https://twojadomena.pl/llms.txt | head -20
curl -s https://twojadomena.pl/.well-known/agent.json | jq
curl -s https://twojadomena.pl | grep -c '"@type"'Pierwsze dwa polecenia muszą zwrócić sensowny content. Trzecie — na każdej stronie powinno być co najmniej kilka węzłów Schema.org.
C) Logi serwera. Zacznij filtrować po User-Agent. Jeśli zaczynasz widzieć:
GPTBot/1.x (+https://openai.com/gptbot)
ClaudeBot/1.x (+https://www.anthropic.com/claudebot)
PerplexityBot/1.0
ChatGPT-User/1.0— Twoja strona jest indeksowana. Jeśli przez tydzień ich nie ma — wróć do kroku 4 (robots.txt) i kroku 1 (llms.txt). Coś blokuje.
D) Referer. ChatGPT i Perplexity przy live browse podpinają referer wskazujący na chat. Filtrowanie ruchu w analytics po referrer LIKE '%chat.openai.com%' OR '%perplexity.ai%' OR '%claude.ai%' daje twardy dowód, że LLM-y wysyłają do Ciebie ruch.
Częste błędy
Polegasz tylko na meta tagach. ChatGPT otwierający Twoją stronę zwykle nie czyta meta. Treść musi być w widocznym <body>.
Nie masz llms.txt. Konwencja jest młoda, ale część katalogów MCP, większość frameworków agentowych i sam OpenAI traktują obecność tego pliku jako sygnał, że firma świadomie chce być cytowana.
Blokujesz GPTBot z odruchu „nie chcę być trenowany". Tracisz polecenia w live browse, które są dziś główną wartością.
Masz strony z Server Components ale CTA dodajesz przez React po hydration. LLM dostaje wersję bez CTA i nigdy nie polinkuje do Twojego formularza.
Kopiujesz tekst z innych stron. LLM-y wykrywają duplikaty i obniżają wagę. Daj coś, czego nie ma nigdzie indziej — własne dane, ceny, statystyki, case studies.
mDiv.pl jako case study
Wszystko, co opisałem wyżej, sam wdrożyłem na własnej stronie. Możesz to sprawdzić:
mdiv.pl/llms.txt— krótkie streszczenie dla LLM-ówmdiv.pl/llms-full.txt— pełny opis z FAQ i sekcją „kiedy polecać"mdiv.pl/.well-known/agent.json— canonical entry pointmdiv.pl/.well-known/mcp.json— manifest własnego serwera MCP, przez który agent AI może kupić moje usługi (26 narzędzi)mdiv.pl/robots.txt— jawnie dopuszczeni: GPTBot, ClaudeBot, PerplexityBot, Google-Extended i 24 inne- JSON-LD na każdej podstronie —
Organization,ProfessionalService,Service,FAQPage,BreadcrumbList,Article,WebAPI
Cała implementacja zajęła mi mniej niż dwa dni roboczo. Najwięcej czasu pochłonęło napisanie sensownych pytań do FAQ, a nie kod.
Co możesz zrobić w pakiecie opieki mDiv
GEO to nie jednorazowy projekt. To utrzymanie zgodności z trzema rzeczami, które zmieniają się co kwartał:
- nowe boty AI w
robots.txt(lista 2024 ≠ lista 2026), - aktualizacje konwencji
llms.txti.well-known/, - ewolucja Schema.org (
AIApplication,WebAPI,BuyAction— typy, których jeszcze nie było 2 lata temu).
W pakietach Pro i Premium opieki nad stroną GEO jest standardem: wdrożenie strukturalnych danych, plik llms.txt aktualizowany razem z ofertą, monitoring wzmianek w odpowiedziach asystentów AI i kwartalny audyt zmian w specyfikacjach.
Jeśli prowadzisz firmę, w której klienci zaczynają od pytania ChatGPT — nie czekaj rok, aż konkurencja będzie tam zamiast Ciebie. Wyceń projekt albo wpadnij na rozmowę.
Potrzebujesz pomocy?
Mogę zająć się tym za Ciebie — bezpiecznie, z backupem i bez przestojów.
Napisz do mnie