Manote, kad Google negali atpažinti JavaScript? Teks pakeisti jūsų nuomonę. „Search Engine Land“ atliko daug bandymų, kurių dėka buvo patikrintos Google indeksavimo galimybės įvairiais JavaScript atžvilgiais. Taip pat buvo patvirtinta, kad Google gali skaityti dokumento objektus (angl. DOM-Document object model), kartu indeksuojant dinamiškai sugeneruotą turinį. Tikriausiai, jus dar labiau nustebins ta žinia, kad kai kuriais atvejais Google gali JavaScript geriau suindeksuoti, nei HTML kodą.
Įžanga: Google nuskaito JavaScript ir dokumento objektų modelį (DOM)
Iš tiesų Google jau 2008 metais sėkmingai ropinėjo JavaScripte. Gal tai ir nebuvo tobulas Google bandymas evoliucionuoti, nes tuo metu Google atpažino Flash turinį, kuris buvo sudarytas daugiausiai iš žodžių, o visa kita atrodė dar tik juoda skylė. Tačiau laikui bėgant ir dar sparčiau tobulėjant — tamsuma virto ryškia šviesa, o pats Google pagaliau skaito įvairių tipų JavaScript'ą.
Grįžtant prie tyrimo, tai SEO techninė komanda bandymų metu norėjo išsiaiškinti, kokios rūšies JavaScript'ą Google gali nuskaityti bei indeksuoti. Tyrimo pabaigoje buvo gauti neįtikėtini rezultatai, kurie tik patvirtino, kad Google ir JavaScript pagaliau nuoširdžiai draugauja, o pati paieškos sistema dar sugeba indeksuoti dinamiškai generuotą turinį. Kaip tai įvyko? Dokumento objektų modelio dėka.
Kas yra tas dokumento objektų modelis (DOM)?
Bet kurį HTML dokumentą galima skaityti kaip dokumentą, kuris yra pilnas objektų. JavaScript kalba keičia HTML objektų parametrus. Kitaip tariant, dokumento objektų modelis leidžia pasiekti, keisti, pridėti ir trinti HTML elementus HTML dokumente. Pagal dokumento objektų modelį visas HTML dokumentas yra objektas, o HTML elementas — vidinis objektas. DOM yra naudojamas naršyklėse ir iš esmės yra taikomas programavime, žymėjime. Tai sąsaja, kuri leidžia interneto naršyklei surinkti struktūrizuotus dokumentus.
Tai dažniausiai naudojama interneto programa, kuri skirta JavaScript ir dinaminiam puslapio turiniui. Dokumento objektų modelis (DOM) yra tiltas, kuris jungia tinklapius ir programavimo kalbą. Pagal seką HTML apdoroja, JavaScript įvykdo, o rezultatą gauname dokumento objektų modelį. Todėl, kaip matome tinklapio turinyje nėra vien HTML kodai, bet ir dokumento objektai, kurie išties yra labai svarbūs kuriant svetainę. O labiausiai stebina tai, kad Google geba skaityti DOM ir interpretuoti turinį bei signalus, kurie yra dinamiškai įterpti, pavyzdžiui žymas, puslapio tekstą, antraštes, meta duomenis ir kita.
Kaip veikia dokumento objektų modelis (DOM).
Serija bandymų ir rezultatų:
Buvo sukurta keletas testų, kurie nagrinėjo, kaip skirtingos JavaScript funkcijos nuskaito ir indeksuoja, atjungiant Googlebot. Kontrolė buvo sukurta siekiant įsitikinti, kad URL veikla yra suprantama, net kai ji izoliuota. Todėl jums dabar išsamiai pateiksime bandymus bei jų rezultatus, kurie buvo išskirstyti į penkias kategorijas:
— JavaScript nukreipimai;
— JavaScript nuorodos;
— Dinamiškai įtrauktas turinys;
— Dinamiškai įtraukti meta duomenys ir puslapio elementai;
— Svarbus rel=”no follow” pavyzdys.
1. JavaScript nukreipimai
Pirmą kartą buvo išbandytas JavaScript nukreipimas, kai URL buvo pateiktas skirtingais atvejais. Metodas, kuris buvo pasirinktas naudoti —window.location funkcija. Buvo atliekami du bandymai: testas A įtraukė visas URL savybes į window.location funkciją, o testas B naudojo santykinį URL.
Rezultatas: nukreipimai buvo greičiau susekami Google. Nuo indeksavimo pradžios jie buvo suprantami kaip 301, o galutiniame taške URL buvo pakeisti, juos perkeliant į Google indeksą.
Vėlesniuose bandymuose, buvo naudojamas aukštą autoritetą turintis puslapis. Pasitelkus JavaScript nukreipimą į naują puslapį, toje pačioje svetainėje su lygiai tuo pačiu turiniu. Originalus URL atsirado pirmame Google paieškos puslapyje.
Rezultatas: kaip ir buvo tikėtasi, peradresavimas buvo sekamas Google ir originalaus puslapio reitingas nukrito dėl indeksacijos. Naujasis URL adresas buvo indeksuotas ir iškarto užėmė tą pačią poziciją, toje pačioje užklausoje. Tai tikrai stebina ir atrodo, kad JavaScript nukreipia lygiai taip pat, kaip 301 nukreipimas.
2. JavaScript nuorodos
Buvo išbandytos kelios skirtingų tipų JavaScript nuorodos, įvairiais kodavimo būdais.
Pirmasis bandymas buvo atliktas su nuleidžiamo meniu nuorodomis, kurių paieškos sistemos seniau nepajėgė nuosekliai sekti. Tyrimo metu buvo ieškoma ar JavaScript funkcija onchange event gali būti sekama paieškos sistemos.
Taip pat buvo išbandytos standartinės JavaScript nuorodos. Tai yra labiausiai paplitusios JavaScript nuorodos, kurias SEO rekomenduoja pakeisti paprastu tekstu:
— Funkcijos už href savybės-vertės grupės (angl. Attribute-Value Pair-AVP) ribų, tačiau su žyma (“onClick”);
— Funkcijos href savybės-vertės grupės (AVP) ribose (“javascript:window.location“);
— Funkcijos, kurios yra už ribų, bet jas vadiname href AVP (“javascript:openlink”).
Visų šių tyrimų rezultatai, buvo teigiami. Google suindeksavo ir sekė visas išbandytas nuorodas.
3. Dinamiškai įtrauktas turinys
Dinamiškai įterptas tekstas, vaizdas, nuoroda ir navigacija yra itin reikalingi svetainės komponentai. Kokybiškas, unikalus turinys yra svarbus paieškos sistemai, norint suprasti temą ir patį turinį puslapyje.
Buvo atliktas bandymas, siekiant patikrinti dinamiškai įterptą tekstą į dvi skirtingas situacijas:
- Paieškos sistemos gebėjimai paaiškinti dinamiškai įterptą tekstą, kai tekstas yra HTML šaltinis puslapyje.
- Paieškos sistemos gebėjimai paaiškinti dinamiškai įterptą tekstą, kai tekstas nėra HTML šaltinis puslapyje, o yra išorinis JavaScript failas.
Rezultatas: abiem atvejais tekstas buvo nuskaitomas bei indeksuojamas, kaip ir puslapio turinio reitingas.
4. Dinamiškai įrašyti meta duomenys ir tinklapio elementai
Į dokumento objektų modelį (DOM) buvo įdėtos įvairios žymos, kurios itin svarbios SEO:
— Pavadinimo elementai;
— Meta aprašymai;
— Meta robotai;
— Canonical žymos.
Rezultatas: visais atvejais žymos buvo nuskaitytos, lygiai taip pat, kaip ir HTML elementai šaltinyje. Kuo toliau tuo įdomiau.
Kiti bandymai buvo atlikti tam, kad būtų galima sužinoti pirmumo tvarką. Kai egzistuoja prieštaringi signalai, trukdžiai, kuris turi laimėti HTML ar DOM? Kas nutinka, kai yra noindex, nofollow kodo šaltinyje ir noindex, nofollow dokumento objektų modelyje? Sekite kitą svarbų pavyzdį su rel=”nofollow”.
5. rel = "nofollow“
Taigi bandymo metu „nofollow“ kodas veikė HTML šaltinyje, kaip ir buvo tikėtasi. DOM „nofollow“ neveikė (nuorodos buvo sekamos bei puslapis indeksuojamas). Kodėl? Nes a href elementas dokumento objektų modelyje modifikavosi per vėlai: Google iškarto nuskaitė nuorodą ir URL vietą, dar nespėjus JavaScript funkcijai pridėti rel=”nofollow” žymos. Tačiau, jeigu visas a href elementas su nofollow yra įdėtas į DOM, „nofollow“ yra nuskaitomas tuo pačiu metu, kaip ir nuoroda bei jo URL.
Atšakos
Istoriškai, SEO orientavosi į paprastą teksto turinį. Dinamiškai sugeneruotas turinys, AJAX ir JavaScript nuorodos buvo pamirštos didžiųjų SEO paieškos sistemų. Aišku yra viena, kad tai daugiau nebėra susiję su Google, nes dabar JavaScript nuorodos dirba panašiai, kaip ir paprastos HTML nuorodos (nominalia verte mes nežinome, kas vyksta algoritmų viduje).
— JavaScript nukreipimai apdorojami panašiai, kaip ir 301 nukreipimai;
— Dinamiškai įterpiamas turinys, meta signalai, rel canonical anotacijos ir kiti, yra apdorojamos lygiagrečiai, kaip HTML šaltinis.
— Pasirodo, kad Google visiškai perteikia puslapį bei mato dokumento objektų modelį, o ne tik šaltinio kodą. Ir tai yra mažų mažiausiai neįtikėtina, bet atminkite, kad Google robotukas privalo turėti prieigą prie išorinių failų ir JavaScript duomenų.
Google tobulėja sparčiu tempu ir paliko kitas paieškos sistemas dulkėti už nugaros. Naujovės, kitų paieškos sistemų naujovėms nėra lygios, todėl tikimasi, kad ir kitos sistemos eis Google pėdomis ir pasieks konkurencingą lygmenį. O tai reiškia, kad bus daugiau HTML5, JavaScript ir dar daugiau dinamiškų svetainių. Taip pat svarbu paminėti, kad SEO taip pat turi neatsilikti nuo Google spartaus tobulėjimo. Todėl vertėtų toliau mokytis ir kaupti žinias siekiant pasivyti dabartines technologijas.