AI-crawlere kjører ikke JavaScript. Gjør nettstedet ditt det?
GPTBot og PerplexityBot leser den rå HTML-en din og hopper over JavaScripten din helt. Beacon gjengir siden din i en ekte headless-nettleser og viser deg nøyaktig hvilket innhold — og søkeord — AI-motorer aldri ser.
Hvorfor AI-crawlere leser en tommere side enn brukerne dine
AI-crawlere som GPTBot (OpenAI / ChatGPT), PerplexityBot, ClaudeBot og Amazonbot ber om URL-en din og analyserer den rå HTML-en som kommer tilbake — de samme bytene du ville sett med «Vis kilde». De starter ikke en nettlesermotor eller kjører skriptene dine. Så en enkeltsides-app som leverer en nesten tom rot-div og injiserer alt sitt reelle innhold med JavaScript ser komplett ut for et menneske og tom ut for en bot. Du kan rangere på Google, se perfekt ut for besøkende, og likevel være usynlig for AI-motorene kjøperne dine ber om anbefalinger.
Beacon gjetter ikke — den gjengir
Vi henter sidens statiske HTML slik en crawler uten gjengivelse gjør, laster den samme URL-en i en ekte headless-nettleser for å fange den gjengitte DOM-en, og sammenligner deretter de to — og rapporterer prosentandelen av innhold som kun finnes etter at JavaScript kjører, de nøyaktige søkeordene som mangler fra den statiske versjonen, og gjengivelsesmodusen din (serverside-gjengitt, hybrid eller klientside-gjengitt), slik at du umiddelbart vet hvor eksponert du er.
Slik lukker du Render Gap-et
Utbedringen er alltid det samme prinsippet: få det viktige innholdet ditt inn i HTML-en serveren sender, før noe JavaScript kjører — via serverside-gjengivelse, statisk generering eller dynamisk gjengivelse for boter. Sørg som et minimum for at overskrifter, brødtekst, priser og FAQ-svar finnes i den statiske HTML-en i stedet for å bli hentet og injisert av klient-JavaScript.
FAQ
Kjører AI-crawlere JavaScript?
Nesten ingen av dem gjør det. GPTBot (ChatGPT/OpenAI), PerplexityBot, ClaudeBot, Amazonbot og de fleste andre AI-crawlere henter den rå HTML-en din og analyserer den som den er. De starter ikke en nettlesermotor for å kjøre JavaScripten din, så alt innhold injisert av JS etter lasting er i praksis usynlig for dem.
Hva er et render gap?
Et render gap er forskjellen mellom den statiske HTML-en din (det AI-crawlere laster ned) og den JavaScript-gjengitte DOM-en din (det et menneske i en nettleser ser). Beacon uttrykker det som prosentandelen av synlig innhold og settet med søkeord som kun finnes etter at JavaScript kjøres. Et stort render gap betyr at AI-motorer leser en nesten tom side.
Vil React- eller Next.js-nettstedet mitt ha et render gap?
Det avhenger av hvordan du gjengir. En ren klientside-React-app (f.eks. Vite SPA eller create-react-app) leverer et nesten tomt HTML-skall og bygger alt med JS — det er et maksimalt render gap. Next.js, Remix, Astro og lignende rammeverk kan serverside-gjengi eller statisk generere sider, noe som lukker gapet — men bare for rutene du faktisk konfigurerer slik. Beacon sjekker den reelle utdataen i stedet for å anta.
Hvordan fikser jeg et render gap?
Flytt det viktige innholdet ditt inn i HTML-en serveren sender. Hovedalternativene er serverside-gjengivelse (SSR), statisk nettstedsgenerering (SSG / forhåndsgjengivelse ved bygging) og dynamisk gjengivelse, der du serverer et forhåndsgjengitt HTML-øyeblikksbilde til boter. Sørg som et minimum for at overskrifter, brødtekst, priser og FAQ-svar finnes i den statiske HTML-en i stedet for å bli hentet og injisert av klient-JavaScript.
Ser Google JavaScript-innhold?
For det meste ja — Googlebot kjører en moderne gjengivelsesmotor og vil kjøre JavaScripten din i en andre runde, så klientside-gjengitt innhold kan fortsatt rangere (selv om gjengivelse er tregere og kan utsettes). Den kritiske forskjellen er AI-søk: GPTBot, PerplexityBot og de fleste LLM-crawlere gjengir ikke JavaScript i det hele tatt. Så du kan bestå en Google JS-SEO-sjekk og likevel være usynlig for ChatGPT og Perplexity.
Se hva AI-crawlere virkelig leser på nettstedet ditt
Gratis konto — klassifisering av gjengivelsesmodus, søkeordene boter går glipp av, og hvordan du lukker gapet.