Problemy z indeksowaniem i SEO z powodu JavaScript – sprawdzamy fakty i metody naprawy

Problemy z indeksowaniem i pozycjonowaniem mogą mieć przeróżne przyczyny. Jedną z nich jest zastosowanie JavaScript na stronie, które potrafi utrudniać działanie crawlerów i powodować jej blokowanie. Chociaż możemy wyodrębnić konkretne scenariusze, w których to właśnie głównym winowajcą jest JavaScript, w ostatnim odcinku podcastu Search Norwich dowiadujemy się, że problemy mogą być wywołane przez inne przyczyny. Martin Splitt z Google przekonuje, że zastosowanie JavaScript jest bezpieczne i pokazuje, jak zaudytować problemy ze stroną pod tym kątem. Sprawdzamy więc, czy faktycznie porady te mają sens!

JavaScript wpływa na problemy z indeksowaniem i pozycjonowaniem

Problemy z indeksowaniem i pozycjonowaniem strony mogą być spowodowane przez JavaScript. Ale mogą być też wywołane setkami innych czynników, o czym często przypominamy na blogu Funkymedia. SearchNorwich niedawno opublikował doskonały film z Martinem Splittem z Google, który omawia, jak debugować problemy z indeksowaniem i indeksowaniem związane z JavaScript. Zdaniem przedstawiciela Google w większości przypadków to nie JavaScript powoduje problemy z indeksowaniem – rzeczywistą przyczyną jest coś innego.

Według Splitta za to, że JavaScript ma tak złą opinię, odpowiadają przede wszystkim powielane mity przez webmasterów oraz seowców. Nawet jeśli nie zajmuje się samodzielnym pisaniem wtyczek i kodowaniem w JavaScript, wskazówki, którymi dzieli się Splitt, pozwolą każdemu dobrze zacząć weryfikować naturę pojawiających się problemów z indeksowaniem i pozycjonowaniem. Cały materiał możemy zobaczyć bez problemu na Youtube: Maybe It Isn’t JavaScript – Martin Splitt at SearchNorwich 18.

Problemy z JavaScript jako branżowy mem?

Ze względu na to, że Splitt niejako “uniewinnia” JavaScript, w poczuciu sprawiedliwości na początku przedstawmy najczęstsze problemy, które według nas faktycznie mają swoje podłoże w JavaScript. JavaScript przez lata urosło do rangi memu, jeśli chodzi problemy z SEO. Dlaczego? Bo osadzone w tej składni kluczowe treści lub linki są generowane dynamicznie i mogą nie być przez to indeksowane przez wyszukiwarki. Wynika to najczęściej z renderowania po stronie klienta (client-side rendering), blokowania plików JavaScript w ustawieniach robots.txt oraz opóźnień w ładowaniu treści.

Jednym z najpopularniejszych problemów z JavaScript jest nieindeksowanie generowanej treści. JavaScript nie ładuje się wystarczająco szybko, aby Googlebot poprawnie ukończył renderowanie strony przed jej pełnym załadowaniem. W praktyce więc crawlery wyszukiwarek mają problem z pobraniem pożądanej zawartości strony i zaindeksowaniem elementów, które są generowane dynamicznie przez JavaScript. Problem jest poważniejszy, jeśli główne obszary nawigacyjne strony (np. nagłówki, menu, linki) również są napisane w obrębie modułów JavaScript.

Kolejnym popularnym mankamentem są opóźnienia w ładowaniu treści. JavaScript może opóźniać ładowanie poszczególnych części, m.in. meta tagów, nagłówków itd. Słaba optymalizacja i wolniejsze serwery, a do tego niezbyt dużo czasu poświęconego przez crawler, powodują poważne problemy i mogą skutkować niższą oceną dostępności strony. Jeszcze gorszą odsłoną mankamentów powodowanych przez JavaScript jest zablokowany dostęp do plików. Jeśli pliki JavaScript są zablokowane w robots.txt, roboty wyszukiwarek mogą mieć problem z ich załadowaniem. Gdy tak się stanie, crawlery mogą mieć trudność nawet z podstawowym zrozumieniem struktury strony, co przełoży się negatywnie na indeksowanie i pozycjonowanie.

Łącząc najważniejsze wymienione wyżej problemy z JavaScript oraz kilka poboczny, robi nam się naprawdę pokaźna lista, która obfituje w niebezpieczne dla SEO konsekwencje. Problemy z JavaScript, podsumowując, związane są m.in. z:

  • nieindeksowaniem generowanych treści dynamicznych JavaScript,
  • opóźnieniami ładowania treści,
  • zablokowanym dostępem do plików JavaScript,
  • brakiem fullbacku dla treści,
  • brakiem alternatywnych wersjach treści (np. w kodzie w HTML) w przypadku stron, które w całości polegają na JavaScrpit,
  • problemami z linkowaniem wewnętrznym,
  • niekontrolowanymi zmianami dynamicznych adresów URL,
  • niewłaściwie zoptymalizowanym wczytywaniem zasobów typu lazy loading.
Zbliżenie na kod JavaScript na monitorze
Przez lata problemy z JavaScript w SEO urosły do ranking memu.

Nadużycia i błędne przypisanie winy do JavaScript

Martin Splitt twierdzi jednak, że sama składnia JavaScript rzadko bywa faktyczną przyczyną problemów z SEO. Choć nieco wcześniej sam John Mueller dostrzegł, że nadmierne używanie JavaScript może negatywnie wpływać na SEO, Splitt wskazuje, że w większości przypadków to nie JavaScript, lecz jego niewłaściwe zastosowanie lub inne czynniki są odpowiedzialne za pojawiające się problemy techniczne.

