JavaScript-rendering fejl — Når Googlebot ikke ser dit indhold
JavaScript-rendering fejl er den hyppigste årsag til at Googlebot ikke ser sider korrekt — indhold der kun vises efter JS-execution, failed hydration eller timeout-problemer under rendering.
JavaScript-rendering fejl er den hyppigste årsag til at Googlebot ikke ser sider korrekt — indhold der kun vises efter JavaScript-execution, failed hydration eller timeout-problemer under den tofase-rendering Google anvender. Konsekvensen er sider der ser perfekte ud i browseren men er usynlige eller ufuldstændige i Googles indeks.
Googles to-fase rendering
Googlebot crawler i to faser: først hentes HTML (hurtig fase), derefter eksekveres JavaScript når rendering-ressourcer er tilgængelige (langsom fase, kan tage dage). I første fase ser Googlebot kun den HTML der serveres af serveren. Hvis kritisk indhold først vises efter JS-execution, risikerer du at første indeksering sker uden indholdet, og at re-rendering kan forsinke opdatering betydeligt.
Diagnose af rendering-fejl
Google Search Console URL Inspection er det primære værktøj: den viser den renderede HTML som Googlebot ser den. Sammenlign med hvad browseren viser. Hvis H1, produktbeskrivelser eller navigation mangler i den renderede HTML, er der et rendering-problem. Screaming Frog med JavaScript rendering aktiveret giver samme sammenligning på tværs af hele sitet.
Hydration-problemer
Hydration-fejl opstår når server-side renderet HTML ikke matcher client-side JavaScript-state. I React, Next.js og Astro vises typisk advarsler i browserens console, og komponenten kan fejle med at blive interaktiv. For SEO er konsekvenserne: layout shifts der påvirker CLS (Core Web Vitals), brudte interaktive elementer, og i værste fald fallback til ikke-hydreret tilstand hvor dynamisk indhold ikke opdateres.
Timeout og tung JavaScript
Googlebots rendering har en timeout. Tunge JavaScript-bundles (typisk 1MB+ i komprimeret størrelse), tredjeparts-scripts der blokerer main thread og sekventielle API-kald kan overskride grænsen. Resultatet: ufuldstændig rendering hvor Googlebot ser nogle dele af siden og ikke andre. Bundle-splitting, lazy loading af ikke-kritiske scripts og server-side rendering af initial content er de primære løsninger.
Løsningsstrategier
Første skridt er at identificere hvilket indhold der er kritisk og skal være i initial HTML: titel, meta description, primær brødtekst, navigation, structured data, canonical tags. Alt dette skal renderes server-side. Sekundært interaktivt indhold (kommentarer, dynamisk filtrering, personaliserede elementer) kan forblive client-side. Hybrid-arkitektur — server-side for SEO-kritisk, client-side for interaktivitet — er det optimale kompromis for moderne SEO.
Andre artikler i samme emne
- API — Hvad er API og hvad betyder det for SEO?
- Browser rendering pipeline — Fra HTML til pixels
- Client-side rendering — CSR og SEO-udfordringer
- CSS containment — Isolér rendering og accelerér layout
- 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 bundle-optimering — Code splitting, tree shaking og analyse
- JavaScript og crawling — Hvad Googlebot ser og ikke ser
- JavaScript Rendering og SEO — Hvad Googlebot ser
- JavaScript SEO — Hvad Googlebot kan og ikke kan
- JavaScript-debugging til SEO — Find rendering-problemer
- Kritisk renderingsti — Hvad browseren gør før du ser noget
- 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
- Service Workers — Offline caching og PWA performance
- Static site generation — SSG og SEO-fordele ved statiske sider
- Web Components og SEO — Custom elements og søgesynlighed
- Web Workers — Parallel JavaScript uden main thread-blokning
Ofte stillede spørgsmål
- Hvordan opdager man at Googlebot ikke ser JavaScript-renderet indhold?
- Primære diagnose-værktøjer: (1) URL Inspection i Google Search Console — se den renderede HTML som Googlebot ser den, sammenlign med hvad du ser i browseren. (2) Mobile-Friendly Test viser renderet DOM. (3) Screaming Frog med JavaScript rendering aktiveret — crawl sitet og sammenlign indhold før og efter JS. Hvis kritisk indhold (H1, produktbeskrivelser, navigation) kun er til stede efter JS-execution, er der høj risiko for at Googlebot ikke indekserer det korrekt.
- Hvad er hydration-fejl og hvordan påvirker det SEO?
- Hydration-fejl opstår når serverside-renderet HTML ikke matcher clientside JavaScript-state ved første render. I React og Next.js vises typisk en console warning, og komponenten kan fejle med at blive interaktiv. For SEO er hydration-fejl kritiske fordi: (1) Googlebot kan modtage den serveren-renderede HTML (som er korrekt), men brugere ser fejl. (2) Core Web Vitals målinger påvirkes af layout shifts. (3) Hvis hydration fejler helt, kan dynamic content ikke opdateres.
- Hvorfor rangerer client-side rendered sider ofte dårligere?
- Client-side rendering (CSR) sender en tom HTML-skal der fyldes af JavaScript efter load. Problemerne: (1) Googlebot crawler i to faser — første crawl ser kun skallen, indekserings-rendering sker senere i kø. (2) Tunge JS-bundles overskrider Googlebots rendering-timeout. (3) Failed API-kald i CSR betyder intet indhold. (4) SEO-kritisk metadata (title, meta description, canonical) der sættes via JavaScript opdateres ikke altid før crawl. Løsning: Server-side rendering (SSR) eller Static Site Generation (SSG).
- Hvad er den hyppigste JavaScript-rendering fejl?
- Den hyppigste fejl er indhold der afhænger af client-side API-kald uden fallback. Eksempel: en e-commerce produktside hvor produktbeskrivelse hentes fra en API via JavaScript. Hvis API'et er langsomt eller fejler, ser Googlebot en tom side. Den anden hyppige fejl: navigation der kun renderes efter JavaScript — Googlebot kan ikke følge links, hvilket begrænser crawl-dybden. Løsningen er i begge tilfælde server-side rendering af kritisk indhold.
Placering i ordbogen
- API — Hvad er API og hvad betyder det for SEO?
- Browser rendering pipeline — Fra HTML til pixels
- Client-side rendering — CSR og SEO-udfordringer
- CSS containment — Isolér rendering og accelerér layout
- 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 bundle-optimering — Code splitting, tree shaking og analyse
- JavaScript og crawling — Hvad Googlebot ser og ikke ser
- JavaScript Rendering og SEO — Hvad Googlebot ser
- JavaScript SEO — Hvad Googlebot kan og ikke kan
- JavaScript-debugging til SEO — Find rendering-problemer
- Kritisk renderingsti — Hvad browseren gør før du ser noget
- 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
- Service Workers — Offline caching og PWA performance
- Static site generation — SSG og SEO-fordele ved statiske sider
- Web Components og SEO — Custom elements og søgesynlighed
- Web Workers — Parallel JavaScript uden main thread-blokning