Hurtigere hjemmeside hjælp til en langsom hjemmeside

Sådan læser du en waterfall og finder flaskehalse i load

Lær at læse en waterfall korrekt og find problemer med TTFB, LCP, render blocking og tredjepart, så du kan prioritere den rigtige optimering.

Skrevet af Kim Tetzlaff

En waterfall er et af de bedste værktøjer til performance-arbejde, fordi den viser rækkefølgen: hvad der starter først, hvad der blokerer, og hvad der venter.

Hvis du kun kigger på en score, misser du ofte årsagen. En waterfall tvinger dig til at svare på de vigtigste spørgsmål:

  • Kom HTML hurtigt? (TTFB)
  • Hvornår blev CSS og kritisk JS hentet?
  • Hvornår startede LCP-ressourcen?
  • Er der render-blocking?
  • Er der tredjepart der stjæler “early bandwidth”?

Artiklen her er et praktisk kompas: du kan bruge den i Chrome DevTools (Network), i Lighthouse’s “network”-visning, eller i WebPageTest. Den supplerer Lighthouse vs CrUX - waterfall forklarer hvorfor en side opfører sig som den gør i én kørsel; feltdata viser om problemet er repræsentativt for brugerne.

Start med det grove

  1. Er TTFB høj?
  2. Hvad er LCP-elementet, og hvornår starter download?
  3. Er der render-blocking CSS/JS?

Fire typiske mønstre (hvad du ser → hvad det betyder)

Mønster i waterfallTypisk betydningNæste skridt
Lang waiting/TTFB på dokumentetServer, DB, manglende page cache, cold originTTFB/cache-guide, Cache-Control
LCP-billede starter sent eller efter mange requestsForkert prioritet, for sent discovery, eller for mange domæner foranPreload med måde, færre hops, LCP-guide
Tyk blok af CSS/JS før første paintRender-blockingFjern render-blocking, defer/async
Mange parallelle requests til tredjepart tidligtBandwidth/kø til analytics, tags, fontsUdskyd, self-host hvor muligt, reducer antal domæner

Når du har navngivet mønsteret, undgår du at «optimere billeder» mens dokument-HTML stadig er flaskehalsen.

Hvad er en waterfall egentlig?

Waterfall’en (typisk i WebPageTest eller DevTools Network) viser hver request som en række faser:

  • DNS lookup
  • connection/TLS
  • waiting/TTFB
  • download

Det der gør en waterfall værdifuld er ikke bare “hvor lang tid tog det”, men:

  • om requests er serialiseret (venter på hinanden)
  • hvad der er prioriteret af browseren
  • hvilke requests der ligger i critical path

Hvad betyder felterne i praksis? (hurtig oversættelse)

Når du kigger på en request-linje i en waterfall, vil du typisk se noget a la:

  • DNS: tid brugt på at finde IP-adresse
  • Connect/TLS: tid til at etablere forbindelse og handshake
  • Waiting/TTFB: tid fra request sendes, til første byte kommer tilbage
  • Download: tid til at hente selve responsen

Det hjælper at tænke sådan her:

  • Hvis DNS/Connect/TLS er højt: latency/forbindelse – preconnect kan nogle gange hjælpe, men CDN/edge og færre domæner hjælper ofte mere.
  • Hvis TTFB er højt: server/origin/caching er ofte roden.
  • Hvis Download er højt: filstørrelse og komprimering (Brotli/minificering) eller billedformat/dimensioner.

Step-by-step metode (hurtig og robust)

Step 1: Find dokument-requesten (HTML)

Start med den første request til dokumentet.

Spørg:

  • Er TTFB høj? (waiting er stor)
  • Er der redirects før dokumentet? (unødvendig latency)

Hvis HTML er langsom, giver det sjældent mening at finpudse billeder først. Fix TTFB/caching tidligt.

Step 1.5: Kig efter redirects og “unødvendige hop”

Redirects kan være usynlige i en score, men tydelige i waterfall:

  • http → https
  • non-www → www (eller omvendt)
  • trailing slash redirects

Hvert hop koster typisk mindst én roundtrip. På mobil kan det være dyrt. Målet er: så få redirects som muligt på landingssider.

Step 2: Find hvad der blokerer rendering

I de første sekunder leder du efter:

  • CSS der loader tidligt og er stor
  • JS i head uden defer der kan blokere parsing

Hvis du ser store CSS/JS requests helt tidligt, er der en stor chance for at FCP/LCP bliver dårligere.

Step 3: Find LCP-ressourcen og dens starttidspunkt

LCP er ofte et hero-billede. I waterfall’en er det vigtigste:

  • hvornår starter download?
  • var der noget der burde have startet den tidligere? (fx preload)
  • er billedet for stort? (download tiden er lang)

Hvis LCP først starter sent, er det ofte fordi browseren først “opdager” ressource sent: HTML/CSS skal parses før billedet findes.

Step 3.5: Afklar om det er “discovery” eller “download”

Det er to helt forskellige problemer:

  • Discovery-problem: LCP-ressourcen starter sent (browseren opdager den sent).
  • Download-problem: LCP-ressourcen starter tidligt, men tager lang tid at hente.

