Twoja strona może zajmować 1. miejsce w Google i wciąż być niewidoczna dla ChatGPT

Crawler Google'a uruchamia Twój JavaScript, pobiera wyrenderowany HTML do swojego indeksu i może umieścić stronę renderowaną po stronie klienta na pierwszej stronie wyników wyszukiwania. Ta sama strona, zapytana przez ChatGPT lub wyszukiwarkę AI od Bing, znika, ponieważ boty napędzające te usługi nigdy nie wykonują JavaScriptu. Rezultatem jest strona z wysoką pozycją, której żaden asystent AI nie jest w stanie wyświetlić.

Dlaczego crawlery AI pomijają Twoje treści

Dwa z najczęściej używanych crawlerów AI — GPTBot od OpenAI oraz ClaudeBot od Anthropic — w ogóle nie renderują JavaScriptu. Badanie przeprowadzone w grudniu 2024 roku przez Vercel i MERJ wykazało, że oba boty po prostu pobierają surowy HTML oraz wszelkie powiązane pliki JavaScript, a następnie przerywają działanie. Skrypty nigdy nie są uruchamiane, więc boty widzą jedynie pustą powłokę.

Googlebot, w przeciwieństwie do nich, kolejkuje stronę, wykonuje skrypty i indeksuje wynikowy DOM. Ta fundamentalna różnica oznacza, że strona zbudowana w oparciu o czysty framework client-side (React, Vue itp.) może być w pełni widoczna dla Google, pozostając jednocześnie pustą kartą dla wyszukiwania opartego na AI.

Google vs. AI: Luka w renderowaniu

Google od dawna inwestuje w headless rendering. Jego bot potrafi przetwarzać złożone aplikacje typu single-page, hydratować je i wyodrębniać ustrukturyzowane dane, które pojawiają się po początkowym załadowaniu. Crawlery AI są jednak wciąż w trybie „tylko pobieranie”. Mogą analizować JSON-LD wstrzykiwany za pomocą narzędzi takich jak react-helmet, ale tylko wtedy, gdy te znaczniki znajdują się w surowym HTML-u.

Narzędzia programistyczne mogą mylić. Panel Elements w Chrome pokazuje stronę po uruchomieniu JavaScriptu, co daje mylne wrażenie, że znaczniki są częścią źródła. Użycie „view-source” (lub curl bez przeglądarki) ujawnia to, co bot faktycznie otrzymuje. Jeśli brakuje tam treści lub danych ustrukturyzowanych, crawlery AI nigdy ich nie zobaczą.

Jak objawia się ten problem

Typowa strona React, która polega na renderowaniu po stronie klienta, będzie wysoko w Google na frazy takie jak „najlepszy ekspres do kawy” lub „jak naprawić cieknący kran”. Jednak użytkownik, który zapyta ChatGPT: „Jakie są najlepsze ekspresy do kawy?”, otrzyma odpowiedzi, które całkowicie pominą tę stronę. Ta sama luka dotyczy AI od Bing, który obsługuje około 92% zapytań agentów ChatGPT. Możliwości renderowania JavaScriptu przez Bing są ograniczone, więc strona działająca wyłącznie po stronie klienta może być niewidoczna dla obu głównych dostawców wyszukiwania AI.

Problem jest cichy. Pulpity SEO śledzące rankingi w Google będą raportować zdrową pozycję, podczas gdy ruch na stronie z asystentów AI pozostanie na poziomie zero. Ta rozbieżność może kosztować firmy rosnący udział ruchu z odkrywania (discovery traffic), zwłaszcza że coraz więcej użytkowników polega na interfejsach konwersacyjnych w poszukiwaniu szybkich odpowiedzi.

Co programiści robią źle

Wiele zespołów zakłada, że jeśli Google potrafi odczytać stronę, to każdy crawler również. Często:

  • Polegają na react-helmet lub podobnych bibliotekach do wstrzykiwania JSON-LD po załadowaniu strony, wierząc, że znaczniki „tam są”.
  • Testują stronę tylko w widoku Elements w przeglądarce, a nie w surowym kodzie źródłowym.
  • Pomijają proste sprawdzenie za pomocą curl, nie zauważając, że nagłówek lub kluczowe frazy nigdy nie pojawiają się w początkowej odpowiedzi HTML.

Praktyki te dają iluzję zdrowego SEO, pozostawiając stronę ślepą na wyszukiwanie AI.

Jak to naprawić

Rozwiązaniem jest dostarczenie rzeczywistej treści w pierwszej odpowiedzi HTTP. Działają trzy sprawdzone podejścia:

  • Server-Side Rendering (SSR) – serwer uruchamia JavaScript, renderuje pełny HTML i wysyła go do klienta. Strona dociera już wypełniona treścią.
  • Static Generation – w czasie budowania (build time) framework tworzy statyczne pliki HTML, które zawierają całą treść. Nie jest wymagane renderowanie w czasie rzeczywistym (runtime).
  • Prerendering – usługa middleware renderuje stronę raz, buforuje wynik i serwuje statyczną migawkę (snapshot) crawlerom.

Frameworki takie jak Next.js (React) i Nuxt (Vue) oferują wbudowane wsparcie dla tych technik. Przejście z czystego pakietu client-side na jedną z powyższych metod zapewnia, że zarówno Googlebot, jak i crawlery AI widzą tę samą treść.

Szybki test poprawności:

curl -s https://yourpage.com | grep "your headline text"

Jeśli polecenie nie zwróci niczego, nagłówek nie znajduje się w surowym HTML-u i boty AI go nie zauważą.

Na co zwrócić uwagę

Obecny stan to wyraźne niedopasowanie: silnik renderujący Google jest wyrafinowany; crawlery AI nie są. Badanie, które ujawniło tę lukę, ma zaledwie kilka miesięcy, a zarówno OpenAI, jak i Anthropic zasygnalizowały zainteresowanie ulepszeniem swoich potoków (pipelines) indeksowania. Mimo to żadna publiczna mapa drogowa nie gwarantuje, że pełne wykonywanie JavaScriptu zostanie wkrótce dodane.

W międzyczasie koszt ignorowania tego problemu uległ zmianie. Dziesięć lat temu karą było wolniejsze indeksowanie przez Google; dziś jest nią wykluczenie z najszybciej rozwijającego się kanału odkrywania treści — wyszukiwania opartego na AI. Firmy polegające na ruchu organicznym powinny przeprowadzać audyt swoich stron za pomocą narzędzi analizujących surowy kod źródłowy, wdrażać SSR lub generowanie statyczne tam, gdzie jest to możliwe, oraz monitorować raporty indeksowania specyficzne dla AI, gdy tylko staną się dostępne.

Wniosek: Strona, która wygląda idealnie w rankingach Google, może być niewidoczna dla ChatGPT i Bing AI, jeśli opiera się wyłącznie na renderowaniu po stronie klienta. Dostarczanie treści w początkowym kodzie HTML — poprzez SSR, generowanie statyczne lub prerendering — niweluje tę lukę i zabezpiecza widoczność zarówno w tradycyjnych wyszukiwarkach, jak i w wyszukiwaniu opartym na AI.