Umějí AI crawlery číst obsah vykreslený JavaScriptem?

Publikováno

Stručná odpověď

Často ne. Googlebot JavaScript vykresluje v pozdějším kroku, ale většina AI crawlerů to nedokumentuje a sám Google upozorňuje, že ne všichni boti umějí JavaScript spouštět. Pokud se váš text objeví až po spuštění skriptů, může AI crawler dostat prázdnou stránku. Hlavní obsah servírujte v úvodním HTML pomocí vykreslování na serveru nebo statických stránek.

Single-page aplikace a klientské frameworky jsou všude a v prohlížeči vypadají dobře. Crawler, který čte jen HTML odeslané vaším serverem, vidí něco jiného: <div id="root"></div>, pár značek script a málo textu nebo žádný. Pro AI odpovědi na takové stránce není co citovat.

Na této stránce
  1. Proč AI crawlery o obsah v JavaScriptu přicházejí?
  2. Jak ověřím, co crawler dostane?
  3. Které stránky jsou nejvíce ohrožené?
  4. Jak opravit obsah, který existuje jen v JavaScriptu?
  5. Blokují AI crawlery i obrazovky přihlášení, souhlasu a paywallu?
  6. Jak AISeeWhy odhaluje stránky závislé jen na JavaScriptu?

Proč AI crawlery o obsah v JavaScriptu přicházejí?

Spouštění JavaScriptu je drahé. Crawler musí stáhnout skripty, spustit je v prohlížečovém jádru a počkat na načtení dat. Google to pro Search dělá: stránky prochází, řadí je do fronty k vykreslení a vykresluje je pomocí headless Chromium, když to zdroje dovolí. I tak Google doporučuje vykreslování na serveru nebo prerendering, protože je rychlejší pro uživatele i crawlery, a upozorňuje, že ne všichni boti umějí JavaScript spouštět.

OpenAI, Anthropic ani Perplexity v dokumentaci svých crawlerů neuvádějí, že by jejich agenti JavaScript spouštěli. Apple uvádí, že Applebot může stránky vykreslovat v prohlížeči. Bez jasného prohlášení je bezpečným předpokladem pro AI crawlery, že čtou pouze úvodní HTML.

Jak ověřím, co crawler dostane?

Podívejte se na surové HTML, ne na vykreslenou stránku. Vývojářské nástroje prohlížeče zobrazují DOM po spuštění skriptů, což není to, co crawler dostane. Použijte zobrazení zdroje nebo uložte surové HTML z příkazové řádky a prohledejte ho:

curl -s -o page.html \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
  https://example.com/page

# Is a sentence from your main text in the raw HTML?
grep -c "a sentence from your main content" page.html

Výsledek 0 znamená, že věta není v HTML odeslaném serverem, takže ji crawlery, které nespouštějí skripty, nenajdou. Zbytek napoví rychlý pohled do souboru: článek vykreslený na serveru tam má celý text; klientská schránka má prázdný kořenový prvek a seznam skriptů.

Které stránky jsou nejvíce ohrožené?

Jak opravit obsah, který existuje jen v JavaScriptu?

Řešením je poslat důležitý obsah už v první odpovědi. Vyberte nejlehčí možnost, kterou váš stack umožňuje:

Nemusíte převádět celou aplikaci najednou. Začněte stránkami, které chcete mít citované: články, dokumentace, stránky produktů a ceníku. Uživatelské účty a dashboardy mohou zůstat na straně klienta, protože jsou stejně za přihlášením.

Nepodávejte crawlerům jinou stránku než uživatelům podle user agenta. Vykreslování stejného HTML pro všechny se snáze udržuje a odstraňuje jakoukoli pochybnost o cloakingu.

Blokují AI crawlery i obrazovky přihlášení, souhlasu a paywallu?

Ano. Crawler se nepřihlašuje, neklikne na cookie banner a neřeší výzvy. Anthropic uvádí, že jeho boti se nebudou pokoušet obejít CAPTCHA. Pokud správce souhlasu nahradí stránku v HTML celoobrazovkovým překryvem nebo přesměruje nové návštěvníky na stránku souhlasu, crawler dostane místo vašeho obsahu právě to.

Zajistěte, aby veřejné stránky vykreslovaly obsah v HTML bez ohledu na stav souhlasu, s bannerem jako překryvem, ne jako náhradou. Stránky, které chcete mít citované, držte mimo přihlašovací zdi a ověřte, že crawler není přesměrován na přihlašovací stránku.

Jak AISeeWhy odhaluje stránky závislé jen na JavaScriptu?

AISeeWhy čte úvodní HTML tak, jak ho dostává každý crawler, bez spouštění skriptů. Když má stránka téměř žádný viditelný text, ale kořenový prvek frameworku a skripty, ohlásí zjištění P1, že obsah potřebuje JavaScript. Označí také přesměrování, která crawlery posílají jinam než na stránku, kterou dostane prohlížeč.

Časté dotazy

Vykresluje Googlebot JavaScript?

Ano. Google prochází HTML, řadí stránky do fronty k vykreslení a vykresluje je pomocí headless Chromium, když to zdroje dovolí. Google přesto doporučuje vykreslování na serveru nebo prerendering.

Spouštějí crawlery ChatGPT, Claude a Perplexity JavaScript?

Dokumentace crawlerů jejich dodavatelů to neuvádí. Dokud dodavatel neuvede opak, předpokládejte, že crawler čte úvodní HTML, a zajistěte, aby v něm byl váš obsah.

Je dynamické vykreslování pro boty dobrý nápad?

Funguje jako provizorní řešení, ale přidává druhou cestu vykreslování, kterou je třeba udržovat. Vykreslování na serveru nebo statické HTML dodává stejný obsah všem a je jednodušším dlouhodobým řešením.

Počítá se JSON-LD přidané JavaScriptem?

Google ho po vykreslení přečíst umí, ale crawlery, které skripty nespouštějí, ho neuvidí. JSON-LD dejte do úvodního HTML.

Zdroje

Další články