Discussion Technical SEO AI Crawling

Můj web plný JavaScriptu je pro AI crawlery neviditelný – pomůže dynamické renderování?

FR
FrontendLead_Marcus · Frontend Engineering Lead
· · 76 upvotes · 11 comments
FM
FrontendLead_Marcus
Frontend Engineering Lead · 30. prosince 2025

Právě jsme zjistili, proč jsme pro ChatGPT a Perplexity neviditelní – celý náš web je React SPA s klientským renderováním.

Problém:

  • Veškerý obsah se načítá přes JavaScript
  • AI crawlery vidí prázdné HTML šablony
  • Nulová viditelnost v AI odpovědích
  • Citace získávají konkurenti s weby na statickém HTML

Zjistil jsem:

  • GPTBot, ClaudeBot, PerplexityBot neumí zpracovat JavaScript
  • Vidí jen počáteční HTML odpověď
  • Náš krásný React aplikace je pro ně prázdná stránka

Řešení, které zvažuji:

  • Dynamické renderování přes Prerender.io
  • Nebo migrace na Next.js s SSR
  • Nebo Rendertron jako self-hosted řešení

Implementoval někdo dynamické renderování specificky kvůli AI viditelnosti? Fungovalo to? Za jak dlouho jste zaznamenali zlepšení v AI citacích?

11 comments

11 komentářů

DS
DevOpsArchitect_Sarah Expert Platform Engineer · 30. prosince 2025

Marcusi, prošli jsme tím samým před šesti měsíci. Dynamické renderování znamenalo zásadní zlom pro naši AI viditelnost.

Naše implementace:

PřístupVýhodyNevýhodyNaše zkušenost
Prerender.ioSnadné nastavení, spravovanéMěsíční poplatekPoužíváno 3 měsíce
RendertronZdarma, vlastní hostingNutná infrastrukturaAktuální řešení
Next.js SSRNejlepší dlouhodoběPlný přepis webuBudoucí plán
Statická generaceNejrychlejšíOmezená dynamikaČástečné použití

Výsledky po zavedení Rendertronu:

  • Úspěšnost AI crawlerů: 0 % → 98 %
  • Citace od ChatGPT: 0 → 47 za 90 dní
  • Zmínky v Perplexity: 0 → 23 za 90 dní

Klíčová poznámka:

Rozpoznávání user agentů je zásadní. Tyto boty musíte směrovat na předrenderované stránky:

  • GPTBot
  • ChatGPT-User
  • ClaudeBot
  • PerplexityBot
  • Bytespider

Nezapomeňte udržovat cache aktuální. Zastaralý obsah je horší než žádný.

FM
FrontendLead_Marcus OP · 30. prosince 2025
Replying to DevOpsArchitect_Sarah

98% úspěšnost je skvělá. Jak řešíte invalidaci cache? Máme obsah, který se často mění – ceny produktů, skladovou dostupnost atd.

A zaznamenali jste nějaký vliv na náklady na hosting s Rendertronem?

DS
DevOpsArchitect_Sarah · 30. prosince 2025
Replying to FrontendLead_Marcus

Strategie invalidace cache:

  1. Časové TTL – 24 hodin pro většinu obsahu
  2. Událostní – webhook spustí re-render po změně v CMS
  3. Priority fronta – stránky s vysokou návštěvností se renderují častěji
  4. Na vyžádání – API endpoint pro ruční invalidaci

Dopad na náklady:

Rendertron běží na AWS:

  • t3.medium instance: ~30 $/měsíc
  • CloudFront cache sníží skutečný počet renderů o 80 %
  • Celkové dodatečné náklady: ~50 $/měsíc

Ve srovnání s Prerender.io:

  • Jejich střední tarif: 99 $/měsíc
  • Ale nulová údržba

U často měněného obsahu jako ceny renderujeme na vyžádání s krátkým TTL (1 hodina) a cachujeme na CDN úrovni. AI crawlery navíc nechodí tak často – třeba jen párkrát denně.

Tip: Logujte si návštěvy AI crawlerů. Budete překvapeni, jak zřídka ve skutečnosti chodí.

SK
SEOTechnical_Kevin Technical SEO Consultant · 29. prosince 2025

Rozdíl v renderování JavaScriptu je obrovský a většina webů o tom ani neví.

Výzkumná data:

Z crawler studie od Vercelu:

  • GPTBot: 569 milionů požadavků/měsíc (0 % renderování JavaScriptu)
  • ClaudeBot: 370 milionů požadavků/měsíc (0 % renderování JavaScriptu)
  • Googlebot: Renderuje JavaScript (ale se zpožděním)

Co AI crawlery skutečně stahují:

CrawlerHTML %JS soubory %Umí vykonat?
GPTBot57,7 %11,5 %Ne
ClaudeBot35,4 %23,8 %Ne
PerplexityBot~60 %~15 %Ne
Googlebot100 %100 %Ano

Problém:

