Artikel

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:

  1. Byg et funktionelt HTML-fundament — alt kritisk indhold i <html> uden JavaScript-krav
  2. Tilføj CSS til visuel forbedring
  3. 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"<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


Sidst opdateret: marts 2026. Denne artikel er en del af Stegger.dk’s SEO-ordbog.

Andre artikler i samme emne

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