Discussion Technical SEO JavaScript

Vores React SPA er fuldstændig usynlig for AI-crawlere – hvordan løser vi det?

RE
ReactDev_Marcus · Frontend Lead
· · 82 upvotes · 10 comments
RM
ReactDev_Marcus
Frontend Lead · 13. januar 2026

Vi byggede vores side som en React SPA for tre år siden. Fantastisk brugeroplevelse, hurtige interaktioner.

Men nu indser vi, at AI-crawlere ikke kan se noget. Når jeg tjekker serverlogs:

  • GPTBot får vores tomme HTML-shell
  • PerplexityBot det samme
  • Alt vores reelle indhold indlæses via JavaScript

Problemet:

  • Ingen AI-synlighed
  • Konkurrenter med traditionelle sider bliver citeret
  • Vi har godt indhold, men AI kan ikke tilgå det

Vores nuværende stack:

  • React 18 med React Router
  • Kun client-side rendering
  • API-drevet indholdsindlæsning
  • Hash-baseret routing (/#/page)

Spørgsmål:

  1. Hvor alvorligt er dette problem egentlig?
  2. Hvad er den hurtigste løsning?
  3. Skal vi genopbygge i Next.js?
  4. Findes der løsninger, der ikke kræver større refaktorering?

Vi har ikke råd til en total ombygning, men har brug for AI-synlighed.

10 comments

10 kommentarer

TE
TechSEO_Expert_Sarah Ekspert Teknisk SEO-konsulent · 9. januar 2026

Dette er et almindeligt og alvorligt problem. Lad mig uddybe:

Sådan fungerer AI-crawlere:

I modsætning til Google (som kan afvikle JavaScript), kan de fleste AI-crawlere IKKE:

  • GPTBot (OpenAI): Ingen JavaScript-afvikling
  • PerplexityBot: Ingen JavaScript-afvikling
  • ClaudeBot (Anthropic): Ingen JavaScript-afvikling

De ser KUN din indledende HTML. For en SPA er det typisk:

<div id="root"></div>
<script src="bundle.js"></script>

Intet indhold = ingen AI-synlighed.

Den gode nyhed: Du behøver ikke nødvendigvis en total ombygning. Der findes løsninger, der virker med eksisterende SPAs.

RM
RenderingOptions_Mike · 9. januar 2026
Replying to TechSEO_Expert_Sarah

Dine muligheder fra hurtigst til mest gennemgribende:

Mulighed 1: Prerenderingstjeneste (hurtigst)

  • Tjenester som Prerender.io, Rendertron
  • Registrerer crawler-user-agents
  • Serverer cachet HTML til crawlere
  • Ingen kodeændringer krævet
  • Implementering: Timer

Mulighed 2: Dynamisk rendering

  • Server forskelligt indhold baseret på user-agent
  • SPA til brugere, statisk HTML til crawlere
  • Middleware-implementering
  • Implementering: Dage

Mulighed 3: SSR-migrering (bedst på lang sigt)

  • Migrer til Next.js/Remix
  • Fuld server-side rendering
  • Bedst for både AI og traditionel SEO
  • Implementering: Uger til måneder

Anbefaling:

Start med prerendering NU for øjeblikkelig synlighed. Planlæg SSR-migrering på længere sigt, hvis ressourcerne tillader det.

LøsningImplementeringstidKompleksitetAI-synlighed
PrerenderingTimerLavGod
Dynamisk renderingDageMediumGod
SSR (Next.js)Uger-månederHøjFremragende
PE
PrerenderPro_Emma DevOps Engineer · 9. januar 2026

Detaljer for implementering af prerendering:

Sådan virker det:

  1. User-agent-detektion på edge/server
  2. Hvis AI-crawler detekteres, omdiriger til cachet HTML
  3. Hvis almindelig bruger, server normal SPA

Hurtig opsætning med Prerender.io:

// Express middleware
const prerender = require('prerender-node');
app.use(prerender.set('prerenderToken', 'YOUR_TOKEN'));

Bot-mønstre der skal håndteres:

User-agent: GPTBot
User-agent: PerplexityBot
User-agent: ClaudeBot
User-agent: ChatGPT-User
User-agent: Googlebot

Resultater vi har set:

  • Indeksering steg fra <25% til ~80% af siderne
  • AI-synlighed inden for 2-3 uger efter implementering
  • Ingen påvirkning af brugeroplevelsen

Pris: De fleste prerenderingstjenester koster 15-100 $/måned afhængigt af trafik.

Dette er din hurtigste vej til AI-synlighed.

RM
ReactDev_Marcus OP Frontend Lead · 9. januar 2026

Prerendering lyder som den hurtige gevinst, vi har brug for.

Spørgsmål: Du nævnte, at vores hash-baserede URL’er er et problem. Hvor kritisk er det at få det løst?

UT
URLStructure_Tom Ekspert · 8. januar 2026

Hash-URL’er er et VÆSENTLIGT problem:

Sådan ser crawlere hash-URL’er:

  • Din URL: example.com/#/products/shoes
  • Hvad crawler ser: example.com/
  • Alle hash-routes = samme side for crawlere

Løsningen – brug History API:

// Før (hash routing)
<Route path="/#/products/:id" />

// Efter (browser history)
<Route path="/products/:id" />

// Konfigurer React Router
<BrowserRouter>
  <Routes>
    <Route path="/products/:id" element={<Product />} />
  </Routes>
</BrowserRouter>

Serverkonfiguration nødvendig:

# nginx - server index.html for alle routes
location / {
    try_files $uri $uri/ /index.html;
}

Prioritet: Dette er faktisk vigtigere end prerendering. Hash-URL’er betyder, at crawlere bogstaveligt talt ikke kan skelne mellem dine sider.

Ret URL’erne først, implementer derefter prerendering.

SC
SSRMigration_Chris · 8. januar 2026

Hvis du overvejer at migrere til Next.js på sigt:

Fordele ved SSR frem for prerendering:

  • Bedre til dynamisk indhold
  • Ingen forældet cache
  • Forbedret initial indlæsning
  • Bedre Core Web Vitals
  • Fremtidssikret til AI

Migrationsvej fra React til Next.js:

  1. Start med nøglesider

    • Migrer de mest besøgte sider først
    • Behold SPA for resten af siden
    • Inkremeterel adoption
  2. Brug Next.js App Router

    • React Server Components
    • Indbyggede renderingsmuligheder
    • God React-kompatibilitet
  3. Bevar URL-struktur

    • Samme routes, ny rendering
    • Ingen SEO-forstyrrelse

Tidsestimat:

  • Enkel side: 2-4 uger
  • Mellem kompleksitet: 4-8 uger
  • Stor/kompleks: 2-4 måneder

Vent ikke med at beslutte: Start med prerendering nu, planlæg migration parallelt.

SL
StructuredDataSPA_Lisa · 8. januar 2026

Overvejelser om struktureret data for SPAs:

Nuværende problem: Dit JSON-LD indlæses sandsynligvis også via JavaScript.

Løsningen: Inkludér kritisk schema i den indledende HTML:

<head>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Your Company",
    ...
  }
  </script>