Stahují JS soubory jako text, ale nespustí je. Pokud je tedy váš obsah generován JavaScriptem, je pro ně neviditelný.

Kritická kontrola:

Zobrazte si zdrojový kód stránky (ne přes inspektor). Pokud vidíte hlavně prázdné divy a script tagy, totéž vidí AI crawlery.

RT
ReactDeveloper_Tom · 29. prosince 2025

Migrovali jsme z Create React App na Next.js právě kvůli tomuto důvodu.

Migrační postup:

  1. Týden 1–2: Nastavení Next.js app routeru
  2. Týden 3–4: Migrace komponent (většinou copy-paste)
  3. Týden 5–6: Implementace getServerSideProps/getStaticProps
  4. Týden 7–8: Testování a nasazení

Před / Po:

Před (CRA):

<div id="root"></div>
<script src="/static/js/main.chunk.js"></script>

Po (Next.js):

<article>
  <h1>Kompletní obsah zde</h1>
  <p>Veškerý text viditelný pro crawlery...</p>
</article>

Výsledky:

  • První AI citace přišla 3 týdny po spuštění
  • Nyní v průměru 15–20 AI citací měsíčně
  • Zrychlilo se i načítání stránky (bonus!)

Investice se vyplatila. Dynamické renderování je jen záplata. SSR/SSG je správné řešení.

CL
CrawlerMonitor_Lisa Expert · 29. prosince 2025

Jedna věc, na kterou se zapomíná: musíte si ověřit, že AI crawlery váš obsah skutečně vidí.

Jak testovat:

  1. Testování user agenta:

    curl -A "GPTBot" https://vasestranka.cz/stranka
    
  2. Zkontrolujte skutečný obsah:

    • Najděte klíčový obsah v odpovědi
    • Nejen spinner nebo placeholder
  3. Monitorujte v produkci:

    • Logujte požadavky AI crawlerů
    • Sledujte úspěšnost renderů
    • Upozorňujte na anomálie

Časté chyby, které jsme viděli:

ProblémProjevŘešení
Špatně nastavený middlewareŠpatné user agentyAktualizovat regex
Cache vrací starý obsahZastaralé info v AIZkrátit TTL
Timeout během renderováníNeúplný obsahZvýšit timeout
Přihlašovací zeďCrawlery zablokoványWhitelistovat IP botů

Použijte Am I Cited k ověření, že to funguje. Sledujte, zda se po implementaci dynamického renderování začnete v AI odpovědích objevovat. To je ultimátní validace.

PD
PerformanceEngineer_David · 28. prosince 2025

Důležité výkonnostní aspekty:

Latence renderování:

AI crawlery mají timeouty. Pokud předrenderovaná stránka trvá příliš dlouho:

  • GPTBot: Timeout okolo 30 sekund
  • ClaudeBot: Podobně
  • PerplexityBot: Trochu trpělivější

Priority optimalizace:

  1. Cacheujte vše, co jde – První požadavek renderuje, další jdou z cache
  2. Prioritizujte obsah nad ohybem – Kritický obsah musí být ihned v HTML
  3. Lazy load obrázky – Ale alt text musí být v HTML
  4. Minimalizujte třetí strany – Zpomalují renderování

Naše metriky po optimalizaci:

  • Průměrná doba renderu: 2,3 sekundy
  • Cache hit rate: 87 %
  • Úspěšnost crawlerů: 99,2 %

Nezapomeňte na strukturovaná data. Předrenderované stránky by měly obsahovat schema markup. AI crawlery to používají k pochopení obsahu.

SA
StartupFounder_Amy · 28. prosince 2025

Pro všechny s omezeným rozpočtem zde je rychlé řešení:

Minimální dynamické renderování:

  1. Použijte Cloudflare Workers – tarif za 5 $/měsíc
  2. Puppeteer ve Workeru – renderování na vyžádání
  3. Cache v Cloudflare – servíruje cachované verze

Celkové náklady: ~10–15 $/měsíc

Struktura kódu:

  • Worker zachytí požadavek AI crawleru
  • Puppeteer stránku předrenderuje
  • Výsledek uloží do cache na 24 hodin
  • Další požadavky jdou z cache

Naše výsledky:

  • Nastavení: 1 víkend
  • Náklady: 12 $/měsíc
  • AI viditelnost: Z nuly na výskyt v ChatGPT za 6 týdnů

Není to tak robustní jako Prerender.io nebo Next.js, ale pro startupy to stačí.

AR
AgencyDirector_Rachel · 27. prosince 2025

Pohled z agenturní praxe:

Situace klienta:

  • Velký e-shop (50 000 produktů)
  • Angular SPA s klientským renderováním
  • Nulová AI viditelnost
  • Konkurence dominuje v AI doporučeních

Implementace:

  • Prerender.io (vybráno spravované řešení kvůli rozsahu)
  • Enterprise tarif pro vysoký objem cache
  • Vlastní integrace s CMS

