JavaScript SEO — co naprawdę widzą Googlebot i crawlery AI bez renderowania
POWRÓT_DO_BLOGA
AI & SEO 13 min

JavaScript SEO — co naprawdę widzą Googlebot i crawlery AI bez renderowania

Paweł Wiszniewski
Paweł Wiszniewski
Specjalista SEO & GEO · AI Engineer

Google renderuje JavaScript od blisko dekady i robi to na tyle sprawnie, że temat zdążył zniknąć z listy priorytetów większości zespołów. Wraca teraz z innej strony. Vercel przeanalizował ruch botów AI na własnej infrastrukturze — setki milionów żądań — i okazało się, że GPTBot, ClaudeBot i PerplexityBot pobierają pliki JavaScript, ale ich nie wykonują. Treść, która powstaje dopiero w przeglądarce, dla ChatGPT, Claude'a i Perplexity nie istnieje. Serwis oparty na React czy Vue może mieć bardzo dobre pozycje w Google i jednocześnie być zupełnie nieobecny w odpowiedziach modeli — bo jedyne, co silniki AI z niego widzą, to pusty kontener i loader.

Googlebot renderuje JavaScript — z opóźnieniem i na własny koszt. Większość crawlerów AI nie renderuje go wcale: badanie Vercela pokazało, że GPTBot, ClaudeBot i PerplexityBot pobierają pliki JS, ale ich nie wykonują. Jak w 5 minut sprawdzić, co boty naprawdę widzą, czym różni się CSR od SSR/SSG/ISR i jak naprawić SPA bez przepisywania całej aplikacji.

Poniżej opisuję, jak Google faktycznie przetwarza JavaScript, jak sprawdzić, co boty widzą na konkretnej stronie, i według jakiego klucza dobrać strategię renderowania (CSR/SSR/SSG/ISR) — bez przepisywania całej aplikacji.

Jak Google przetwarza JavaScript — trzy etapy zamiast jednego

Dla zwykłej strony HTML proces jest prosty: Googlebot pobiera dokument i przekazuje go do indeksowania. Dla strony opartej na JavaScripcie dochodzi trzeci, kosztowny etap — renderowanie:

/// JAK GOOGLE PRZETWARZA JAVASCRIPT

Crawlery AI kończą na kroku 01 — nie renderują wcale

01
CRAWL
Googlebot pobiera surowy HTML z serwera — to widzi każdy bot, także crawlery AI
02
INDEKS — FALA 1
Do indeksu trafia to, co jest w surowym HTML. Pusta skorupa = nic do zaindeksowania
03
KOLEJKA RENDEROWANIA
Strona czeka na Web Rendering Service (Chromium). Od sekund do dni — kolejka jest współdzielona
04
RENDER + INDEKS — FALA 2
WRS wykonuje JS, buduje DOM i dopiero ta wersja uzupełnia indeks. Kosztuje crawl budget

Googlebot najpierw pobiera surowy HTML i indeksuje to, co w nim znajdzie. Strona trafia potem do kolejki renderowania — Web Rendering Service, czyli w praktyce aktualnego Chromium, który wykonuje JavaScript i buduje pełny DOM. Dopiero ten wyrenderowany HTML wraca do indeksowania. Google deklaruje, że mediana czasu oczekiwania jest krótka, ale kolejka jest współdzielona i priorytetyzowana: przy dużych serwisach opóźnienie potrafi rosnąć do godzin, a nawet dni. Renderowanie jest też po prostu drogie — i wlicza się w crawl budget, więc serwis, który każdą podstronę każe renderować od zera, sam sobie dławi indeksację.

W praktyce: nawet u Google, które renderować potrafi, treść zależna od JavaScriptu indeksuje się później i mniej niezawodnie niż ta obecna w surowym HTML.

Crawlery AI nie wykonują JavaScriptu

O ile Google zbudowało pod renderowanie całą infrastrukturę, o tyle dostawcy AI poszli na skróty. Dane Vercela nie zostawiają tu pola do interpretacji:

