JavaScript SEO — Hvad Googlebot kan og ikke kan
JavaScript SEO handler om at sikre at Googlebot kan se og forstå dit JavaScript-genererede indhold. CSR-frameworks, SPA'er og JavaScript-tunge sites kræver særlig opmærksomhed.
JavaScript SEO er disciplinen at sikre at JavaScript-kode ikke udgør en barriere for søgemaskiner — specifikt at Googlebot kan crawle, rendere og indeksere indhold korrekt på JavaScript-tunge sites. Det er en af de vigtigste tekniske SEO-discipliner i 2026 fordi langt de fleste moderne sites bruger JavaScript til at generere dele af indholdet, og Googlebots to-fase-rendering-pipeline skaber en forsinkelse der kan koste rankinger og crawl budget, hvis JavaScript-SEO håndteres forkert.
Hvad Googlebot kan med JavaScript
Googlebot er baseret på et Chromium-headless-miljø og kan i princippet rendere moderne JavaScript. Googles Web Rendering Service (WRS) processerer JavaScript i en dedikeret render-kø — men ikke øjeblikkeligt og ikke altid komplet.
Processen foregår i to faser:
Fase 1 — Crawl: Googlebot henter sidens rå HTML. Links, metadata og synligt HTML-indhold er tilgængeligt på dette tidspunkt.
Fase 2 — Rendering: Siden placeres i render-køen. JavaScript eksekveres, DOM bygges, og det endelige indhold indekseres. Forsinkelsen kan være fra timer til uger.
Konsekvensen: kritisk indhold — H1, primær brødtekst, interne links, structured data — bør eksistere i den rå HTML og ikke udelukkende være afhængig af JavaScript-rendering.
Single-Page Applications og crawlability
Single-page applications (SPA’er) er JavaScript-frameworks (React, Vue, Angular) der bygger hele brugergrænsefladen client-side. Standardopsætningen sender et minimalt HTML-skelet til browseren og bygger siden via JavaScript — Googlebot modtager det samme tomme skelet.
Det er ikke uoverkommeligt, men det kræver bevidste valg:
Server-side rendering (SSR) genererer komplet HTML på serveren inden afsendelse. Next.js, Nuxt.js og SvelteKit understøtter SSR som primær renderingstilstand.
Statisk generering præ-genererer HTML på byggetidspunktet. Astro — som stegger.dk bruger — er primært statisk generering: alle sider eksisterer som komplet HTML uden JavaScript-krav til grundindholdet.
Dynamic rendering er en workaround der serverer pre-renderet HTML til crawlere og JavaScript til brugere. Google betragter det som acceptabelt men midlertidigt.
Progressive enhancement som SEO-princip
Progressive enhancement er en fundamentalt SEO-venlig udviklingstilgang. Princippet:
- Byg et funktionelt HTML-fundament — alt kritisk indhold i
<html>uden JavaScript-krav - Tilføj CSS til visuel forbedring
- Tilføj JavaScript til interaktivitet og UX-forbedringer
Resultatet er en side der er fuldt indekserbar ved Googlebot-crawl (fase 1), og forbedret for brugere med JavaScript. Det er ikke en restriktiv tilgang — det er en robusthedsstrategi.
Det modsatte mønster — “JavaScript-first” med alt indhold injiceret via document.createElement — er skrøbeligt: det fejler ved JavaScript-fejl, timeout og inkonsekvent rendering i Googlebots queue.
Typiske JavaScript SEO-fejl
Interne links genereret via JavaScript: Links der kun oprettes via onclick-events eller framework-routing uden <a href>-tags kan mangle i Googlebots link-graph. Brug altid standard anchor-tags med faktiske URL’er.
Metadata indsat via JavaScript: Title-tags og meta descriptions der skrives via document.title = ... eller JavaScript-baserede meta-frameworks kan mangle i fase-1-crawl. Sørg for at kritisk metadata er tilgængeligt i server-sendt HTML.
Uendelig scroll: Indhold der kun indlæses ved scroll kan overses af Googlebot. Brug pagination med klare URL’er frem for infinite scroll for indhold der skal indekseres.
Lazy-load implementering: Native loading="lazy" på <img>-tags er fuldt understøttet. JavaScript-baserede lazy-load-løsninger der kræver scroll-events kan forhindre Googlebot i at se billeder.
Praktiske verifikationsværktøjer
URL Inspection Tool i Google Search Console viser hvad Googlebot faktisk renderer — inklusive et screenshot af den renderede side. Sammenlign med kildeteksten (Ctrl+U) for at identificere JavaScript-afhængigt indhold.
Mobile-Friendly Test (search.google.com/test/mobile-friendly) er et hurtigt tjek der også viser renderingsresultatet og eventuelle JavaScript-fejl.
Kildetekst vs. DOM-inspektion: Tryk Ctrl+U for at se den server-sendte HTML — det Googlebot modtager i fase 1. Åbn Chrome DevTools Inspector for at se det JavaScript-genererede DOM. Forskellen er det JavaScript-afhængige indhold.
Relaterede artikler
- JavaScript og rendering — Scripts, DOM og CSR vs SSR
- JavaScript Rendering og SEO
- JavaScript og rendering
- Web performance og Core Web Vitals
- Crawling og indeksering
Sidst opdateret: marts 2026. Denne artikel er en del af Stegger.dk’s SEO-ordbog.
Andre artikler i samme emne
- API — Hvad er API og hvad betyder det for SEO?
- Client-side rendering — CSR og SEO-udfordringer
- DOM — Document Object Model og JavaScript-rendering
- Google Tag Manager — Tag-håndtering og SEO-tracking
- Hydration — SSR og client-side JavaScript kombineret
- JavaScript — Hvad er JavaScript og hvad betyder det for SEO?
- JavaScript og crawling — Hvad Googlebot ser og ikke ser
- JavaScript Rendering og SEO — Hvad Googlebot ser
- JavaScript-debugging til SEO — Find rendering-problemer
- Next.js og SEO — Server-side rendering og SEO
- Prerendering — Forhåndsrenderet HTML til crawlere
- React og SEO — JavaScript-rendering og søgesynlighed
- Rendering — Hvad Googlebot ser efter JavaScript-rendering
- Scripts og SEO — render-blocking, async og defer
- Server-side rendering — SSR og fordele for SEO
- Static site generation — SSG og SEO-fordele ved statiske sider
- Web Components og SEO — Custom elements og søgesynlighed
Ofte stillede spørgsmål
- Kan Googlebot køre JavaScript?
- Ja — Googlebot bruger et Chromium-baseret headless browser og kan eksekvere JavaScript. Men processen er tosættet: crawling sker i et første pass (rå HTML), rendering sker i en separat kø der kan forsinke indeksering med dage til uger. Indhold der udelukkende eksisterer i JavaScript-renderet form risikerer at blive indekseret inkonsistent eller forsinket.
- Er React, Vue og Angular dårligt for SEO?
- Ikke nødvendigvis — men standard SPA-konfiguration med client-side rendering er problematisk. Next.js (React), Nuxt.js (Vue) og SvelteKit tilbyder server-side rendering og statisk generering der løser crawlabilty-problemerne. Brug SSR eller statisk generering frem for ren CSR. Et framework er ikke et SEO-problem — opsætningen afgør det.
- Hvad er progressive enhancement, og hvorfor er det et SEO-princip?
- Progressive enhancement er en udviklingstilgang der starter med et fuldt funktionelt HTML-fundament og tilføjer JavaScript som forbedring ovenpå — frem for at bruge JavaScript til at bygge grundstrukturen. For SEO betyder det at Googlebot (og brugere med deaktiveret JavaScript) modtager fuldt indhold i den rå HTML. JavaScript tilføjer interaktivitet, ikke indhold.
- Hvad er de mest kritiske JavaScript-SEO-tjek i en teknisk audit?
- De vigtigste JavaScript-SEO-tjek i en audit: Verificer via View Source (Ctrl+U) at H1, title-tag, meta description og canonical er til stede i rå HTML og ikke kun i renderet DOM. Tjek at interne links er HTML-ankertags og ikke kun JavaScript onclick-handlers. Brug GSC's URL Inspection Tool til at se det renderede HTML Googlebot ser. Sammenlign kildekode med renderet DOM via Screaming Frog med JavaScript-rendering. Test structured data med Rich Results Test for at sikre at den er server-side genereret.
- Hvad er pre-rendering og dynamic rendering som JavaScript-SEO-løsninger?
- Pre-rendering genererer statisk HTML fra JavaScript-applikationen ved build-time — Googlebot modtager statisk HTML. Dynamic rendering er en server-side proxy der detekterer Googlebot og serverer en pre-renderet HTML-version, mens rigtige brugere modtager JavaScript-applikationen. Google har officielt sagt at dynamic rendering er en midlertidig løsning og anbefaler SSR i stedet. Pre-rendering via Gatsby, Astro eller Next.js export er den langsigtet robuste løsning for statiske sites.
Placering i ordbogen
- API — Hvad er API og hvad betyder det for SEO?
- Client-side rendering — CSR og SEO-udfordringer
- DOM — Document Object Model og JavaScript-rendering
- Google Tag Manager — Tag-håndtering og SEO-tracking
- Hydration — SSR og client-side JavaScript kombineret
- JavaScript — Hvad er JavaScript og hvad betyder det for SEO?
- JavaScript og crawling — Hvad Googlebot ser og ikke ser
- JavaScript Rendering og SEO — Hvad Googlebot ser
- JavaScript-debugging til SEO — Find rendering-problemer
- Next.js og SEO — Server-side rendering og SEO
- Prerendering — Forhåndsrenderet HTML til crawlere
- React og SEO — JavaScript-rendering og søgesynlighed
- Rendering — Hvad Googlebot ser efter JavaScript-rendering
- Scripts og SEO — render-blocking, async og defer
- Server-side rendering — SSR og fordele for SEO
- Static site generation — SSG og SEO-fordele ved statiske sider
- Web Components og SEO — Custom elements og søgesynlighed