Strona główna > Journal > Ścieżka > Analityka, Performance, Konwersja > JavaScript SEO — czy Google faktycznie gorzej traktuje strony internetowe oparte o JavaScript?
Journal

JavaScript SEO — czy Google faktycznie gorzej traktuje strony internetowe oparte o JavaScript?

Oceń artykuł:

Firma Vercel, autor frameworka Next.js, wykonała badanie i obaliła mit o tym, że Google indeksuje strony internetowe oparte o JavaScript wolniej i gorzej od reszty.

Przez lata w społeczności SEO narosło kilka mitów dotyczących indeksowania stron internetowych opartych o JavaScript i ich optymalizacji pod kątem wyszukiwarek. Mianowicie dominuję pogląd, że Google indeksuje takie strony wolniej i gorzej w przeciwieństwie do reszty, co może wpływać na ogólne wyniki JavaScript SEO.

By obalić te mity Vercel, nawiązało współpracę z MERJ, firmą konsultingową zajmującą się SEO i inżynierią danych, i wspólnie przeprowadzili badanie mające na celu analizę zachowania Googlebota i sposobu, w jaki indeksuje strony.

W tym artykule przedstawimy wyniki ich badania dotyczące JavaScript SEO i wnioski, do których doprowadziło.

Najważniejsze informacje

  • Nie odnotowano zauważalnych różnic w sposobie renderowania stron opartych o JavaScript.
  • Google nie stosuję osobnych wytycznych do indeksowania dla stron z JavaScript.
  • Renderowanie stron napisanych w JavaScript nie generuję długich kolejek (trwających po kilkanaście dni).
  • Duża ilość skryptów JavaScript na stronie internetowej nie wpływa na szybkość wykrywania ich przez Google.

Tworzymy serwisy internetowe, które zwiększają sprzedaż

Jakie są możliwości Googlebota?

Na przestrzeni lat możliwości Google do indeksowania zmieniały się wielokrotnie i nadal się zmieniają. W przeszłości indeksowanie stron było mocno ograniczone, tylko statyczne strony HTML były dobrze widoczne dla wyszukiwarki. Ogólne rokowania JavaScript SEO nie były najlepsze.

Grafika 3D przedstawiająca małego robota, obok niego lewituje lupa, a w tle widać karty przeglądarki

Sytuacja stopniowo ulegała zmianie wraz z ewolucją technologii poprzez wprowadzenie schematu indeksowania AJAX i renderowanie stron z użyciem wyszukiwarki headless Chrome, aż do teraz.

Według Vercel obecny system indeksowania Google ma następujące cechy:

  • renderuje wszystkie strony HTML, a nie tylko ich podzbiory
  • wspiera funkcje JavaScript usprawniając JavaScript SEO
  • renderuje strony w nowej sesji przeglądarki bez zachowania ciasteczek czy poprzedniego stanu renderowania
  • nie klika w banery ciasteczek czy „schowany” kontent (np., ukryty za menu akordeonowym)
  • zabrania praktyk związanych ze zmienianiem zawartości strony poprzez użycie nagłówka User-Agent, który umożliwia wyświetlanie różnej treści dla użytkowników i wyszukiwarki w celu manipulowania rankingiem
  • przyspiesza renderowanie stron poprzez wykorzystanie buforowania zasobów

Vercel przeanalizowało ponad 100,000 wyszukiwań Googlebota na różnych witrynach, by przetestować jego możliwości i opisać jego zachowanie.

Jak Vercel obalił 4 mity na temat JavaScript SEO i indeksowania stron JavaScript?

Zakres badań skupił się na stronach internetowych nextjs.org, monogram.io, i basement.io a samo badanie zaczęło się 1 kwietnia 2024 roku i trwało 30 dni.

Grafika z logiem JavaScript, obok widać schemat blokowy

Vercel do badania użyło swojego rozwiązania Edge Middleware do przechwytywania i analizowania żądań generowanych przez robota wyszukiwarki.

W czasie badania przeanalizowali 37,000 wyrenderowanych stron, skupiając się głównie na danych płynących z Googlebota.

I właśnie na podstawie tej analizy Vercel zaczęło obalanie mitów na temat JavaScript SEO i indeksowania stron opartych o skrypty JavaScript.