Discovery løses ofte med:

  • flyt hero indhold tidligere i HTML
  • undgå at hero-billede kun findes via tung CSS/JS
  • målrettet preload

Download løses ofte med:

  • mindre fil (AVIF/WebP, bedre dimensioner)
  • bedre caching
  • CDN/edge

Step 4: Kig efter tredjepart tidligt

Tredjepart kan være:

  • analytics
  • consent platform
  • chat widgets
  • AB-test

Hvis de loader tidligt, kan de:

  • øge TTFB (hvis de påvirker server-rendering)
  • stjæle netværksprioritet
  • skabe CPU-arbejde og påvirke INP

Step 5: Tjek cache og gentagne besøg

Lav to runs:

  • kold cache
  • varm cache

Hvis varm cache stadig er dårlig, er problemet ofte:

  • HTML ikke cached
  • server/DB langsom
  • render-blocking / CPU (uafhængigt af cache)

Et “diagnose flow” du kan bruge hver gang

Hvis du vil have en fast rutine, kan du bruge denne rækkefølge:

  1. HTML først: er TTFB høj, eller er der redirects?
  2. Render-blocking: ligger der stor CSS/JS tidligt?
  3. LCP: starter LCP-ressourcen tidligt nok?
  4. Størrelser: er hero-billedet og kritiske assets for store?
  5. Tredjepart: stjæler de tidligt båndbredde/CPU?
  6. Repeat view: bliver det bedre med varm cache? Hvis ikke, mangler caching eller du har CPU/rendering-problemer.

Kig efter klassikere

  • Store billeder uden responsive størrelser
  • Mange tredjeparts requests tidligt
  • Lange “stille perioder” før noget sker

Typiske mønstre og hvad de betyder

“Alt venter på HTML”

Hvis alt starter sent, er HTML/TTFB problemet. Fokus: caching, server, CDN/edge.

“CSS er kæmpe og tidlig”

Hvis et stort stylesheet ligger meget tidligt, kan det blokere rendering. Fokus: critical CSS, trim CSS, split.

“LCP-billedet starter først efter 2–3 sek.”

Ofte et discovery-problem:

  • billedet findes sent i DOM
  • hero billedet ligger i CSS background uden preload
  • eller scripts ændrer DOM før hero kommer frem

“Mange tredjepart requests i første sekund”

Fokus: udskyd, fjern, eller begræns tredjepart. Det hjælper ofte både LCP og INP.

“LCP-billedet er stort, men kommer fra cache på repeat view”

Hvis repeat view er markant bedre, er caching sandsynligvis OK. Så kan du fokusere på:

  • billedstørrelse/dimensioner for first view
  • preload/discovery hvis download starter sent

“Alt ser fint ud, men brugeren siger siden er ‘tung’”

Hvis waterfall ikke viser store netværksproblemer, kan flaskehalsen være:

  • CPU (store bundles, hydration, long tasks)
  • INP/interaction path

Så skal du over i DevTools Performance og kigge på main thread. Se INP-artiklen og guiden om JavaScript når du går fra netværk til CPU.

En simpel prioritering du kan bruge hver gang

  1. Fix redirects og TTFB (HTML)
  2. Fix render-blocking CSS/JS
  3. Fix LCP-ressource (format, størrelse, prioritet)
  4. Fix tredjepart
  5. Finpuds caching og preload/preconnect (med omtanke)

WebPageTest: filmstrip og sammenligning

I WebPageTest får du ofte filmstrip og video af visningen: det er nyttigt når “alt ser fint ud” i tal, men siden stadig føles langsom - du kan se hvornår første meningsfulde pixels vises. Brug first view vs repeat view og forskellige lokationer for at efterligne CDN-edge og brugere langt fra din origin.

Relateret

Relaterede blogindlæg

FAQ

Er DevTools Network nok, eller skal man bruge WebPageTest?

DevTools er godt til hurtige checks. WebPageTest er ofte bedre til stabil reproducering, prioritering og video/filmstrip. Begge er nyttige – brug DevTools til hurtigt at forstå en side, og WPT til at sammenligne før/efter på samme profil.

Skal man altid preload’e LCP-billedet?

Nej. Preload hjælper især ved discovery-problemer (billedet opdages sent). Forkert eller for meget preload kan stjæle båndbredde fra vigtigere downloads. Brug det målrettet og mål i waterfall.

Hvad hvis jeg har et CDN – skal jeg stadig kigge på waterfall?

Ja. CDN kan forbedre TTFB og asset-levering, men waterfall afslører stadig om HTML faktisk caches ved edge, om hero/LCP starter tidligt, og om render-blocking eller tredjepart skaber delays.

Næste skridt i samme emne

Fortsæt fra forklaring til handling med guides, emner og ordbog.

Om forfatteren

Kim Tetzlaff

Kim skriver og vedligeholder indhold på hurtigere-hjemmeside.dk med fokus på målelig performance, Core Web Vitals og teknisk SEO. Målet er at gøre optimering konkret: hvad der faktisk flytter tal i feltdata, og hvordan du finder den korteste vej fra symptom til fix.

Kim Tetzlaff