GPTBot en PerplexityBot lezen uw ruwe HTML en slaan uw JavaScript volledig over. Beacon geeft uw pagina weer in een echte headless browser en toont u precies de inhoud — en zoekwoorden — die AI-engines nooit zien.
AI-crawlers zoals GPTBot (OpenAI / ChatGPT), PerplexityBot, ClaudeBot en Amazonbot vragen uw URL op en parseren de ruwe HTML die terugkomt — dezelfde bytes die u zou zien met “Paginabron weergeven.” Ze starten geen browser-engine en draaien uw scripts niet. Een single-page app die een vrijwel lege root-div verstuurt en al zijn echte inhoud met JavaScript injecteert, ziet er voor een mens compleet uit en voor een bot blanco. U kunt in Google ranken, er perfect uitzien voor bezoekers, en toch onzichtbaar zijn voor de AI-engines die uw kopers om aanbevelingen vragen.
We halen de statische HTML van uw pagina op zoals een niet-renderende crawler dat doet, laden dezelfde URL in een echte headless browser om de weergegeven DOM vast te leggen, en vergelijken de twee — waarbij we het percentage inhoud rapporteren dat pas bestaat nadat JavaScript draait, de exacte zoekwoorden die in de statische versie ontbreken, en uw rendermodus (server-rendered, hybride of client-rendered) zodat u meteen weet hoe kwetsbaar u bent.
De oplossing volgt altijd hetzelfde principe: krijg uw belangrijke inhoud in de HTML die de server verstuurt, vóórdat er JavaScript draait — via server-side rendering, statische generatie of dynamische rendering voor bots. Zorg er ten minste voor dat koppen, bodytekst, prijzen en FAQ-antwoorden aanwezig zijn in de statische HTML in plaats van te worden opgehaald en geïnjecteerd door client-JavaScript.
Vrijwel geen enkele doet dat. GPTBot (ChatGPT/OpenAI), PerplexityBot, ClaudeBot, Amazonbot en de meeste andere AI-crawlers halen uw ruwe HTML op en parseren die zoals hij is. Ze starten geen browser-engine om uw JavaScript te draaien, dus elke inhoud die na het laden door JS wordt geïnjecteerd, is voor hen feitelijk onzichtbaar.
Een render gap is het verschil tussen uw statische HTML (wat AI-crawlers downloaden) en uw door JavaScript weergegeven DOM (wat een mens in een browser ziet). Beacon drukt het uit als het percentage zichtbare inhoud en de set zoekwoorden die pas bestaan nadat JavaScript is uitgevoerd. Een grote render gap betekent dat AI-engines een vrijwel lege pagina lezen.
Dat hangt af van hoe u rendert. Een pure client-side React-app (bijv. Vite SPA of create-react-app) verstuurt een vrijwel lege HTML-schil en bouwt alles met JS — dat is een maximale render gap. Next.js, Remix, Astro en vergelijkbare frameworks kunnen pagina’s server-renderen of statisch genereren, wat de gap dicht — maar alleen voor de routes die u daadwerkelijk zo configureert. Beacon controleert de echte output in plaats van aan te nemen.
Verplaats uw belangrijke inhoud naar de HTML die de server verstuurt. De belangrijkste opties zijn server-side rendering (SSR), statische sitegeneratie (SSG / prerendering tijdens de build) en dynamische rendering, waarbij u een vooraf weergegeven HTML-momentopname aan bots serveert. Zorg er ten minste voor dat koppen, bodytekst, prijzen en FAQ-antwoorden aanwezig zijn in de statische HTML in plaats van te worden opgehaald en geïnjecteerd door client-JavaScript.
Grotendeels wel — Googlebot draait een moderne render-engine en zal uw JavaScript in een tweede ronde uitvoeren, dus client-rendered inhoud kan nog steeds ranken (al is rendering trager en kan het worden uitgesteld). Het cruciale verschil is AI-zoeken: GPTBot, PerplexityBot en de meeste LLM-crawlers renderen JavaScript helemaal niet. U kunt dus slagen voor een Google JS-SEO-controle en toch onzichtbaar zijn voor ChatGPT en Perplexity.
Gratis account — classificatie van rendermodus, de zoekwoorden die bots missen en hoe u de gap dicht.