/// KTO RENDERUJE JAVASCRIPT (2026)

Wg badania Vercela na setkach milionów żądań botów AI

01
Googlebot · Google (AI Overviews, AI Mode)RENDERUJE
Renderuje przez WRS (aktualne Chromium) — z opóźnieniem i kosztem crawl budgetu
02
GeminiRENDERUJE
Korzysta z infrastruktury Googlebota, więc dostaje wyrenderowaną treść
03
GPTBot · OAI-SearchBot (ChatGPT)NIE RENDERUJE
Pobiera pliki JS, ale ich nie wykonuje — widzi tylko surowy HTML z serwera
04
ClaudeBot (Anthropic)NIE RENDERUJE
Nie wykonuje JavaScriptu — treść budowana klientem jest niewidoczna
05
PerplexityBotNIE RENDERUJE
Nie wykonuje JavaScriptu — cytuje wyłącznie to, co jest w pierwszej odpowiedzi HTML
06
Bingbot (Copilot)OGRANICZONE
Deklaruje ograniczone renderowanie — w praktyce nie należy na nim polegać
  • GPTBot i OAI-SearchBot (OpenAI), ClaudeBot (Anthropic), PerplexityBot — pobierają pliki JS, ale ich nie wykonują. Widzą wyłącznie to, co serwer zwraca w pierwszej odpowiedzi HTML.
  • Gemini korzysta z infrastruktury Googlebota (WRS), więc jako jedyny z dużych graczy dostaje wyrenderowaną treść.
  • Bingbot (zasilający Copilota) deklaruje ograniczone renderowanie — w praktyce nie należy na nim polegać.

Dla klasycznego SPA rachunek jest prosty: aplikacja React/Vue/Angular, która zwraca botom pusty div i buduje treść po stronie klienta, jest dla wyszukiwarek AI niewidzialna. To samo dotyczy elementów wstrzykiwanych JavaScriptem: meta tagów, canonicali i danych strukturalnych Schema.org — jeśli dokleja je dopiero przeglądarka, boty AI nigdy ich nie zobaczą. A skoro modele nie widzą treści, nie ma czego cytować — cała strategia obecności w odpowiedziach ChatGPT zaczyna się od renderowania.

CSR, SSR, SSG, ISR — którą strategię wybrać

Cztery strategie renderowania różnią się jednym: kto i kiedy buduje HTML.

StrategiaJak działaDla kogoCo widzą boty
CSR (client-side)Serwer zwraca pustą skorupę, treść buduje przeglądarkaPanele, aplikacje za loginemGoogle: z opóźnieniem; boty AI: nic
SSR (server-side)Serwer składa pełny HTML przy każdym żądaniuTreści dynamiczne, personalizacjaPełna treść od razu
SSG (static generation)Strony budowane raz, przy deployuBlogi, landing pages, dokumentacjaPełna treść od razu
ISR (incremental static)Statyka odświeżana w tle co zadany czasSklepy, duże serwisy treściPełna treść od razu

Nie jest to przy tym wybór „wszystko albo nic". Nowoczesne frameworki (Next.js, Nuxt, Astro, SvelteKit) pozwalają mieszać strategie per szablon: blog jako SSG, karty produktów jako ISR, koszyk jako CSR. Sensowny podział domyślny: treść publiczna, na której Ci zależy w wyszukiwaniu — HTML z serwera; interakcje — JavaScript. Hydration (dołączenie interaktywności do gotowego HTML) nie szkodzi SEO, o ile HTML jest kompletny zanim JavaScript wystartuje.

Test w 5 minut: co naprawdę widzi bot

