java script i angular a seo

Google vs. JavaScript – ciekawy eksperyment

Czy Google radzi sobie z Java Scriptem i poleceniami Ajax? To pytanie zadają sobie wszyscy planujący bądź posiadający sajty, które opierają się na technologii JS i Angular. Naturalnie zdań na ten temat jest wiele – tak, Google też ma swoje – i wpis ten nie ma służyć dogłębnej,  technicznej analizie tego zagadnienia (za krótki jestem ;) ale przedstawić jeden ciekawy eksperyment, na który się napatoczyłem opuszczając na chwilę 4chan’a i wracając niechętnie do obowiązków. Chciałem się nim podzielić, sporo wyjaśnia i myślę, że w przystępny sposób tłumaczy to zagadnienie.

Przypomnijmy: my, SEOwcy często zadajemy (sobie, programistom, szwagrowi, naszym kotom oraz słońcu) podstawowe pytanie – czy jeśli zdecyduję się na fancy angularowe rozwiązanie, to nie przegram życia w SERP, ze względu na fakt, iż technologia ta (w skrócie) serwuje wyszukiwarce na każdej podstronie ten sam, wąski kod html, który to kod inicjuje aplikację (to, co Ty widzisz w swojej przeglądarce) – ale nie ujrzą tego małe, zaszklone oczy robocików Googla jeśli nie zastosujesz RENDEROWANIA aka PRERENDERINGU? No i mamy hipotezę.

Czy Google radzi sobie z JavaScript?

Jedni mówią: – Tak, wszak jest rok 2016 [wpis rozpoczął wtedy swoje życie], oczywiście, że Google rozkminia JavaScript.

Ale drudzy nie podzielają tego entuzjazmu: – Renderowanie po stronie serwera jest konieczne dla SEO!!1

Jeśli Google potrafi uruchamiać JavaScript i tym samym renderować widok po stronie klienta, to po co niezbędne jest dla SEO renderowanie po stronie serwera? OK, Google nie jest jedyną wyszukiwarką, ale jest z pewnością jedną z najważniejszych, pod którą warto optymalizować – a już na pewno w Bolandzie :)

Ostatnio natrafiliśmy na fajny eksperyment, który autor blogasa stephanboyer.com przeprowadził, aby sprawdzić w jakim stopniu bot crawlujący Google rozumie dynamiczny kontent. Autor popełnił niewielki sajcik pod domeną doesgoogleexecutejavascript.com, którą charakteryzowały poniższe elementy:

  1. HTML z serwera zawierał tekst „Google nie egzekwuje JavaScriptu”.
  2. Na stronie znajdował się wewnętrzny JavaScript, który zmieniał tekst na „Google egzekwuje JavaScript, ale tylko jeśli jest on osadzony w dokumencie”.
  3. HTML linkował również do skryptu, który załadowany, zmieniał tekst na „Google egzekwuje JavaScript, nawet jeśli skrypt jest pobierany z sieci. Jednak Google nie egzekwuje żądań AJAX”.
  4. Ten skrypt wykonywał żądanie AJAX i aktualizował tekst odpowiedzią z serwera. Serwer zwracał wiadomość „Google egzekwuje JavaScript i egzekwuje nawet żądania AJAX.”

Po uruchomieniu strony, autor połączył ją z jej repozytorium na GitHub i czekał na odkrycie strony przez Google. Następnego dnia w wyszukiwarce Google pojawił się poniższy wynik:

Google nie egzekwuje JavaScript

Jak opisuje autor, tydzień później, żeby zobaczyć czy Google przeindeksuje stronę i uruchomi JavaScript – bez zmian. Nic nie drgnęło. Potem poszło ręczne zgłoszenie strony do indeksu przez Google Search Console, a niedługo po tym pojawiło się to:

Google egzekwuje JavaScript

Czy Google poprawnie indeksuje zatem JavaScript?

Eksperyment pokazał, że nie ma gwarancji na to, że Google uruchomi JavaScript automatycznie. Możliwe, że będziesz musiał ręcznie zainicjować crawlowanie (Pobierz jako Google w GSC). I nawet wtedy Google prawdopodobnie nie wykona żądań AJAX, na których być może opierać się będzie Twoja witryna, a przynajmniej Google nie wykonał tego w tym przypadku.

 

Eksperyment doczekał się też aktualizacji.

Noworoczna aktualizacja (1 stycznia 2017): najwyraźniej jakiś czas po eksperymencie Google ponownie przeindeksował witrynę i tym razem wywołał żądanie AJAX:

Google egzekwuje JavaScript i Ajax
Finalny wniosek jest następujący: Google może, ale nie musi zdecydować się na uruchomienie Twojego JavaScriptu, a Ty nie chcesz, żeby Twój biznes był zależny od skłonności Google na dany dzień.

Dla swojego bezpieczeństwa zadbaj o renderowanie po stronie serwera.

 

Na podstawie: https://www.stephanboyer.com

3 komciów

  1. Mieliśmy podobny problem, z racji niemożliwości dodawania title i meta description do artykułów na blogu (koszmarny CMS), zrobiliśmy eksperyment.

    Przez Google Tag Managera pobieraliśmy wartości z artykułów (przykładowo, h1) i wrzucaliśmy JSem do odpowiednich tagów. Efekt? Google w 100% zjadał nasze nowe title i desc :)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *