Kan AI-crawlere lese innhold som gjengis av JavaScript?

Publisert

Kort svar

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
  1. Hvorfor går AI-crawlere glipp av JavaScript-innhold
  2. Hvordan sjekker jeg hva en crawler får
  3. Hvilke sider er mest utsatt
  4. Hvordan fikser jeg innhold som bare finnes i JavaScript
  5. Blokkerer innloggings-, samtykke- og betalingsmurskjermer også AI-crawlere
  6. 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

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:

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

Flere artikler