Zamiast polegać na zapewnieniach dokumentacji frameworka, sprawdź na własnej stronie:

  1. 1.Wyłącz JavaScript w DevTools (Ctrl+Shift+P → „Disable JavaScript") i odśwież stronę. To, co widzisz, to wersja dla botów AI. Brakuje treści, cen, opisów? Masz problem.
  2. 2.Porównaj view-source z DOM. „Pokaż źródło strony" to surowy HTML (widzą go wszyscy), zakładka Elements to DOM po JavaScripcie (widzi go głównie Google — po renderowaniu).
  3. 3.Pobierz stronę jak bot. Jedno polecenie w terminalu pokazuje, czy kluczowa fraza jest w pierwszej odpowiedzi serwera:
test-bez-js.sh
# Czy tytuł oferty jest w surowym HTML?curl -s -A "GPTBot" https://twojastrona.pl/oferta | grep -i "nazwa uslugi"# Ile znaków treści zwraca serwer bez JS?curl -s https://twojastrona.pl/ | wc -c
  1. 1.Inspekcja URL w Google Search Console. Zobacz wyrenderowany HTML i zrzut ekranu oczami Googlebota — różnice między nim a przeglądarką to sygnał ostrzegawczy. Jeśli strona wygląda dobrze w GSC, ale w teście bez JavaScriptu jest pusta, to znaczy: Google sobie poradzi, boty AI nie.

Siedem typowych wpadek SPA

W audytach wracają wciąż te same błędy — na tyle regularnie, że można je spisać z pamięci:

  1. 1.Treść dopiero po interakcji. Taby, akordeony i sekcje dogrywane po kliknięciu nie istnieją dla botów. Treść ma być w DOM od razu (może być zwinięta wizualnie).
  2. 2.Infinite scroll bez paginacji. Bot nie scrolluje. Bez klasycznych linków do kolejnych stron produkty z „dalszych ekranów" są nieosiągalne.
  3. 3.Metadane ustawiane klientem. Title, description i canonical wstrzykiwane JavaScriptem — boty AI ich nie zobaczą, a Google może zaindeksować wersję sprzed podmiany.
  4. 4.Schema.org doklejana w przeglądarce. Dane strukturalne muszą być w HTML z serwera — inaczej tracisz 3× wyższą cytowalność w AI, którą dają.
  5. 5.Zablokowane pliki JS/CSS w robots.txt. Google nie wyrenderuje strony, jeśli zablokowałeś mu zasoby. Audyt dostępów opisuję we wpisie o crawlerach AI i robots.txt.
  6. 6.Lazy-loading bez fallbacku. Obrazy i treści ładowane wyłącznie po zdarzeniach scrolla (bez natywnego loading="lazy" albo noscript) dla botów nie istnieją.
  7. 7.Soft 404. SPA zwraca status 200 dla nieistniejących adresów i renderuje „nie znaleziono" klientem. Bot indeksuje śmieci albo — gorzej — duplikaty.

Nasz przypadek: Smart SPA Fallback w PozyczkoBanku

Z dokładnie takim problemem mierzyliśmy się w projekcie PozyczkoBank: serwis działał jako SPA, więc dla botów był w praktyce pusty. Zamiast kosztownego przepisania całości wdrożyliśmy architekturę Smart SPA Fallback — boty i pierwsze wejścia dostają pełny, wyrenderowany serwerowo HTML, a użytkownik po hydration korzysta z aplikacji jak wcześniej. Efekt: treści (w tym generowane automatycznie przez pipeline z Gemini) są indeksowalne od pierwszego żądania, bez zmiany doświadczenia użytkownika.

Plan naprawczy krok po kroku

  1. 1.Zinwentaryzuj szablony, nie pojedyncze strony: strona główna, kategoria, karta produktu/usługi, wpis blogowy, strona statyczna.
  2. 2.Przetestuj każdy szablon bez JavaScriptu (metody wyżej) i oznacz: pełna treść / częściowa / pusta skorupa.
  3. 3.Ustal priorytety po pieniądzach. Najpierw szablony, które zarabiają: oferta, karty produktów, treści pozyskujące ruch.
  4. 4.Dobierz strategię per szablon: treści stabilne → SSG, często zmienne → ISR/SSR, panel klienta → zostaje CSR.
  5. 5.Przenieś metadane i schema na serwer — title, description, canonical, JSON-LD w pierwszej odpowiedzi HTML.
  6. 6.Zweryfikuj efekt: inspekcja URL w GSC, test curl, a po tygodniach — statystyki indeksowania i logi serwera.
  7. 7.Pilnuj wydajności. SSR zwykle poprawia LCP, ale hydration potrafi zepsuć INP — po wdrożeniu sprawdź Core Web Vitals.

---

Projektuję architektury renderowania stron i aplikacji, które są szybkie dla ludzi i czytelne dla botów, a audyt renderowania robię w ramach technicznego SEO. Napisz do mnie — w pierwszym kroku sprawdzę, co z Twojej strony naprawdę widzą Google i crawlery AI.

Warto przeczytać dalej:

/// RELATED_RECORDS

AI & SEO

Przeglądarki AI i Agent Experience (AX) — czy agent umie obsłużyć Twoją stronę?

W ciągu dwunastu miesięcy dostaliśmy Comet od Perplexity (od października 2025 darmowy globalnie), Claude for Chrome i ChatGPT Atlas — a w lipcu 2026 OpenAI ogłosił wycofanie Atlasa i przeniesienie agentowego przeglądania wprost do ChatGPT. Marki przeglądarek przychodzą i odchodzą, ale zdolność pozostaje: agent, który zamiast użytkownika klika, wypełnia formularze i domyka zadania na Twojej stronie. Crawlerom wystarczał czytelny HTML — agent musi umieć DZIAŁAĆ. Czym jest Agent Experience (AX), co najczęściej blokuje agentów (captcha, modale, przyciski-divy, formularze bez etykiet) i jak w 30 minut przetestować własną stronę agentem.

14 min
AI & SEO

Agentic commerce — jak sprzedawać, gdy kupuje agent (ChatGPT Checkout, ACP, AP2, UCP)

W lutym 2026 OpenAI uruchomił „Buy it in ChatGPT”, a w marcu… wycofał się z natywnego checkoutu i przestawił na model agentic storefronts — zakup domykany w sklepie, nie w czacie. Warstwa transakcyjna AI jest w ruchu, ale kierunek jest przesądzony: protokoły ACP (OpenAI/Stripe), AP2 (Google) i UCP już standaryzują, jak agent znajduje produkt, płaci i składa zamówienie. Co sklep powinien zrobić dziś, żeby nie przepalić budżetu na ruchomy cel: feed produktowy jako inwestycja bez ryzyka, gotowość API i chłodna macierz decyzji — włączyć się czy czekać.

15 min
AI & SEO

SEO i GEO dla SaaS i firm B2B — jak być polecanym, gdy klient pyta AI „jakie narzędzie wybrać”

Czaty GenAI są już źródłem numer jeden wpływającym na krótką listę dostawców B2B — 17,1% wskazań, więcej niż serwisy recenzji (15,1%) i strony samych vendorów (12,8%), a około połowa kupujących oprogramowanie zaczyna research od rozmowy z AI (G2, 2025). Kupujący spędza z handlowcami ledwie 17% czasu zakupowego — decyzja w dużej mierze zapada, zanim ktokolwiek wypełni formularz. Jak sprawić, żeby w tej niewidzialnej fazie modele polecały Twój produkt: strony porównań, cytowalny pricing, G2 i społeczności oraz pomiar SoV dla kategorii.

15 min
/// AUTHOR
Paweł Wiszniewski – AI & Web Engineer

Paweł Wiszniewski

SEO & GEO Specialist & AI Engineer

Specjalista SEO/GEO (10 lat) i AI engineer (3 lata). Buduję widoczność w wyszukiwarkach, systemy AI i automatyzacje, które redukują koszty i zwiększają efektywność operacyjną firm.

Signal received?

Przerwij
Ciszę

Zainicjuj protokół. Nawiąż połączenie. Zbudujmy coś głośnego.

> OCZEKIWANIE_NA_SYGNAŁ...