Wpływ pomiędzy JavaScript na SEO jest przedmiotem zaciekłej debaty w branży SEO. Niezależnie od tego czy korzystasz z tego języka na swojej stronie czy może planujesz audyt na stronie klienta wykorzystującej JavaScript, musisz wziąć pod uwagę kilka ważnych kwestii.
Czym jest JavaScript?
JavaScript to język programowania wykorzystywany po to, aby strony internetowe stały się interaktywne i dynamiczne. JavaScript działa na komputerze odwiedzającego, więc nie wymaga ciągłego pobierania przez stronę internetową.
Trzeba pamiętać, że JavaSctipt to język interpretowany. Nie wymaga on żadnego specjalnego programu potrzebnego do tworzenia kodu użytkowego. Wystarczy podstawowy edytor tekstu, aby napisać JS.
Jest to również jedyny język skryptów wspierany przez wszystkie wyszukiwarki obsługujące skrypty po stronie klienta.
Czy Google analizuje JavaScript?
Wcześniej roboty wyszukiwarek nie były w stanie analizować i indeksować dynamicznej treści wykorzystującej JavaScript. Były one tylko w stanie sprawdzić to co znajduje się w statycznym kodzie źródłowym HTML.
Google jednak zmieniło wytyczne swojego starego schematu analizowania AJAX pod kątem pominiętego fragmentu #! w adresach URL i snapshotach HTML w październiku 2015 roku. Teraz są częściej w stanie wykorzystywać i rozumieć strony internetowe. Wykorzystanie JavaScript wzrosło w ostatnich latach, ze względu na przystosowanie własnego wzoru Google JavaScript MVW AngularJS oraz rozwój progresywnych aplikacji sieciowych i innych rozwiązań, takich jak React.
Jeśli chodzi o analizowanie stron internetowych opartych o JavaScript, istotna jest możliwość odczytania DOM załadowanego po stworzeniu strony przez JS.
Stare roboty SEO analizujące linki i treść stron internetowych, są w stanie analizować tylko statyczny kod HTML zwracany przez serwer. Google może teraz analizować oba typy kodów dzięki robotom JS, a Oncrawl czy Screaming Frog dają nam możliwość analizy implementacji JS-a na naszej stronie i sprawdzenie możliwej poprawności.
Kluczowe problemy związane z crawlingiem JavaScript
Dla stron wykorzystujących JavaScript sprawą istotną jest uzyskanie wyczerpującej wizji ich struktury oraz danych potrzebnych do bardziej kompletnej analizy SEO. W związku z tym przed dalszym zagłębieniem się w analizę JavaScript bez ograniczeń, istnieje kilka kwestii technicznych, o których należy wiedzieć:
- Analiza JavaScript jest dłuższa i bardziej intensywna dla serwera, w szczególności w przypadku dużych stron internetowych. Jest to spowodowane koniecznością pobrania wszystkich zasobów.
- Istnieją różne wzory JavaScript, jak również powiązane z nimi następstwa w zakresie SEO. Należy rozpocząć od analizy tego jak kontrolowana strona została zbudowana.
- Wiele stron nadal działa w oparciu o stary schemat crawlingu AJAX oraz o unikalną konfigurację. W takim przypadku nie można wyłącznie polegać na wykorzystaniu JavaScript do crawlingu, indeksowania i oceny.
- Linki lub obszary klikania muszą posiadać atrybut „ng-href” (nie „ng-click”) w przypadku stosowania wzoru Angular.js.
- Atrybut „href” będzie rozumiany przez roboty tylko, jeśli posiada link i anchor.
Ponadto Google nadal posiada pewne ograniczenia, jeśli chodzi o crawling JS:
- Google potrzebuje unikalnych i czystych adresów URL z linkami znajdującymi się w HTML.
- Wykorzystywany snapshot strony trwa 5 sekund, więc treść musi załadować się w tym czasie. W przeciwnym wypadku nie zostanie zindeksowana dla każdej strony internetowej.
- Wszystkie zasoby strony (JS, CSS) muszą być dostępne do analizy, wykorzystania i indeksowania.
Zgodnie z informacjami od Google, zaczynając od zera, dobrym podejściem jest stworzenie struktury i nawigacji strony wyłącznie korzystając z HTML. Następnie po umieszczeniu podstron, linków i treści na swoich miejscach można wzbogacić wygląd i interfejs strony korzystając z AJAX.
Dlaczego crawling JavaScript jest istotny?
Linkowanie oraz treść zaliczają się do grupy najważniejszych czynników rankingowych przeznaczonych do analizy. Wyszukiwarki internetowe potrafią wykrywać i indeksować treść wykorzystującą JS. Ważne jest więc, aby wiedzieć jak ją widzą oraz jak wpływają na procesy SEO.
- Poszukiwanie linków – sprawdzenie pełnego zakresu linków wychodzących ze strony, wliczając w to te bazujące na JavaScript;
- Poszukiwanie treści tekstowej – uzyskanie dokładnej analizy jakości treści, w uwzględnieniem treści, takich jak recenzje produktów albo komentarze generowane przez użytkowników, uwzględniane często w JS.
Jeśli wyszukiwarki potrafią to znaleźć i zindeksować, istotne jest uwzględnienie takich elementów w swojej analizie SEO.
View-source vs Inspect
Po kliknięciu prawym przyciskiem myszy w oknie przeglądarki, pojawi się kilka opcji podejrzenia kodu źródłowego strony oraz jej inspekcji. View-source (źródło obrazu) pokaże to samo co żądanie GET.
Jest to surowy kod HTML strony. Inspekcja wykazuje przetworzony DOM po dokonanych zmianach i jest bardziej powiązana z treścią w porównaniu z tym co widzi Google. Jest to zaktualizowana i najnowsza wersja strona. Należy skorzystać z inspekcji, a nie źródła obrazu, pracując z JavaScript.
Należy stworzyć agenta użytkownika w Chrome DevTools, aby rozwiązywać problemy ze stronami wykorzystywanymi wstępnie w oparciu o konkretnych agentów użytkowników.
Google Cache
Google Cache nie jest wiarygodnym sposobem sprawdzania tego co widzi Googlebot. Jest to zwykle początkowy kod HTML, ale czasem jest to renderowany HTML lub starsza wersja. System został stworzony do sprawdzania treści, gdy strona nie działa. Nie jest to więc szczególnie istotne narzędzie do naprawiania błędów.
Google Testing Tools
Narzędzia testowania Google, takie jak na przykład URL Inspector, znajdujące się w Google Search Console, a także Mobile Friendly Tester czy też Rich Results Tester, są przydatne do naprawiania błędów. Jednak nawet w tym przypadku narzędzia te odrobinę różnią się od tego co widzi Google.
Narzędzia te różnią się nie tylko pod względem wspomnianego wcześniej czasu 5 sekund, ale również różnią się pod względem tego jak pobierają zasoby w czasie rzeczywistym i nie wykorzystują wersji cache. Zrzuty ekranów takich narzędzi pokazują również strony z zapikselowanymi elementami, których Google nie widzi.
Narzędzia te są przydatne, aby sprawdzić czy treść została załadowana w DOM. Kod HTML pokazany w tych narzędziach to zrenderowany DOM. Można poszukać fragmentu tekstu, aby sprawdzić czy został on domyślnie załadowany.
Narzędzia te pokazują również zasoby, które mogą być zablokowane oraz wiadomości błędów w konsoli, które są przydatne do naprawy błędów.
Wyszukiwanie tekstu w Google
Wiele stron bazujących na JavaScript może nie pokazywać całej treści Google. Szybkim sprawdzeniem jest poszukanie fragmentu swojej treści w Google.
Należy poszukać „pewnych fraz ze swojej treści” i sprawdzić czy w wynikach pojawiła się dana strona. Jeśli tak, wówczas treść jest prawdopodobnie widoczna. Warto pamiętać, że domyślnie ukryta treść może nie pojawić się z danym fragmentem w SERP.