Kas AI-roomajad suudavad sinu saiti lugeda? Kontrollisime 342 käivituslehte ilma JavaScriptita
Enamik AI-roomajaid ei käivita JavaScripti. Me pärisime 365 hiljuti käivitatud tootesaiti samamoodi, nagu nemad seda teevad. 342 laaditust iga kümnes tagastas lehe pealkirja ja kirjeldusega, kuid peaaegu ilma sisutekstita. Mida me mõõtsime, miks see juhtub, ja kaheminutiline kontroll oma saidi jaoks.

2026. aasta oktoobris päringusime 365 tooteveebilehte, mis olid aat.ee-s käivitatud nii, nagu seda teeks crawler, mis JavaScripti ei käivita, ja lugesime kokku teksti tagastatud HTML-is. 342 saidist, mis vastasid HTTP 200-ga, tagastasid 37 (10,8%) vähem kui 50 sõna põhiteksti. Peaaegu kõigil neist oli siiski pealkiri ja meta-kirjeldus, nii et leht näeb lingi eelvaates korras välja, samal ajal kui sisu saabub alles pärast JavaScripti käivitumist. Kui laadisime samad 37 lehte päris brauseris, näitasid 23 lehte 30-st, mis laadimise lõpetasid, 150 sõna või rohkem.
See on oluline, sest ChatGPT, Claude'i ja Perplexity taga olevate crawlerite puhul on täheldatud, et nad ei käivita JavaScripti. Kui sinu tootekirjeldus eksisteerib ainult renderdatud lehel, ei pruugi need süsteemid seda kunagi näha. Allpool on numbrid, põhjus ja kontroll, mille saad oma saidil kahe minutiga teha.
Millised crawlerid käivitavad JavaScripti
OpenAI, Anthropic, Meta, ByteDance ja Perplexity ei dokumenteeri, kas nende crawlerid renderdavad JavaScripti. Parim olemasolev tõend on Verceli ja MERJ-i 2024. aasta detsembri uuring. See leidis, et ükski suurematest AI-crawleritest, mida uuriti, ei renderdanud JavaScripti: OpenAI OAI-SearchBot, ChatGPT-User ja GPTBot, Anthropicu ClaudeBot, Meta-ExternalAgent, ByteDance'i Bytespider ja PerplexityBot. ChatGPT ja Claude'i crawlerid laadisid JavaScripti faile alla (11,50% ja 23,84% nende päringutest), kuid ei käivitanud neid. Gemini, mis kasutab Googleboti infrastruktuuri, renderdas. Samuti AppleBot.
Googlebot renderdab JavaScripti, kuid eraldi sammuna. Google'i JavaScripti SEO juhend ütleb, et lehed pannakse järjekorda ja "kui Google'i ressursid seda lubavad, renderdab headless Chromium lehe ja käivitab JavaScripti." Google soovitab siiski endiselt serveripoolset renderdamist või eelrenderdamist, sest "see muudab sinu veebisaidi kiiremaks nii kasutajatele kui ka crawleritele ning mitte kõik botid ei saa JavaScripti käivitada."
Uuring on üks vaatlus, peaaegu kaks aastat vana, ja crawlerite käitumine võib hoiatamata muutuda. See on siiski parim olemasolev info, ja ükski ettevõtetest ei ole seda ümber lükanud.
Kuidas me mõõtsime
- Valim: 400 projektide URL-i, mis valiti juhuslikult aat.ee-s viimase 120 päeva jooksul käivitatud toodete hulgast. Jätsime alles ühe URL-i hostname'i kohta ja eemaldasime 14 linki, mis osutasid GitHubile, rakendusepoodidele või Hugging Face'ile, mitte toote enda saidile, mis jättis 365 saiti. 342 tagastasid HTTP 200 ja on allpool olevate numbrite aluseks.
- Päring: üks GET iga saidi kohta user agent'iga, mis sisaldas OpenAI
OAI-SearchBottokenit, järgides ümbersuunamisi, ilma JavaScripti käivitamata. - Mõõt: nähtava põhiteksti sõnad pärast
<script>,<style>,<noscript>,<template>ja<svg>elementide eemaldamist. Samuti registreerisime, kas HTML sisaldas pealkirja, meta-kirjeldust, canonical-linki, JSON-LD-d ja<h1>-i. - Piirangud: laadisime ainult URL-i, mille asutaja esitas, tavaliselt avalehe. Meie päringud tulid meie enda võrgust, mitte OpenAI IP-vahemikest, nii et sait, mis kohtleb kinnitatud crawlereid erinevalt, võib neile midagi muud serveerida. Script-siltide sees olevat teksti ei loetud. Verceli uuring märgib, et esialgsesse HTML-i manustatud andmed, näiteks JSON, "võivad siiski indekseeritud saada", nii et mõne raamistiku puhul alahindab meie loend seda, mida crawler saab. Enamik allpool olevatest tühjadest lehtedest on ühelehe-rakendused (SPA), mille sisu asub eraldi JavaScripti pakettides, mille kohta uuring leidis, et need crawlerid laadivad need alla, kuid ei käivita.
Tulemused
| Põhiteksti sõnad toores HTML-is | Saidid | Osakaal 342-st |
|---|---|---|
| Vähem kui 20 | 35 | 10,2% |
| 20–49 | 2 | 0,6% |
| 50–149 | 3 | 0,9% |
| 150–399 | 23 | 6,7% |
| 400 või rohkem | 279 | 81,6% |
Mediaansait tagastas umbes 1180 sõna, nii et enamik käivituslehti on heas seisus. Probleem on koondunud: 37 saiti, peaaegu kõigil peaaegu mitte midagi põhitekstis.
Head on täidetud ja body on tühi. 37 õhukesest lehest oli 36-l <title> ja 34-l meta-kirjeldus. Ainult 4-l oli <h1> ja ainult 4-l oli viis või rohkem linki. Crawler, mis seda HTML-i loeb, saab teada toote nime ja üherealise tutvustuse ning mitte midagi funktsioonide, hindade või sihtrühma kohta.
Üks muster seletab enamikku neist. 37-st serveeris 30 tühja <div id="root"> või <div id="app"> ja ehitas kogu lehe brauseris, mis on Vite'i või Create React Appiga tehtud ühelehe-rakenduse vaikimisi käitumine. 12 olid Vite'i buildid. Seevastu ainult 1 165 Next.js saidist valimis oli õhuke. Next.js renderdab lehed vaikimisi serveris, nii et sisu on esimeses vastuses.
Mallid lekkivad. 16-l 37-st oli endiselt Create React Appi vaikimisi meta-kirjeldus "Web site created using create-react-app". Need 16 tulid kolmelt esitaja kontolt, mis käivitasid ühe perekonna sarnaseid tooteid, nii et need paisutavad kogusummat. Kui need välja jätta, on õhukeste osakaal 21 326-st ehk 6,4%. See on siiski umbes üks käivitus kuueteistkümnest.
Brauseris on sisu olemas
Seejärel laadisime 37 õhukest lehte headless Chromiumis, ootasime viis sekundit pärast laadimissündmust ja lugesime nähtava teksti uuesti kokku. 30 lehte lõpetas laadimise. 7 aegus pärast kolme katset.
| Põhiteksti sõnad pärast JavaScripti käivitumist | Saidid (30-st) |
|---|---|
| 150 või rohkem | 23 |
| 50–149 | 2 |
| Vähem kui 50 | 5 |
Mediaanleht läks 0 sõnalt toores HTML-is umbes 475-ni pärast renderdamist. Nii et enamikul neist saitidest on tekst olemas ja brauseris külastaja näeb seda. Seda lihtsalt ei ole HTML-is, mille server saadab, mis on ainus osa, mida mitte-renderdav crawler loeb. Viis, mis jäid alla 50 sõna, olid sisselogimisekraan, leht, mis renderdus tühjalt, ja kolm väga lühikest lehte. Need on õhukesed kõigi jaoks, mitte ainult crawlerite jaoks.
Kõrvalleid: mõni botikaitse blokeerib ka crawleri
Kolm saiti vastasid meie OAI-SearchBot päringule HTTP 403-ga ja samale päringule Chrome'i user agent'iga 200-ga. Kaks neist tagastasid Cloudflare'i väljakutse (cf-mitigated: challenge). Ükski nende robots.txt fail ei keelanud AI-crawlereid, nii et omanikud tõenäoliselt ei kavatsenud neid blokeerida.
Me ei saa sellest öelda, kas OpenAI tegelik crawler on blokeeritud. Botikaitse, näiteks Cloudflare'i oma, võib kinnitatud botid IP-aadresside järgi ära tunda ja meie päringud ei tulnud OpenAI omadest. Käsitle seda põhjusena uurida: kui kasutad Cloudflare'i, kontrolli armatuurlaual AI-crawleri ja botivõitluse seadeid ning kinnita, et need vastavad sellele, mida sinu robots.txt ütleb.
Kontrolli oma saiti kahe minutiga
-
Laadi see nii, nagu crawler seda teeb.
UA='Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)' curl -sL -A "$UA" -o raw.html -w '%{http_code}\n' https://yoursite.com grep -c 'a sentence from your hero section' raw.htmlUA='Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)' curl -sL -A "$UA" -o raw.html -w '%{http_code}\n' https://yoursite.com grep -c 'a sentence from your hero section' raw.htmlMuu staatus kui 200 tähendab tavaliselt, et crawler saab sinu sisu asemel vea- või väljakutselehe. Loend 0 tähendab, et seda täpset lauset HTML-is ei ole. Vali lühike fraas, sest märgistus võib pika lause pooleks lüüa.
-
Vaata lehte ilma JavaScriptita. Chrome DevToolsis ava käsukäsk (Ctrl+Shift+P või Cmd+Shift+P), käivita "Disable JavaScript" ja laadi leht uuesti. See, mida näed, on ligikaudu see, mida mitte-renderdav crawler loeb.
-
Kontrolli Google'it eraldi. Search Console'i URL Inspection näitab HTML-i, mille Googlebot renderdas. See räägib ainult Google'ist.
-
Korda seda oma hinnakirja- ja funktsioonilehtedel, mitte ainult avalehel. Need on lehed, mida assistent vajab sinu toote kirjeldamiseks.
Kuidas seda parandada, virna järgi
| Virn | Mida server vaikimisi saadab | Parandus |
|---|---|---|
| Vite või Create React App SPA | Tühja juur-<div> | Eelrendda turundusmarsruudid buildi ajal või vii need raamistikku, mis renderdab HTML-i serveris või buildi ajal |
| React Router v7 | Sõltub režiimist | Kasuta framework-režiimi serveripoolse renderdamisega või prerender avalike marsruutide jaoks |
| Next.js App Router | Serveripoolselt renderdatud HTML; lehed on Server Components | Hoia põhitekst eemal kliendikomponentidest, mis toovad andmeid pärast mountimist |
| Nuxt, SvelteKit | Serveripoolselt renderdatud HTML | Kontrolli, et SSR ei ole avalike lehtede jaoks välja lülitatud (ssr: false) |
| Astro, Framer, Webflow, Wix, WordPress | Staatiline või serveripoolselt renderdatud HTML | Tavaliselt korras; kontrolli botikaitset ja et teksti ei laadita skriptiga |
Kolm reeglit kehtivad olenemata sellest, mida kasutad:
- Pane faktid esimesse vastusesse. See tähendab toote nimi, mida see teeb, kellele see on mõeldud, hinnad ja peamised lingid, HTML-is, mille server tagastab.
- Serveeri botidele sama lehte kui inimestele. Google nimetab dünaamilist renderdamist, eraldi eelrenderdatud versiooni crawleritele, "tööriistaks ja mitte soovitatud lahenduseks." Microsofti GEO juhend ütleb: "Veendu, et renderdatud DOM sisaldab samu fakte, mida tarbijad näevad — ära kunagi serveeri botidele erinevat HTML-i."
- Ära peatu
<head>-i juures. Hea pealkiri ja kirjeldus aitavad linkide eelvaadete puhul. Need ei ole crawlerile piisavad, et sinu toodet kirjeldada.
KKK
Kas Google näeb minu kliendipoolselt renderdatud sisu? Tavaliselt lõpuks küll. Googlebot paneb lehed renderdamiseks järjekorda ja käivitab JavaScripti headless Chromiumiga. See katab Google Searchi ja Gemini. Selleks, et olla AI Overviewsis toetav link, peab leht "olema indekseeritud ja sobima Google Searchis katkendiga näitamiseks", nii et aeglane või ebaõnnestunud renderdamine võib seal siiski sulle kahju teha. See ei kata ChatGPT-d, Claude'i ega Perplexityt, mille crawlerite puhul on täheldatud, et nad ei renderda.
Kas tühi <div id="root"> on edetabelis karistus?
Ei. Miski ei karista selle eest. Hind on see, et mitte-renderdaval crawleril pole midagi lugeda, nii et see ei saa lehte tsiteerida ega kirjeldada.
Minu saidil on hea meta-kirjeldus. Kas sellest ei piisa? See annab crawlerile ühe lause. Assistendil, kellelt küsitakse, mida sinu toode teeb või kuidas see alternatiiviga võrreldes paistab, on vaja põhiteksti: funktsioone, hindu, kasutusjuhtumeid.
Kas ma pean oma rakenduse ümber ehitama? Tavaliselt mitte. Avalike lehtede, näiteks avalehe, hinnakirja, funktsioonide ja dokumentatsiooni lehtede eelrenderdamine on piisav. Sisselogitud rakendus võib jääda kliendipoolselt renderdatuks.
Kas selle parandamine toob mulle ChatGPT viite? Seda ei saa keegi lubada. Loetavus on eeltingimus. Kas sind tsiteeritakse, sõltub sellest, mida teised allikad sinu kohta ütlevad ja kui hästi sinu leht küsimusele vastab. Meie AI-otsingu optimeerimise käsiraamat katab ülejäänu.
Seotud lugemine
- 2026. aasta asutaja juhend AI-crawleritele: robots.txt, llms.txt ja tsiteerimine
- AI-crawlerite logide lugemine: mida GPTBot tegelikult pärib
- Veebisaidi käivitamise kontrollnimekiri
- 7 GEO väidet, kontrollitud Google'i enda dokumentatsiooni vastu
Allikad
- Vercel ja MERJ: The rise of the AI crawler (detsember 2024)
- Google Search Central: Understand JavaScript SEO basics
- Google Search Central: Dynamic rendering as a workaround
- Google Search Central: AI features and your website
- Next.js: Server and Client Components
- Microsoft Advertising: From discovery to influence: a guide to GEO
- aat.ee: toores-HTML audit 365 käivitatud tooteveebilehel (342 analüüsitud), oktoober 2026
Iga toode aat.ee-s saab püsiva, serveripoolselt renderdatud loendilehe, nii et crawlerid saavad lugeda sinu toote kirjeldust juba enne, kui sinu enda sait on nende jaoks valmis. Esita oma toode või vaata loendivalikuid.