Již nějakou dobu Google tvrdí, že velké a autoritativní weby se použití JS (JavaScript) bát nemusejí — bude je umět procházet a informace z nich správně zpracovávat. Seznam zatím nic takového nepotvrdil.
V čem je tedy vlastně problém?
Rozdíl je při tzv. renderování stránek, nebo-li kde vlastně HTML kód zobrazovaný uživateli/robotovi vzniká. Historicky se používal především tzv. server-side rendering, nebo-li generování HTML kódu na straně serveru — vašeho hostingu.
V posledních letech narůstá obliba různých JS frameworků (nástrojů programování) jako jsou React, Angular, Vue apod. JS je však z principu renderován na straně vašeho prohlížeče, tedy tzv. client-side rendering.
Jak to ovlivňuje roboty?
Základní roboti pro stahování obsahu jedou většinou tou nejjednodušší (a tedy také nejlevnější metodou) — použitím CURL. V podstatě zadáte adresu a dostanete to, co server vrací. Tedy bez jakékoliv účasti prohlížeče.
A to je právě problém, jelikož pokud se má něco na vašich stránkách generovat javascriptem (tedy prohlížečem), tito roboti tento html kód (tedy obsah) vůbec nevidí.
Pokročilé metody stahování tedy zahrnují jakousi “simulaci” prohlížeče, kde se může daný web správně vykreslit a tedy umožnit stažení i obsahu pomocí javascriptu.
Nicméně použití této “simulace prohlížeče” může vyjít i 100x dráž (serverové prostředky na straně robota) než stahování jednoduchou metodou. Aktuálně není známo, že by Seznam vůbec tento pokročilý stupeň stahování podporoval.
SEO a JavaScript
Jak asi vyplývá z textu výše, je třeba si uvědomit, že použití zejména interního prolinkování generovaného pomocí javascriptu (tedy např. menu, parametry) je velmi špatný nápad, protože robot pak nemusí vůbec vidět, že web má více než jednu stránku a může dojít k zásadním problémům s indexací. Podobně tomu je i u textace a dalšího obsahu, co se bez zapnutého javascriptu nenačte. Pro jednoduchou simulaci jak vypadá web bez JS si můžete stáhnout plugin do Chromu.
Autor faktoru: Dalibor Jaroš (Collabim) & Tomáš Zahálka (SEO konzultant)