</head>

For dynamiske sider: Prerendering bør fange schema korrekt implementeret.

Test dit schema:

  1. Vis sidekilde (ikke inspicer)
  2. Tjek om schema er i den indledende HTML
  3. Hvis ikke synligt, kan crawlere ikke se det

Struktureret data hjælper AI med at forstå dit indhold selv med prerendering.

RM
ReactDev_Marcus OP Frontend Lead · 8. januar 2026

Her er vores implementeringsplan:

Uge 1: Hurtige rettelser

  1. Migrér fra hash til browser history routing
  2. Konfigurer server til SPA-routing
  3. Flyt kritiske meta-tags til indledende HTML

Uge 2-3: Prerendering

  1. Implementér Prerender.io
  2. Konfigurer til AI-crawler user-agents
  3. Verificér at cachede sider er korrekte
  4. Overvåg crawl-logs

Måned 2+: Vurder SSR

  1. Vurder Next.js-migrationskompleksitet
  2. Pilotér med 1-2 nøglesider
  3. Beslut fuld migrationstidslinje

Overvågning:

  1. Tjek serverlogs for AI-crawler-adgang
  2. Brug Am I Cited til at spore AI-synlighed
  3. Test AI-forespørgsler for vores indhold

Det gør os hurtigt synlige og planlægger langsigtet.