Splitt podkreśla, że niemal wszystkie zgłoszenia problemów SEO, które przypisuje się JavaScript, w rzeczywistości wynikają z czegoś zupełnie innego. Zwraca uwagę na tzw. błąd potwierdzenia (confirmation bias), polegający na interpretowaniu danych w sposób potwierdzający wcześniejsze założenia, przy jednoczesnym ignorowaniu dowodów przeczących tej teorii. Według niego specjaliści SEO i webmasterzy często szukają dowodów na to, że zaobserwowane trudności można zrzucić na karb problematyczności JavaScript i z takim założeniem korzystają też z opcji zgłoszenia problemów technicznych do Google.

Według Splitta na tysiące zgłoszeń rocznie przesyłanych do Google przez Google Console, które wskazują na JavaScript, tylko procent jest faktycznie powodowany składnią języka. W pozostałych sytuacjach problem wynika z nieprawidłowego użycia JavaScriptu lub błędów w implementacji.

Jak sprawdzić, czy JavaScript generuje błędy z indeksowaniem strony?

Jeżeli borykamy się z problemem technicznym, podejrzewając wpływ JavaScript na SEO, warto najpierw upewnić się, jaka może być faktyczna przyczyna tych mankamentów. Do najczęstszej grupy błędów należą te z renderowaniem, czyli pobieraniem wszystkich zasobów strony przez crawlery (m.in. fonty JavaScript, CSS, HTML itd.). W takim przypadku warto sprawdzić wpierw, jak Google “widzi” stronę.

Podczas debugowania może okazać się, że strona renderuje się poprawnie, pewne elementy nie renderują się wcale, lub strona w ogóle nie nadaje się do indeksacji. Splitt poleca wykorzystanie narzędzi do diagnozowania potencjalnych problemów z JavaScriptem:

  • Google Search Console URL Inspection Tool,
  • Google Rich Results Test,
  • Chrome Dev Tools.

URL Inspection Tool i Rich Results Test to narzędzia, które pozwalają na przesłanie URL-a, który jest natychmiast analizowany przez Google. Wyniki takiej inspekcji pokazują, jak strona została wyrenderowana i jak wygląda z perspektywy Google podczas indeksacji. W Chrome Dev Tools z kolei możemy sprawdzić istotne komunikaty dotyczące JavaScript. Widoczne tam błędy mogą wskazywać na JavaScript, ale nie oznacza to jeszcze, że na pewno tak jest. Splitt podaje w tym miejscu przykład sytuacji, kiedy JavaScript nie działa poprawnie z powodu zablokowanego API w pliku Robots.txt, co uniemożliwia pełne wyrenderowanie strony.

Oprócz powyższych kroków, borykając się z potencjalnymi problemami z JavaScript, pomóc mogą następujące metody:

  1. Renderowanie po stronie serwera (Server-Side Rendering, SSR) – generowanie HTML na serwerze i przesyłanie go do przeglądarki w celu ułatwienia indeksacji,
  2. Prerendering: Tworzenie statycznych wersji stron dla robotów wyszukiwarek,
  3. Odblokowanie plików JavaScript (możliwe, że jakaś wtyczka na WP zmieniła ustawienia robots.txt, które powodują błędy z JS),
  4. Zweryfikowanie działania lazy loadingu,
  5. Audyt techniczny SEO – często jest tak, że problem jest złożony i tylko częściowo dotyczy JS, dlatego rozwiązaniem są regularne testy wydajności i indeksowania przy użyciu m.in. Lighthouse, Screaming Frog czy Sitebulb.
Robot trzymający kłódkę, tekst znakiem robots.txt wyświetlanym na ekranie na jego korpusie
Problemy błędnie przypisywane JavaScript mogą wynikać z niepoprawnej konfiguracji pliku robots.txt, który blokuje renderowanie strony.

JavaScript w SEO nie unikniemy – podsumowanie

JavaScript może przyczyniać się do problemów ze indeksowaniem i pozycjonowaniem. Wynika to najczęściej z blokowania pełnego renderowania strony, co uniemożliwia poprawne działanie crawlerów wyszukiwarek. Na pytanie jednak, dlaczego tak wielu specjalistów SEO obwinia JavaScript, odpowiedź jest nieco inna. Stoi za tym szerszy problem związany głównie z nieznajomością sposobu debugowania JavaScript. Bardzo możliwe, że JavaScript blokuje indeksowanie treści generowanych dynamicznie, blokuje dostęp do plików i treści. Popularna opcja powolnego ładowania zasobów (lazy loading), która coraz częściej domyślnie implementowana w motywach WordPress, może być również niewłaściwie skonfigurowana i wpływać przez to negatywnie na renderowanie.

Na szczęście identyfikacja źródeł problemów technicznych z JavaScript wcale nie jest trudna. Warto skorzystać z przede wszystkim URL Inspection Tool (znajdziemy je w Google Search Console) i Google Rich Results Test. Aby zweryfikować, czy przyczyna leży po stronie JavaScript, czy nie, warto wykonać renderowanie po stronie serwera i zrobić prerendering. Ze względu na to, że JavaScript ma przed są raczej optymistyczną przyszłość we współczesnym webdevelopingu, dobrze jest opanować te narzędzia i metody.

Napisz komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *