Kan AI-crawlere lese innhold som gjengis av JavaScript?
Ofte ikke. Googlebot gjengir JavaScript i et senere trinn, men de fleste AI-crawlere dokumenterer ikke at de gjør det, og Google påpeker selv at ikke alle boter kan kjøre JavaScript. Hvis teksten din først vises etter at skript har kjørt, kan en AI-crawler få en tom side. Lever hovedinnholdet i den første HTML-koden med serverrendering eller statiske sider.
Single-page-apper og klientbaserte rammeverk finnes overalt, og i en nettleser ser de fine ut. En crawler som bare leser HTML-en serveren din sender, ser noe annet: en <div id="root"></div>, noen script-tagger og lite eller ingen tekst. For AI-svar har den siden ingenting å sitere.
På denne siden
- Hvorfor går AI-crawlere glipp av JavaScript-innhold
- Hvordan sjekker jeg hva en crawler får
- Hvilke sider er mest utsatt
- Hvordan fikser jeg innhold som bare finnes i JavaScript
- Blokkerer innloggings-, samtykke- og betalingsmurskjermer også AI-crawlere
- Hvordan oppdager AISeeWhy sider som bare fungerer med JavaScript
Hvorfor går AI-crawlere glipp av JavaScript-innhold
Å kjøre JavaScript er dyrt. En crawler må laste ned skriptene, kjøre dem i en nettlesermotor og vente på at data lastes. Google gjør dette for Søk: den crawler, setter sider i kø for rendering og gjengir dem med headless Chromium når ressursene tillater det. Likevel anbefaler Google serverrendering eller prerendering fordi det er raskere for brukere og crawlere, og påpeker at ikke alle boter kan kjøre JavaScript.
OpenAI, Anthropic og Perplexity oppgir ikke i crawler-dokumentasjonen sin at agentene deres kjører JavaScript. Apple sier at Applebot kan gjengi sider i en nettleser. Uten en klar uttalelse er den trygge antakelsen for AI-crawlere at de bare leser den første HTML-koden.
Hvordan sjekker jeg hva en crawler får
Se på den rå HTML-koden, ikke den gjengitte siden. Nettleserens utviklerverktøy viser DOM-en etter at skriptene har kjørt, og det er ikke det en crawler får. Bruk view-source, eller lagre den rå HTML-koden fra kommandolinjen og søk i den:
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
Et resultat på 0 betyr at setningen ikke står i HTML-en serveren sendte, så crawlere som ikke kjører skript, finner den ikke. Et raskt blikk på filen forteller resten: en serverrendret artikkel har hele teksten der; et klientbasert skall har et tomt rotelement og en liste over skript.
Hvilke sider er mest utsatt
- Single-page-apper bygget med React, Vue, Angular eller Svelte som gjengir alt i nettleseren.
- Sider som henter hovedteksten sin fra et API etter innlasting, for eksempel produktinformasjon, priser eller anmeldelser.
- Innhold i faner, trekkspill eller «last inn mer»-seksjoner som bare hentes ved klikk.
- Sider bak en innlogging, en betalingsmur eller en samtykkemur som crawleren ikke kommer forbi.
- Sider som setter
noindexeller den kanoniske URL-en bare via JavaScript. Google advarer om at når den sernoindexi den opprinnelige HTML-koden, kan den hoppe over rendering helt.
Hvordan fikser jeg innhold som bare finnes i JavaScript
Løsningen er å sende det viktige innholdet i det første svaret. Velg det letteste alternativet stacken din tillater:
- Serverrendering (SSR): rammeverk som Next.js, Nuxt, SvelteKit og Angular SSR gjengir siden på serveren og hydrerer den i nettleseren.
- Statisk generering eller prerendering: bygg HTML-koden ved utrulling for sider som sjelden endres, for eksempel artikler, dokumentasjon og landingssider.
- Progressiv forbedring: legg tekst, overskrifter, lenker, priser og JSON-LD i HTML-koden og bruk JavaScript bare til interaksjon.
- Legg det viktige rett i siden: hvis faner skjuler innhold, legg alt i HTML-koden og veksle synlighet med CSS eller skript i stedet for å hente det ved klikk.
Du trenger ikke konvertere en hel app på én gang. Begynn med sidene du vil ha sitert: artikler, dokumentasjon, produkt- og prissider. Kontoområder og dashbord kan forbli klientbaserte, fordi de uansett ligger bak en innlogging.
Unngå å servere crawlere en annen side enn brukerne basert på user agent. Å gjengi samme HTML for alle er enklere å vedlikeholde og fjerner all tvil om cloaking.
Blokkerer innloggings-, samtykke- og betalingsmurskjermer også AI-crawlere
Ja. En crawler logger ikke inn, klikker ikke på et informasjonskapselbanner og løser ikke utfordringer. Anthropic sier at botene deres ikke vil forsøke å komme rundt CAPTCHA-er. Hvis en samtykkehåndterer erstatter siden med et fullskjermsoverlegg i HTML-koden, eller omdirigerer førstegangsbesøkende til en samtykkeside, får crawleren det i stedet for innholdet ditt.
Sørg for at offentlige sider gjengir innholdet sitt i HTML-koden uavhengig av samtykkestatus, med banneret som et overlegg i stedet for en erstatning. Hold sider du vil ha sitert, utenfor innloggingsmurer, og sjekk at en crawler ikke omdirigeres til en innloggingsside.
Hvordan oppdager AISeeWhy sider som bare fungerer med JavaScript
AISeeWhy leser den første HTML-koden slik hver crawler får den, uten å kjøre skript. Når en side har nesten ingen synlig tekst, men et rammeverks rotelement og skript, rapporterer den et P1-funn om at innholdet krever JavaScript. Den flagger også omdirigeringer som sender crawlere et annet sted enn til siden en nettleser får.
Vanlige spørsmål
Gjengir Googlebot JavaScript?
Ja. Google crawler HTML-koden, setter sider i kø for rendering og gjengir dem med headless Chromium når ressursene tillater det. Google anbefaler likevel serverrendering eller prerendering.
Kjører crawlerne til ChatGPT, Claude og Perplexity JavaScript?
Leverandørenes crawler-dokumentasjon sier ikke det. Inntil en leverandør sier noe annet, bør du anta at crawleren leser den første HTML-koden, og sørge for at innholdet ditt står i den.
Er dynamisk rendering for boter en god idé?
Det fungerer som en nødløsning, men legger til en andre renderingsvei å vedlikeholde. Serverrendering eller statisk HTML serverer samme innhold til alle og er den enklere langsiktige løsningen.
Teller JSON-LD som legges til av JavaScript?
Google kan lese det etter rendering, men crawlere som ikke kjører skript, ser det ikke. Legg JSON-LD i den første HTML-koden.
Kilder
- Google Search Central: JavaScript SEO basics
- Apple: About Applebot
- OpenAI: Overview of OpenAI crawlers
- Anthropic: Does Anthropic crawl data from the web, and how can site owners block the crawler?
- Perplexity: Perplexity crawlers