GPTBot og PerplexityBot læser din rå HTML og springer din JavaScript helt over. Beacon gengiver din side i en ægte headless browser og viser dig præcis det indhold — og de nøgleord — AI-motorer aldrig ser.
AI-crawlere som GPTBot (OpenAI / ChatGPT), PerplexityBot, ClaudeBot og Amazonbot anmoder om din URL og parser den rå HTML, der kommer tilbage — de samme bytes, du ville se med “Vis kilde.” De starter ikke en browsermotor eller kører dine scripts. Så en single-page-app, der leverer en næsten tom root-div og injicerer alt sit reelle indhold med JavaScript, ser komplet ud for et menneske og blank ud for en bot. Du kan ligge godt på Google, se perfekt ud for besøgende og stadig være usynlig for de AI-motorer, dine købere beder om anbefalinger.
Vi henter din sides statiske HTML, som en ikke-gengivende crawler gør, indlæser den samme URL i en ægte headless browser for at fange den gengivede DOM og sammenligner så de to — rapporterer den procentdel af indhold, der kun findes, efter JavaScript kører, de præcise nøgleord, der mangler i den statiske version, og din rendermode (server-gengivet, hybrid eller client-gengivet), så du øjeblikkeligt ved, hvor udsat du er.
Rettelsen er altid det samme princip: få dit vigtige indhold ind i den HTML, serveren sender, før nogen JavaScript kører — via server-side rendering, statisk generering eller dynamisk gengivelse til bots. Sørg som minimum for, at overskrifter, brødtekst, priser og FAQ-svar findes i den statiske HTML i stedet for at blive hentet og injiceret af client-side JavaScript.
Næsten ingen af dem gør. GPTBot (ChatGPT/OpenAI), PerplexityBot, ClaudeBot, Amazonbot og de fleste andre AI-crawlere henter din rå HTML og parser den, som den er. De starter ikke en browsermotor for at køre din JavaScript, så ethvert indhold, der injiceres af JS efter indlæsning, er reelt usynligt for dem.
Et Render Gap er forskellen mellem din statiske HTML (det AI-crawlere downloader) og din JavaScript-gengivede DOM (det et menneske i en browser ser). Beacon udtrykker det som procentdelen af synligt indhold og det sæt nøgleord, der kun findes, efter JavaScript kører. Et stort Render Gap betyder, at AI-motorer læser en næsten tom side.
Det afhænger af, hvordan du gengiver. En ren client-side React-app (fx Vite SPA eller create-react-app) leverer en næsten tom HTML-skal og bygger alt med JS — det er et maksimalt Render Gap. Next.js, Remix, Astro og lignende frameworks kan server-gengive eller statisk generere sider, hvilket lukker hullet — men kun for de ruter, du faktisk konfigurerer sådan. Beacon tjekker det reelle output i stedet for at antage.
Flyt dit vigtige indhold ind i den HTML, serveren sender. Hovedmulighederne er server-side rendering (SSR), statisk site-generering (SSG / prerendering på byggetidspunktet) og dynamisk gengivelse, hvor du serverer et prerendered HTML-snapshot til bots. Sørg som minimum for, at overskrifter, brødtekst, priser og FAQ-svar findes i den statiske HTML i stedet for at blive hentet og injiceret af client-side JavaScript.
For det meste ja — Googlebot kører en moderne gengivelsesmotor og vil eksekvere din JavaScript i en anden runde, så client-gengivet indhold kan stadig placeres (selvom gengivelse er langsommere og kan udskydes). Den afgørende forskel er AI-søgning: GPTBot, PerplexityBot og de fleste LLM-crawlere gengiver slet ikke JavaScript. Så du kan bestå et Google JS-SEO-tjek og stadig være usynlig for ChatGPT og Perplexity.
Gratis konto — klassificering af rendermode, de nøgleord bots går glip af, og hvordan du lukker hullet.