Časová osa:

  • Týden 1–2: Integrace
  • Týden 3–4: Zahřátí cache (50 000 stránek)
  • Měsíc 2: První AI citace
  • Měsíc 3: 340% nárůst AI viditelnosti

Přínosy:

  • Prerender.io: 499 $/měsíc (enterprise)
  • Dodatečná AI návštěvnost: ~15 000 $/měsíc
  • ROI: Jasně pozitivní

Klíčová zkušenost:

U rozsáhlých webů je zásadní fáze zahřívání cache. Nelze čekat, až crawlery objeví všechny stránky. Předrenderujte je proaktivně.

WM
WebStandardsAdvocate_Mike · 27. prosince 2025

Kontroverzní názor: možná přestaňte stavět weby těžké na JavaScript?

Širší pohled:

  • AI crawlery neumí JS
  • Někteří uživatelé mají JS zakázaný
  • Pomalejší sítě mají problém s JS balíky
  • Nástroje pro přístupnost často bojují se SPA

Progressive enhancement:

Zvažte web, který funguje i bez JavaScriptu, a interaktivitu přidávejte:

  1. Server renderuje plné HTML
  2. JavaScript přidává interaktivitu
  3. Funguje pro všechny – lidi i boty

Moderní nástroje:

  • Astro (částečná hydratace)
  • SvelteKit (SSR defaultně)
  • Next.js (hybridní rendering)
  • Nuxt (stejný přístup)

Dynamické renderování je obcházení problému, který jsme si sami vytvořili. Skutečné řešení je stavět přístupně od základu.

FM
FrontendLead_Marcus OP Frontend Engineering Lead · 27. prosince 2025

Tato diskuze mi dala jasný plán. Náš postup:

Krátkodobě (následující 2 týdny):

  • Zavést Rendertron pro okamžitou AI viditelnost
  • Rozpoznávání user agentů GPTBot, ClaudeBot, PerplexityBot
  • 24hodinové TTL cache s event-based invalidací

Střednědobě (další kvartál):

  • Zvážit migraci na Next.js pro klíčové stránky
  • A/B test SSR vs dynamické renderování z hlediska výkonu
  • Vytvořit dashboard pro monitoring AI crawlerů

Dlouhodobě (6 měsíců):

  • Kompletní migrace na hybridní rendering framework
  • Server-side rendering pro veškerý indexovatelný obsah
  • Klientská vylepšení pouze pro interaktivitu

Metriky, které budu sledovat:

  • Úspěšnost AI crawlerů (cíl: >95 %)
  • Čas do první AI citace
  • Počet citací v čase
  • Efektivitu cache

Investice:

  • Hosting Rendertronu: ~50 $/měsíc
  • Práce vývojářů: 2 týdny
  • Očekávaný ROI: AI viditelnost do 60 dnů

Díky všem. Data o chování crawlerů a implementační detaily byly přesně to, co jsem potřeboval.

Pro všechny s weby závislými na JavaScriptu: toto už není volitelné. AI crawlery jsou významný zdroj návštěvnosti a váš JavaScriptový obsah nevidí.

Have a Question About This Topic?

Get personalized help from our team. We'll respond within 24 hours.

Frequently Asked Questions

Proč AI crawlery nevidí obsah generovaný JavaScriptem?
Většina AI crawlerů včetně GPTBot, ClaudeBot a PerplexityBot neumí spouštět JavaScript. Vidí pouze počáteční HTML odpověď ze serveru. To znamená, že veškerý obsah načítaný dynamicky pomocí JavaScriptu je pro AI systémy neviditelný, což ovlivňuje vaši viditelnost v AI odpovědích.
Co je dynamické renderování pro AI?
Dynamické renderování doručuje předrenderované HTML AI crawlerům, zatímco uživatelům poskytuje klientské renderování. Rozpoznává uživatelské agenty crawlerů a směruje je na statické HTML verze stránek, aby AI systémy měly přístup ke všemu obsahu.
Jak implementovat dynamické renderování?
Dynamické renderování lze implementovat pomocí služeb jako Prerender.io, Rendertron nebo vlastních řešení. Nakonfigurujte middleware serveru tak, aby rozpoznával AI crawlery (GPTBot, ClaudeBot, PerplexityBot) a těmto botům doručoval předrenderované HTML verze stránek.

Monitorujte přístup AI crawlerů na váš web

Sledujte, jak GPTBot, ClaudeBot a PerplexityBot přistupují k vašemu obsahu. Ujistěte se, že vaše dynamické renderování funguje pro AI viditelnost.

Zjistit více

Naše React SPA je pro AI crawlery zcela neviditelná – jak to napravit?

Naše React SPA je pro AI crawlery zcela neviditelná – jak to napravit?

Diskuze komunity o optimalizaci Single Page Applications pro AI vyhledávače. Ověřená řešení, jak zpřístupnit JavaScriptové weby pro ChatGPT, Perplexity a další ...

5 min čtení
Discussion Technical SEO +1