JavaScript SEO: Rendering a indexácia
JavaScript SEO zahŕňa všetky opatrenia, ktoré zabezpečujú, aby vyhľadávače a AI crawlery dokázali webový obsah postavený na JavaScripte správne vykresliť, indexovať a použiť ako zdroj. V jadre ide o to, aby obsah, odkazy, canonical tagy, meta robots a štruktúrované dáta relevantné pre ranking a citácie boli k dispozícii už v iniciálnom HTML dodanom zo servera, pretože Googlebot síce JavaScript vykresľuje, ale s oneskorením a s vysokou náročnosťou na crawling, a väčšina AI crawlerov JavaScript vôbec nevykonáva.
Na prvý pohľad
- Googlebot vykresľuje JavaScript spoľahlivo (podľa medzinárodnej analýzy 100 % úplných vykreslení), ale s oneskorením: medián 10 sekúnd, 90. percentil približne tri hodiny.
- Väčšina AI crawlerov, napríklad GPTBot a ClaudeBot, NEVYKONÁVA JavaScript a vidí len surové HTML; SSR alebo SSG je preto predpokladom viditeľnosti v AI.
- Stránky s veľkým podielom JavaScriptu spotrebujú výrazne viac crawl budgetu: do 7. stránky 313 hodín oproti 36 hodinám pri čistom HTML, teda približne deväťkrát dlhšie.
- Dynamic Rendering sa považuje za zastarané provizórne riešenie; Google ho už neodporúča a namiesto neho odkazuje na SSR a SSG.
- Kľúčový obsah, interné odkazy, canonical, meta robots a JSON-LD musia byť v iniciálnom HTML dodanom zo servera, nie až dodatočne vložené cez JavaScript.
- Štruktúrované dáta patria do HTML zo servera: len približne 2 % crawlov domovských stránok pridávajú štruktúrované dáta cez JavaScript. Markup zo servera je spoľahlivejší a dokážu ho prečítať aj crawlery, ktoré nevykresľujú.
- V regióne DACH nesmie správa súhlasov blokovať indexáciu: hlavný obsah musí byť pre Googlebot dostupný bez ohľadu na stav súhlasu.
JavaScript dnes riadi veľkú časť moderných webov, od navigácie cez dodatočne načítavaný obsah až po celú štruktúru stránky v single-page aplikáciách. Vzniká tak medzera medzi tým, čo používatelia vidia v prehliadači, a tým, čo vyhľadávače a AI crawlery nájdu bez vykreslenia. JavaScript SEO túto medzeru uzatvára. Tento článok vysvetľuje, ako Googlebot spracúva JavaScript, ktorá stratégia vykresľovania sa hodí na viditeľnosť v klasickom vyhľadávaní aj v AI odpovediach a ako sa vyhneš typickým nástrahám v regióne DACH.
Prečo je JavaScript SEO pre firmu kritické
V Rakúsku je viditeľnosť vo vyhľadávaní takmer totožná s Googlom. Tento vyhľadávač tu má podiel na trhu 81,87 %, pred Bingom s 9,01 % (Rakúsko, stav máj 2026). Trh je takmer úplne pripojený na internet: začiatkom roka 2025 tu bolo 8,69 milióna používateľov internetu pri online penetrácii 95,3 % (Rakúsko). Ak JavaScript bráni správnej indexácii obsahu, firma teda vypadne práve z kanála, ktorý na trhu dominuje.
Pre B2B dodávateľov k tomu pribúda ekonomická páka. Produktové stránky a stránky služieb postavené na JavaScripte často priamo ovplyvňujú tržby. Ak sa indexujú zle, trpí dosah aj predaj.
Súčasne sa viditeľnosť presúva k AI odpovediam a táto vrstva citlivo reaguje na JavaScript. Medzinárodná štúdia Pew ukazuje, ako silno AI zhrnutia menia správanie pri klikaní: pri vyhľadávaní s AI Overview klikajú používatelia na klasický výsledok len v 8 % prípadov, bez AI Overview v 15 % (medzinárodné údaje, USA). Kto chce v týchto AI odpovediach figurovať ako zdroj, musí svoj obsah sprístupniť systémom, ktoré JavaScript väčšinou vôbec nevykonávajú.
Ako Googlebot spracúva JavaScript: dve vlny indexácie
Googlebot rozdeľuje spracovanie webových stránok do niekoľkých krokov. Najprv crawler načíta surové HTML danej URL. Obsah v čistom HTML ide hneď do indexácie. Obsah, ktorý vzniká až cez JavaScript, sa naopak presúva do samostatného frontu, frontu vykresľovania (rendering queue). Tam Web Rendering Service na základe headless prehliadača Chromium vykoná JavaScript, dokončí DOM a odovzdá vykreslené HTML späť do indexácie. Z toho fakticky vyplývajú dve vlny indexácie: okamžitá pre surové HTML a druhá, oneskorená, pre vykreslený výsledok.
Najprv dobrá správa: Google vykresľuje spoľahlivo. Často citovaná analýza Vercelu a MERJ na základe viac ako 100 000 načítaní Googlebotom dospela k záveru, že 100 % HTML stránok bolo vykreslených úplne, vrátane zložitých interakcií v JavaScripte (medzinárodné údaje). Zachytené boli aj obsah načítaný asynchrónne cez API a streamovaný obsah z React Server Components. Moderné frameworky ako Next.js boli vykreslené úplne. Tvrdenie, že Googlebot nezvláda JavaScript, je tým prekonané.
Problémom nie je, či k vykresleniu dôjde, ale kedy. Tá istá analýza vyčísľuje oneskorenie vykresľovania: medián je 10 sekúnd, 75. percentil 26 sekúnd a 90. percentil približne tri hodiny (medzinárodné údaje). Pre väčšinu stránok to nie je kritické, pri obsahu citlivom na čas je však dlhý chvost skutočným rizikom. Zhoršuje to aj náročnosť crawlovania: výskum Onely ukázal, že Google potrebuje na JavaScriptové stránky výrazne viac času. Kým sa dostal k siedmej stránke JavaScriptového priečinka, uplynulo 313 hodín, pri čistom HTML len 36 hodín, teda približne deväťkrát dlhšie (medzinárodné údaje). Kto chce mať rýchlo indexovaný veľký objem obsahu, napríklad správy alebo často sa meniace ponuky, platí s JavaScriptom vysokú prirážku v crawl budgete.
Porovnanie stratégií vykresľovania
Stratégia, ktorú web zvolí, rozhoduje o tom, čo crawlery nájdu v prvom kroku.
- Client-Side Rendering (CSR): Server dodá takmer prázdnu kostru HTML a prehliadač stránku zostaví cez JavaScript. Obsah sa objaví až po vykreslení. Pre Google to väčšinou funguje, ale s oneskorením. Pre crawlery, ktoré JavaScript nevykonávajú, zostáva stránka prakticky prázdna.
- Server-Side Rendering (SSR): Server vykreslí kompletné HTML pri každej požiadavke a pošle ho hotové. Crawlery a AI boty vidia obsah hneď v surovom HTML a nie sú odkázané na vykresľovanie.
- Static Site Generation (SSG): Stránky sa vygenerujú vopred počas buildu ako statické HTML. Výsledkom je maximálna rýchlosť a okamžite indexovateľné HTML, hodí sa však najmä na obsah, ktorý sa nemení často.
- Dynamic Rendering: Prechodné riešenie, pri ktorom crawlery dostávajú vopred vykreslenú HTML verziu a používatelia verziu s JavaScriptom. Google tento postup už výslovne neodporúča a považuje ho za zastarané provizórne riešenie, pretože zvyšuje náročnosť údržby a riziko, že crawlery a používatelia dostanú odlišný obsah.
Pre väčšinu B2B projektov sú SSR a SSG spoľahlivé možnosti. Dodávajú to, na čo sa spoliehajú Googlebot aj AI crawlery: kompletný obsah už v iniciálnom HTML. CSR má zmysel pre vysoko interaktívne časti za prihlásením, nemal by sa však používať pre kľúčový obsah, ktorý má byť verejne vyhľadateľný.
Next.js v praxi
Next.js je rozšírený framework pre aplikácie, pri ktorých rozhoduje SEO. Analýza Vercelu, firmy, ktorá stojí za Next.js, a MERJ ukazuje, že Googlebot skúmané stránky v Next.js vykreslil úplne (medzinárodné údaje). Rozhodujúce je, ako sa framework použije.
App Router s React Server Components umožňuje predvolene vykresľovať obsah na serveri a ako klientske komponenty dodávať len skutočne interaktívne časti. SSG a Incremental Static Regeneration vytvárajú statické HTML, ktoré sa podľa potreby aktualizuje na pozadí bez kompletného nového buildu. Streaming dodáva obsah postupne, zatiaľ čo hydratácia robí staticky dodanú stránku v prehliadači interaktívnou. Pre SEO pritom platí jedno pravidlo: všetko, čo sa má indexovať alebo čo majú citovať AI systémy, patrí do HTML vykresleného na serveri, nie do častí, ktoré sa dodatočne načítavajú na strane klienta.
Osvedčené postupy: obsah do iniciálneho HTML
JavaScript SEO funguje, keď rozhodujúce prvky stoja v surovom HTML ešte predtým, ako sa spustí JavaScript. Najdôležitejšie páky:
- Kľúčový obsah vykresľovať na serveri: Texty, produktové údaje a všetok obsah, ktorý má rankovať alebo byť citovaný, musí byť viditeľný bez vykonania JavaScriptu. Zároveň ťa to kryje pri AI crawleroch, ktoré nevykresľujú.
- Odkazy ako skutočné HTML kotvy: Navigácia a interné prelinkovanie patria do bežných anchor tagov s atribútom href. Click handlery vytvorené cez JavaScript bez skutočného odkazu crawler často nerozpozná ako cesty, ktoré môže sledovať.
- Canonical a meta robots nastaviť na serveri: Canonical tagy a pokyny ako noindex musia byť v iniciálnom HTML. Ak sa vložia až cez JavaScript, Google môže v prvej vlne spracovať nesprávny alebo chýbajúci pokyn.
- Title a meta description dodávať bez JavaScriptu: Tieto prvky dôležité pre snippet by sa nemali objaviť až po vykreslení, inak sa zachytia nekonzistentne.
- Lazy loading nasadzovať kontrolovane: Obsah, ktorý sa načíta až pri scrollovaní, crawler za určitých okolností nevidí. Dôležitý obsah by mal byť dostupný bez interakcie používateľa.
Význam tejto disciplíny ukazuje vyhodnotenie Web Almanac: na desktopových domovských stránkach je medián počtu viditeľných slov po vykreslení 400 slov oproti 330 v surovom HTML, teda rozdiel 17,5 % (medzinárodné údaje). Podstatná časť obsahu teda vzniká až cez JavaScript. Pri stránkach, ktoré sa vykresľujú len v prehliadači, sa práve táto časť dostane do indexu s oneskorením alebo sa doň nedostane vôbec a pre AI crawlery, ktoré nevykresľujú, zostáva úplne neviditeľná.
Štruktúrované dáta v prostredí JavaScriptu
Štruktúrované dáta vo formáte JSON-LD sú základom pre rich results a dôležitým signálom pre to, aby obsah našli AI systémy. V prostrediach s množstvom JavaScriptu vzniká otázka, či markup stojí v HTML zo servera, alebo sa vkladá až cez JavaScript. Prax je jednoznačná: podľa Web Almanac väčšina webov dodáva štruktúrované dáta v surovom HTML a len 2 % mobilných a desktopových crawlov pridávajú štruktúrované dáta cez JavaScript (medzinárodné údaje).
JSON-LD dodané zo servera je k dispozícii okamžite, nezávisle od frontu vykresľovania, a dokážu ho prečítať aj crawlery, ktoré nevykonávajú JavaScript. Markup vložený cez JavaScript naopak závisí od vykreslenia, a je preto zraniteľnejší. Pre spoľahlivé rich results a pre vyhľadateľnosť AI systémami by preto JSON-LD malo byť v iniciálnom HTML zo servera.
AI crawlery a GEO v kontexte JavaScriptu
Hlavný rozdiel medzi klasickým a generatívnym vyhľadávaním je vo vykresľovaní. Kým Googlebot JavaScript vykonáva, väčšina AI crawlerov spracúva len surové HTML. Obsah, ktorý vzniká výlučne na strane klienta, pre tieto systémy jednoducho neexistuje. SSR alebo SSG preto nie sú voliteľný bonus, ale predpoklad viditeľnosti v AI.
Objem týchto crawlerov je značný. Podľa Cloudflare Radar spôsobovali AI boty (bez Googlebotu) v roku 2025 v priemere 4,2 % všetkých HTML požiadaviek, samotný Googlebot 4,5 % (medzinárodné údaje). Medzi overenými botmi bol Googlebot s viac ako 28 % jasne pred GPTBotom s približne 7,5 %. Väčšina AI crawlovania slúži na trénovanie modelov. Na vrchole bolo crawlovanie na trénovanie sedem- až osemkrát rozsiahlejšie ako crawlovanie, ktoré AI poskytovatelia robia pre vlastné vyhľadávacie funkcie. Tieto boty sťahujú obsah masovo a berú si to, čo stojí v HTML.
Z toho vyplývajú konkrétne opatrenia pre správu AI crawlerov. Cez robots.txt môžeš riadiť, ktoré AI crawlery, napríklad GPTBot alebo ClaudeBot, dostanú prístup. Kto chce v AI odpovediach figurovať ako zdroj, nemal by relevantné boty blokovať a zároveň by mal zabezpečiť, aby bol obsah dostupný zo servera. IndexNow to dopĺňa: zúčastnené vyhľadávače aktívne informuje o nových alebo zmenených URL a urýchľuje tak ich objavenie, čo zmierňuje štrukturálne nevýhody vykresľovania na strane klienta pri vyhľadateľnosti.
Crawl budget, sitemapy a rýchla indexácia
Keďže JavaScript spomaľuje crawlovanie, rastie význam opatrení, ktoré zabezpečia vyhľadateľnosť nezávisle od vykresľovania. Aktuálne XML sitemapy sú tu najdôležitejším nástrojom. Explicitne vymenúvajú všetky relevantné URL a zabezpečia, aby Google našiel nové stránky, aj keď interné prelinkovanie vzniká až cez JavaScript. Pri stránkach vykresľovaných na strane klienta, ktorých odkazy Google inak uvidí až po vykreslení, tak úplná sitemapa citeľne zmenšuje nevýhodu pri objavovaní.
Pozadím je vyššie spomínaný problém s crawl budgetom: faktor približne deväť pri čase crawlovania JavaScriptu oproti HTML (medzinárodné údaje) znamená, že každá závislosť od vykresľovania, ktorej sa dá vyhnúť, šetrí budget. Čisté sitemapy, plochá a dobre dosiahnuteľná štruktúra, odkazy zo servera a vynechanie zbytočného JavaScriptu tu pôsobia spoločne.
Core Web Vitals pre stránky s množstvom JavaScriptu
JavaScript je jedným z hlavných zdrojov slabých Core Web Vitals. Kľúčové sú tri oblasti:
- LCP (Largest Contentful Paint): Veľký objem bundlov a JavaScript blokujúci vykresľovanie odďaľujú najväčší viditeľný obsah. Code splitting, teda rozdelenie JavaScriptu na menšie balíky, a dodanie hlavného obsahu zo servera zlepšujú LCP.
- INP (Interaction to Next Paint): Táto metrika meria, ako rýchlo stránka reaguje na vstupy. Náročná hydratácia a dlhé úlohy v JavaScripte blokujú hlavné vlákno a zhoršujú INP. Pomáha obmedziť JavaScript na strane klienta a rozdeliť dlhé úlohy.
- CLS (Cumulative Layout Shift): Obsah, ktorý sa dodatočne načíta cez JavaScript a posunie layout, zvyšuje CLS. Rezervované miesto pre dodatočne načítavané prvky udrží layout stabilný.
Prierezovými témami sú nepoužívaný JavaScript a skripty tretích strán. Každý načítaný skript stojí výkon a čas vykresľovania, a to aj pri Googlebote. Dôsledné odstraňovanie nepoužívaného kódu a obmedzenie externých skriptov sa priamo prejaví na všetkých troch metrikách.
GDPR, správa súhlasov a vykresľovanie v regióne DACH
V regióne DACH pribúda jedna osobitosť: consent bannery a s nimi spojené načítavanie tagov. Mnohé trackingové a marketingové skripty sa načítajú až po udelení súhlasu cez consent manager a tieto nástroje bežia na strane klienta cez JavaScript. Pre JavaScript SEO to má dôsledky na dvoch miestach.
Po prvé, množstvo týchto dodatočne načítavaných skriptov ovplyvňuje výkon, a tým aj Core Web Vitals. Po druhé, správa súhlasov nesmie brániť indexácii. Googlebot neprijíma cookies a neodklikáva bannery. Obsah, ktorý je viditeľný až po súhlase, crawler za určitých okolností nevidí. Dôsledok je jasný: samotný obsah stránky musí byť dostupný zo servera bez ohľadu na stav súhlasu a consent bannery ani voliteľné skripty nesmú blokovať vykreslenie hlavného obsahu. Tak zostanú súlad s GDPR a indexovateľnosť zlučiteľné.
Testovanie, debugging a meranie
JavaScript SEO sa nedá posúdiť podľa pocitu, treba ho overiť porovnaním surového a vykresleného HTML. Najdôležitejšie kroky kontroly:
- Kontrola URL (URL Inspection) v Search Console: Ukáže HTML indexovanej URL tak, ako ho Google skutočne vykreslil. Tu skontroluješ, či vykreslený výsledok obsahuje kľúčový obsah, canonical a meta robots.
- Porovnanie surového a vykresleného HTML: Skontroluj, či obsah viditeľný v prehliadači zodpovedá surovému zdrojovému kódu. Veľké odchýlky sú varovným signálom pre obsah závislý od vykresľovania.
- Test rozšírených výsledkov (Rich Results Test): Overí, či sa štruktúrované dáta správne rozpoznajú, aj keď sa dodávajú cez JavaScript.
- Lighthouse a CrUX: Poskytujú laboratórne a terénne dáta o Core Web Vitals a odhaľujú problémy s výkonom spôsobené JavaScriptom.
- Analýza logov: Ukáže, ako často a s akým oneskorením Googlebot stránky načítava a vykresľuje, a odhalí úzke miesta v crawl budgete.
Ako orientácia pre oneskorenie slúži doložený rozsah: rozpätie od mediánu 10 sekúnd po 90. percentil s približne tromi hodinami (medzinárodné údaje) ukazuje, ako rôzne rýchlo sa vykreslený obsah indexuje. Kto v logoch vidí nápadné odchýlky, má konkrétny cieľ optimalizácie.
Ďalšie kroky a záver
JavaScript SEO rozhoduje o tom, či moderné weby postavené na JavaScripte naplno využijú svoj potenciál viditeľnosti, alebo sa ich obsah zachytí s oneskorením, neúplne alebo vôbec nie. Googlebot síce vykresľuje spoľahlivo, ale s oneskorením a vysokou náročnosťou na crawling, a väčšina AI crawlerov nevykresľuje vôbec. Odpoveďou je dostať kľúčový obsah, odkazy, canonical, meta robots a JSON-LD do iniciálneho HTML zo servera, ideálne cez SSR alebo SSG, napríklad s Next.js.
Rozumné ďalšie kroky sú kontrola URL najdôležitejších stránok na porovnanie surového a vykresleného HTML, revízia stratégie vykresľovania pre obsah relevantný pre ranking a AI, aktuálna XML sitemapa pre rýchlejšie objavovanie a nastavenie súhlasov, ktoré nechá hlavný obsah pre Googlebot voľne dostupný. Klasické vyhľadávanie aj viditeľnosť v AI tak stoja na rovnakom základe, ktorý je dostupný zo servera.
Údaje a štatistiky
100 % HTML stránok Googlebot vykreslil úplne; oneskorenie vykresľovania: medián 10 sekúnd, 75. percentil 26 sekúnd, 90. percentil približne 3 hodiny (základ: viac ako 100 000 načítaní Googlebotom, apríl 2024)
Vercel / MERJ - How Google Handles JavaScript Throughout the Indexing Process [medzinárodné] (2024)313 hodín do 7. stránky JavaScriptového priečinka oproti 36 hodinám pri čistom HTML, približne deväťkrát dlhšie (front vykresľovania navyše k frontu crawlovania)
Onely Blog - Rendering Queue: Google Needs 9X More Time To Crawl JS Than HTML [medzinárodné] (2022)Desktopové domovské stránky: medián počtu viditeľných slov po vykreslení 400 vs. 330 slov v surovom HTML (rozdiel 17,5 %); len 2 % mobilných a desktopových crawlov pridávajú štruktúrované dáta cez JavaScript
Web Almanac 2024 (HTTP Archive) - SEO Chapter [medzinárodné] (2024)AI boty bez Googlebotu spôsobovali v roku 2025 v priemere 4,2 % všetkých HTML požiadaviek, samotný Googlebot 4,5 %; medzi overenými botmi dosiahol Googlebot viac ako 28 %, GPTBot približne 7,5 %; AI crawlovaniu dominuje crawlovanie na trénovanie modelov (na vrchole 7- až 8-násobok AI crawlovania pre vyhľadávacie funkcie)
Cloudflare Radar - 2025 Year in Review [medzinárodné] (2025)Pri vyhľadávaní s AI Overview klikajú používatelia na klasický výsledok v 8 % prípadov, bez AI Overview v 15 %; na odkaz v samotnom AI zhrnutí len v 1 % (základ: 68 879 vyhľadávaní, 900 dospelých z USA)
Pew Research Center - Google users are less likely to click on links when an AI summary appears [medzinárodné, USA] (2025)Google má v Rakúsku podiel na trhu vyhľadávačov 81,87 %, pred Bingom s 9,01 % a DuckDuckGo s 2,75 % (máj 2026)
StatCounter Global Stats - Search Engine Market Share Austria [Rakúsko] (2026)8,69 milióna používateľov internetu v Rakúsku pri online penetrácii 95,3 % (začiatok roka 2025)
DataReportal - Digital 2025: Austria [Rakúsko] (2025)Otvorí chat s pripraveným promptom.
Často kladené otázky
Dokáže Google vykresliť a indexovať JavaScript?
Vykresľujú AI crawlery ako GPTBot a ClaudeBot JavaScript?
Aký je rozdiel medzi CSR, SSR a SSG z pohľadu SEO?
Prečo sa Dynamic Rendering už neodporúča?
Majú sa štruktúrované dáta (JSON-LD) dodávať zo servera alebo cez JavaScript?
Ako overím, či sa môj obsah v JavaScripte indexuje?
Ovplyvňuje consent banner indexáciu v regióne DACH?
Ako si stojí vaša stránka?
Získajte bezplatný SEO report vašej stránky e-mailom: technické SEO, on-page, kľúčové slová a konkurencia. Nezáväzne.
Vyžiadať bezplatný SEO audit →Alebo priamo na SEO agentúra vo Viedni