MD
MonitorCrawlers_Dan · 7. januar 2026

Sådan verificerer du, at AI-crawlere kan se dit indhold:

Tjek serverlogs for:

GPTBot - OpenAI
PerplexityBot - Perplexity
ClaudeBot - Anthropic
ChatGPT-User - ChatGPT browsing

Simulér hvad crawlere ser:

  1. Deaktiver JavaScript i browseren
  2. Se dine sider
  3. Det er hvad crawlere ser

Efter prerendering:

  • Tjek at crawlere får 200-svar
  • Verificér at HTML indeholder reelt indhold
  • Test med curl:
curl -H "User-Agent: GPTBot" https://yoursite.com/page

Spor crawl-frekvens:

  • Overvåg hvor ofte AI-bots besøger
  • God prerendering = hyppigere crawls
  • Verificér at alle vigtige sider er cachet

Crawl-verificering viser, om løsningen virker.

CR
ContentStrategy_Rachel · 7. januar 2026

Ud over rendering – indholdet betyder stadig noget:

Når crawlere kan se dit indhold:

  • Skal du stadig have AI-optimeret indholdsstruktur
  • Klare overskrifter og svar
  • Implementering af struktureret data
  • Friskt, opdateret indhold

Glem ikke:

  • Rendering-løsninger løser kun ADGANG
  • AI-citering kræver stadig kvalitetsindhold
  • Samme optimeringsprincipper gælder

Rendering-løsningen får dig med i spillet. Indholdsoptimering vinder spillet.

Have a Question About This Topic?

Get personalized help from our team. We'll respond within 24 hours.

Frequently Asked Questions

Hvorfor kan AI-crawlere ikke se SPA-indhold?
De fleste AI-crawlere kan ikke afvikle JavaScript. Når de besøger en SPA, ser de kun den indledende HTML-shell uden det dynamisk indlæste indhold. Da AI-systemer mangler fulde browsermiljøer, kan de ikke behandle JavaScript-instruktioner, der viser det reelle sideindhold.
Hvad er den bedste løsning for at gøre SPAs synlige for AI?
Server-side rendering (SSR) er den gyldne standard. Frameworks som Next.js, Nuxt.js og Remix laver komplet HTML-serverrendering. For eksisterende SPAs kan prerenderingstjenester som Prerender.io levere statisk HTML til crawlere uden at ændre din arkitektur.
Fungerer prerendering for AI-crawlere?
Ja, prerendering er meget effektivt. Det genererer statiske HTML-snapshots, som AI-crawlere kan tilgå. Tjenester registrerer crawler-user-agents (GPTBot, PerplexityBot, ClaudeBot) og leverer prerenderede versioner, mens almindelige brugere får SPA-oplevelsen.
Hvordan påvirker URL-strukturer SPA's AI-synlighed?
Hash-fragmenter (#) i URL’er er problematiske – AI-crawlere opfatter dem som én side. Brug History API og pushState til at lave rene URL’er som /products/item-name i stedet for /products#123. Hvert view skal have en unik, beskrivende URL.

Spor din SPA's AI-synlighed

Overvåg om AI-crawlere kan se og citere dit JavaScript-renderede indhold på tværs af AI-platforme.

Lær mere