Dwuetapowa indeksacja i budżet renderowania. dlaczego googlebot pobiera kod javascript, ale zwleka z indeksem?

Współczesne ramy tworzenia stron internetowych w ogromnym stopniu opierają się na dynamicznym ładowaniu treści za pomocą JavaScriptu.

Frameworki takie jak React, Angular czy Vue.js pozwalają na budowanie szybkich i interaktywnych interfejsów użytkownika. Niestety, to co zachwyca ludzi, dla robotów wyszukiwarek stanowi gigantyczne wyzwanie technologiczne. Jeśli Twoja witryna korzysta z zaawansowanych skryptów, możesz napotkać zjawisko, w którym Googlebot regularnie odwiedza Twój adres URL, ale treść strony tygodniami nie pojawia się w wynikach wyszukiwania.

Dwuetapowy proces indeksacji (two-wave indexing)

Aby zrozumieć, dlaczego robot skanuje stronę, ale jej nie indeksuje, należy poznasz mechanizm tzw. dwuetapowej indeksacji. W pierwszej fali Googlebot pobiera jedynie surowy, czysty kod HTML prosto z serwera. Jest to proces szybki i tani pod względem mocy obliczeniowej. Jeśli Twoja strona renderuje treść po stronie klienta (Client-Side Rendering), robot w tym momencie widzi jedynie pusty szkielet i odnośniki do skryptów.

Dopiero w drugiej fali, gdy wolne zasoby serwerów Google będą dostępne, strona trafia do kolejki systemu WRS (Web Rendering Service), który uruchamia wirtualną przeglądarkę, pobiera pliki JavaScript i generuje ostateczny wygląd witryny. Czas oczekiwania na ten proces może wynosić od kilku godzin do nawet wielu tygodni. W efekcie Search Console informuje o udanym skanowaniu, ale braku indeksu.

Problem ten staje się zmorą nowoczesnych portali, dlatego warto poznać jego głębsze podłoże strukturalne. Kompleksowe omówienie rozbieżności między pracą tradycyjnego crawlera a końcową akceptacją dokumentu znajdziesz w artykule: crawlowanie a indeksacja – dlaczego google odwiedza stronę ale jej nie indeksuje. Lektura ta pozwoli Ci precyzyjnie oddzielić problemy z renderingiem od innych barier jakościowych.

3 przyczyny, przez które javascript blokuje indeksację po skanowaniu

Gdy Googlebot podejmuje próbę wyrenderowania Twojej strony, napotyka często bariery techniczne, które zmuszają go do porzucenia procesu zapisu w bazie danych. Oto najczęstsze z nich:

  • Zablokowane zasoby krytyczne w robots.txt: To klasyczny błąd konfiguracyjny. Jeśli w pliku robots.txt zablokujesz robotom dostęp do folderów zawierających pliki .js lub .css (np. regułą Disallow: /assets/), system WRS nie pobierze stylów i skryptów. Googlebot zobacz ułomną, nieczytelną wersję strony i odrzuci ją jako niespełniającą standardów jakości.
  • Zbyt długi czas wykonywania skryptów (Execution Timeout): Usługa renderująca Google nie czeka bez końca na załadowanie Twojej strony. Jeśli skrypty potrzebują więcej niż kilka sekund na pobranie danych z zewnętrznych baz (API) i złożenie widoku, robot zamknie kartę przedwcześnie. Zobaczy wtedy pusty ekran i uzna podstronę za pozbawioną wartościowej treści.
  • Błędy w skryptach uniemożliwiające renderowanie: Wyszukiwarka posługuje się nowoczesną wersją Chromium, ale specyficzne błędy w kodzie (np. odwołania do niezdefiniowanych zmiennych czy brak kompatybilności wstecznej) mogą całkowicie zatrzymać wykonywanie kodu. Strona nie załaduje się w środowisku Googlebota, co natychmiast zablokuje jej indeksację.

Poleganie na pełnym renderowaniu po stronie klienta w kontekście pozycjonowania SEO niesie za sobą duże ryzyko opóźnień indeksacyjnych. Jeśli chcesz, aby Googlebot indeksował Twoje treści natychmiast po ich przeskanowaniu, najlepszym rozwiązaniem jest wdrożenie Server-Side Rendering (SSR) lub systemów hybrydowych. Dzięki temu serwer wyśle do wyszukiwarki w pełni gotowy, tekstowy kod HTML, eliminując konieczność kosztownego czekania na zasoby Web Rendering Service.