Czy Google może renderować treści JavaScript?

W trakcie badania zdolności Google do renderowania treści JavaScript Vercel brało pod wagę następujące elementy:

  • kompatybilność z frameworkiem Next.js
  • dynamiczne indeksowanie zawartości
  • treści przesyłane strumieniowo przez Komponenty Serwera React
  • wskaźnik skuteczności renderowania

Grafika 3D przedstawiająca różne rodzaje wykresów z zakładką SEO w tle

Podsumowując, firma przeanalizowała jak Googlebot zachowuje się podczas zetknięcia z frameworkiem JavaScript na stronie nextjs.org, która stosuje strategie renderowania takie jak statyczne renderowanie, renderowanie po stronie klienta i renderowanie po stronie serwera.

Przetestowali strony na nextjs.org, które używają wywołań API do asynchronicznego ładowania treści, aby sprawdzić, czy Googlebot indeksuje treści, które nie są obecne w pierwotnej odpowiedzi HTML. Dodatkowo sprawdzono, czy robot jest w stanie przetworzyć treści przesyłane strumieniowo na stronę.

Vercel określiło wskaźnik skuteczności renderowania poprzez porównanie ilości żądań Googlebota w logach ich serwerów do liczby pomyślnie odebranych sygnałów renderowania. Dzięki temu uzyskali procent zaindeksowanych stron, które pomyślnie zostały wyrenderowane.

Ich wnioski były następujące, 100% z 100,000 wyszukań Googlebota na nextjs.org zakończyło się pełnymi wyrenderowaniami, wliczając w to strony, które zawierały złożone interakcje JavaScript (pomijając strony z wyłączonym indeksowaniem i z błędami kodu statusu).

Potwierdzono umiejętność Google do indeksowania treści ładowanej asynchronicznie i pełne renderowanie frameworku Next.js. A możliwość renderowania nie została w żaden sposób zakłócona przez strumieniowe przesyłanie treści.

Dodatkowo ustalono, że Googlebot podejmuje próby wyrenderowania wszystkich stron HTML, które indeksuje, a nie tylko podzbiory stron z dużą ilością skryptów JavaScript.

Czy Google traktuje strony napisane w JavaScript inaczej od innych?

Kolejnym mitem, który Vercel próbowało obalić, było przekonanie, że Google posiada specjalne wytyczne do indeksowania stron opartych o JavaScript (JavaScript SEO).

Grafika przedstawiająca komputer na jego ekranie wyświetla się kod, obok niego fruwają kafelki z napisami "HTML", "PHP", "CSS", "JS"

Aby to przetestować, firma stworzyła do tego celu stronę bez kodu JavaScript, ale zawierającą plik CSS, który importuje drugi plik CSS i porównało zachowanie renderowania do strony z włączoną obsługą JS.

Wyniki tego testu potwierdziły, że Google renderuje strony z obsługą JS w taki sam sposób, w jaki to robi w przypadku stron bez kodu JavaScript.

Następnie Vercel stworzyło aplikację na podstawie Next.js, by przetestować, jak Google renderuje strony w przypadkach wystąpienia różnych kodów statusu HTTP i tych, które mają wyłączone indeksowanie.

Ten test pokazał, że Google potrafi wyrenderować wszystkie kody statusu z oznaczeniem 200 pomimo treści zawierających JS. Strony z błędem 304 były renderowane na podstawie treści strony o statusie 200, a strony pokazujące statusy z rodzin 300, 400 i 500 nie zostały wyrenderowane.

Strony zawierające noindex tag nie były renderowane nawet jeśli zastosowano kod JavaScript, który miał usunąć tag po stronie klienta. Jeśli Googlebot odczyta noindex tag w pierwotnej odpowiedzi HTML nie wyrenderuje strony.

Ponadto Vercel sprawdziło także, czy proces renderowania różni się w zależności od stopnia złożoności kodu JavaScript. Test objął strony z minimalną liczbą interakcji JS, ze średnią, i dynamiczne strony z rozbudowanym renderowaniem po stronie klienta.

Dodatkowo porównano czas między pierwszym indeksowaniem a ukończonym renderowaniem, aby sprawdzić, czy bardziej skomplikowany kod JS prowadził do dłuższych kolejek renderowania lub dłuższego czasu przetwarzania.

Okazało się, że nie zauważono znaczących zmian w liczbie udanych wyrenderowań i nie znaleziono związku między stopniem złożoności JavaScript i opóźnieniach w renderowaniu. Jednak Vercel zaznaczyło, że złożony kod JS zastosowany na większej stronie ma szansę wpłynąć na efektywność indeksowania, co może spowodować zmiany w ogólnym wyniku JavaScript SEO.

Czy istnieje kolejka renderowania i czy czas ma wpływ na JavaScript SEO?

Badanie Vercel podjęło się także sprawdzenia zależności między stronami z dużą ilością skryptów JavaScript a czasem renderowania.

Grafika 3D przedstawiająca zakładkę przeglądarki z napisem SEO i elementami wykresów

Ich test objął takie aspekty jak sprawdzenie, ile czasu mija między pierwszym indeksowaniem Google a końcem renderowania, jak typy adresów URL (z ciągami zapytań i bez nich) i różne sekcje strony wpływają na szybkość renderowania, i jak często Google ponawia renderowanie stron i czy można zaobserwować jakieś wzorce w częstotliwości renderowania różnych sekcji strony.

Vercel ustaliło, że średnia różnica czasu w renderowaniach 37,000 stron wygląda następująco:

  • 25 precentyl jest wyrenderowany w trakcie pierwszych 4 sekund
  • 50 precentyl po 10 sekundach
  • 75 precentyl renderuję się po 26 sekundach
  • 90 precentyl jest gotowy po około 2 godzinach
  • 95 precentyl po 6 godzinach
  • 99 precentyl po 18 godzinach

Już po tych danych można zaobserwować, że mit o długich kolejkach żyjący w społeczności JavaScript SEO nie ma oparcia w rzeczywistości. Vercel także zaznaczyło, że strony renderujące się po 18 godzinach były raczej wyjątkiem od reguły niż normą.

Grafika z napisem HTML na żółtym tle

Jeżeli chodzi o URL bez ciągów zapytań, czas renderowania prezentuje się następująco:

  • 50 precentyl po 10 sekundach
  • 75 precentyl po 22 sekundach
  • 90 precentyl po około 2,5 godzinach

Dla porównania URL z ciągami zapytań wypadają następująco:

  • 50 precentyl renderuje się po 13 sekundach
  • 75 precentyl po 31 minutach
  • 90 precentyl po około 8,5 godzinach

Z zebranych danych wynikło, że Google faktycznie traktuje inaczej URL z ciągami zapytań, które nie zmieniają zawartości strony i ich renderowanie stopniowo spowalnia.

Dodatkowo zauważono, że im częściej dana sekcja strony jest aktualizowana, tym szybciej jest renderowana w porównaniu do bardziej statycznych stron, gdzie ponowne renderowanie zajmowało więcej czasu. Nie ma to dodatkowego wpływu na JavaScript SEO, oznacza to jedynie, że Google skupia się na renderowaniu nowych treści.

Dane też nie wskazują, żeby indeksowanie stron trwało po kilkanaście dni wbrew powszechnemu przekonaniu.

Czy strony internetowe z dużą ilością skryptów JavaScript są wolniej odkrywane przez Google?

Ostatnim mitem, z jakim Vercel się zmierzyło, jest przekonanie, że strony zawierające dużą ilość skryptów JavaScript, szczególnie takie, które stosują renderowanie po stronie klienta, są wolniej odrywane przez Googlebota.

Grafika 3D z wizualizacją przeglądarki Firefox

Aby obalić ten mit, przeprowadzono testy porównujące odkrywanie linków na stronach z różnymi strategiami renderowania takimi jak renderowanie po stronie serwera, po stronie klienta i renderowanie statyczne.

Przetestowano także, jak Google odkrywa linki we wcześniej niewyrenderowanych stronach JavaScript. Porównano też czas odkrywania linków umieszczonych w różny sposób za pomocą linków HTML, linków w zwartości renderowanej po stronie klienta i linki zawarte w treści JavaScript, która nie była wcześniej wyrenderowana.

Wyniki tego testu pokazały, że Googlebot bez problemu odkrywa linki w wyrenderowanych stronach niezależnie od wybranej metody renderowania, a także potrafi znaleźć linki w uprzednio niewyrenderowanych ładunkach JavaScript.

Pomimo tego trzeba zaznaczyć, że w przypadku stron renderowanych po stronie klienta proces renderowania musi się zakończyć, zanim linki zostaną odkryte. Co daje małą przewagę stronom, które są renderowane po stronie serwera lub są już w części wyrenderowane.

Grafika 3D przedstawiająca trzy zakładki przeglądarki w różnych kolorach

Odkryto także, że Googlebot nie daje żadnego pierwszeństwa indeksowaniu linków, nieważne czy odkrył je w podczas pierwszego indeksowania, czy po wyrenderowaniu strony. Co więcej, Googlebot ocenia wartość linków dla architektury strony i nadaje priorytet indeksowaniu dopiero po pełnym wyrenderowaniu strony.

Podsumowując, dbanie o częste aktualizowanie mapy strony pozwala zredukować czas odkrywania linków i ich związków przez Googlebota. Dodatkowo ważne jest, by sprawdzać strony poprzez Google Search Console, aby upewnić się, że nasza wybrana forma renderowania nie sprawia problemów.

Ogólną rekomendacją Vercel jest trzymanie się dobrych praktyk (JavaScript SEO) określonych przez Google takich jak dbanie o krótki czas ładowania strony czy tworzenie treści z myślą o użytkownikach. Na przykład, duże pliki JavaScript znacznie spowolnią czas ładowania strony (z perspektywy użytkownika).

Podsumowanie

Vercel i MERJ przeprowadzili bardzo obszerne testy, które pozwoliły im na obalanie popularnych mitów żyjących w społeczności JavaScript (SEO). Dzięki ich wnioskom możemy się dowiedzieć, że strony oparte o JavaScript nie są w żadnym stopniu dyskryminowane przez Google i proces ich renderowania i indeksowania, nie odbiega od normy.

Nawet różnice dotyczące procesu renderowania i indeksowania w przypadku stron renderowanych po stronie klienta (wydajność Googlebota w ich przypadkach jest nieco gorsza) są na tyle małe, że nie mają one większego znaczenia, jeśli nadal dbamy o ważniejsze czynniki SEO takie jak szybkość ładowania strony.

Wnioski z przeprowadzonego testu z pewnością przydadzą się organizacjom, które chcą zainwestować w proces optymalizacji stron internetowych pod kątem JavaScript SEO i poprawić swój ranking w wynikach wyszukiwania Google.

Najczęściej zadawane pytania

Czy proces renderowania i indeksowania stron stworzonych na podstawie JavaScript różni się od witryn napisanych w innych językach programowania?

Proces indeksowania i renderowania stron stworzonych na podstawie JavaScript nie różni się od tego stosowanego w przypadku stron internetowych napisanych w innych językach programowania. Obecna wersja Google Chrome wspiera wszystkie funkcjonalności JS.

Czy strony napisane w JavaScript podlegają dłuższym kolejkom renderowania?

Strony internetowe napisane w JavaScript nie podlegają dłuższym kolejkom renderowania a czas renderowania, zwykle nie przekracza kilkunastu godzin. Warto jednak zwrócić uwagę, że URL z ciągami zapytań są dłużej renderowane, ponieważ ich zawartość nie zmienia się regularnie. Warto także pamiętać o odpowiedniej optymalizacji plików JavaScript, by zwiększyć efektywność renderowania.

Czy obecność JavaScript wpływa na odkrywanie nowych stron przez Google?

Obecność JavaScript i złożoność kodu nie wpływają na odkrywanie nowych stron przez Googlebota i nie mają wpływu na ogólny wynik JavaScript SEO. Jedynym, na co warto zwrócić uwagę, jest to, że w przypadku stosowania renderowania po stronie klienta linki są odkrywane dopiero po ukończeniu procesu renderowania.

Oceń artykuł:
Journal / Redaktor
Autor: Radek
UX Writer i badacz z wykształcenia + doświadczenia. Zbiera wiedzę The Story i dzieli się nią na Journalu.

Jesteś zainteresowany współpracą z nami? Zajrzyj do Portfolio