Hurtigere hjemmeside hjælp til en langsom hjemmeside

Fonts uden CLS

Se hvordan font-display, preload, fallback fonts og font metrics påvirker CLS, og lær hvordan du gør tekst stabil fra første visning.

Skrevet af Kim Tetzlaff

Hvis tekst hopper rundt, føles et site hurtigt “billigt” – og det kan direkte påvirke både læsbarhed og klik. Font-loading er en af de mest almindelige årsager til CLS på content-sites, fordi fonts påvirker tekstens bredde og højde.

I denne artikel får du en praktisk tilgang til at gøre fonts stabile, uden at du behøver et komplekst setup. Den supplerer guiden om CLS og layout og ordbog: CLS - her er fokus på typografi, ikke på billeder eller embeds.

Målet: Læsbar tekst fra første sekund, minimal synlig forskel når webfonten lander, og ingen målbare layout-skift der frustrerer brugeren eller skader Core Web Vitals.

Hvorfor kan fonts give CLS?

Når en webfont loader sent, kan teksten ændre bredde/højde og skubbe layout.

Typisk sker det sådan:

  1. Browseren viser teksten med en fallback-font.
  2. Webfonten bliver downloadet.
  3. Teksten bliver re-renderet med webfonten.
  4. Hvis webfontens “metrics” (x-height, ascent, descent, bredde) afviger, flytter layout sig.

Det er ikke altid et stort hop, men selv små skift kan give CLS – især hvis skiftet sker i en hero-tekst, en navigation eller en knap.

Hvad er FOIT og FOUT?

To klassiske mønstre:

  • FOIT (Flash of Invisible Text): teksten er usynlig mens font loader
  • FOUT (Flash of Unstyled Text): teksten vises med fallback og skifter senere

De fleste moderne strategier går efter at vise tekst tidligt, men med minimal ændring når webfonten lander.

Hvilken indflydelse har font-problemer?

Når fonts giver CLS, rammer det:

  • læsbarhed (man mister linjen)
  • interaktion (elementer flytter sig)
  • oplevet kvalitet (sitet virker ustabilt)

Fonts kan også påvirke performance bredt, fordi mange store fontfiler øger netværk og CPU-arbejde.

Praktiske greb

  • Brug font-display: swap
  • Vælg en fallback-font med lignende metrics
  • Begræns antal weights og varianter

Flere tiltag (hvis du vil længere)

  • Preload kun fonts der bruges i første viewport
  • Subsetting hvis fontfilerne er store
  • Undgå unødvendige italics/weights

En praktisk opskrift (trin-for-trin)

Hvis du vil gøre det her systematisk og hurtigt, kan du følge denne proces.

Trin 1: Beslut hvor mange fonts du reelt har brug for

På de fleste content-sites er det nok med:

  • 1 fontfamilie til brødtekst
  • evt. samme familie til overskrifter
  • 2 weights (fx 400 + 600)

Hvis du ender med 6 weights, italics og flere familier, får du ofte:

  • mere netværk (flere fontfiler)
  • mere risiko for skift (CLS)
  • mere kompleksitet i CSS

Trin 2: Gør baseline stabil

Start med:

  • font-display: swap
  • en fallback-font der ligger tæt på din webfont

Målet er at FOUT bliver så “usynlig” som muligt.

Trin 3: Reservér stabilitet via fallback-metrics

Selv med en god fallback kan der være små forskelle. Det vigtigste er at reducere ændringen i:

  • linjehøjde
  • tekstbredde
  • x-height

Hvis du ser hop, er det et tegn på at fallback og webfont ikke matcher godt nok.

I moderne CSS kan du arbejde mere målrettet med metric alignment mellem fallback og webfont - fx size-adjust, ascent-override, descent-override og line-gap-override@font-face (understøttelse varierer mellem browsere; verificér i dine mål-browsere). Idéen er at få fallback’en til at fylde cirka samme bounding box som webfonten, så skiftet bliver næsten usynligt. Det er mere præcist end blot at vælge “en anden sans-serif”.

Trin 4: Preload kun hvis discovery er problemet

Hvis fonten først loader sent, og du kan se det i waterfall/performance trace, kan preload give mening.

Men preload kun:

  • de få fontfiler der bruges i første viewport

Trin 5: Subsetting hvis filer er store

Hvis dine fontfiler er store, kan subsetting hjælpe. Til dansk er “latin” ofte nok (men vær opmærksom på specialtegn). Store filer betyder længere download og ofte senere “swap” - jo senere webfonten kommer ind, jo større risiko for synlig forskel. Se også ordbog: font-subsetting og font-display.

Trin 6: Undgå unødige font-familier og vægte

Hver ekstra weight eller italic er typisk en ekstra fil og et ekstra punkt hvor layout kan ændre sig. Mange designs kan klare sig med regular + semibold. Færre filer giver ofte både bedre performance og mere forudsigeligt layout.

Typiske scenarier (og hvad man gør)

Scenario A: Navigationen hopper når fonten loader

Typisk årsag:

  • fallback-font er smallere/bredere

Løsning:

  • vælg fallback tættere på webfont
  • brug en mere stabil font-size/line-height

Scenario B: Hero-overskriften “skubber” resten ned

Typisk årsag:

  • overskrift har stor størrelse, så små metric-forskelle giver stort layout-skift

Løsning:

  • preload hero-font (hvis relevant)
  • brug fallback med næsten samme metrics

Scenario C: CLS er lav i lab, men høj i felt

Typisk årsag:

  • rigtige brugere har langsommere netværk/enheder
  • fonten loader senere i virkeligheden

Løsning:

  • test på mobilnetværk
  • reducer fontantal/weights
  • overvej at bruge system fonts hvis målet er maksimal stabilitet

Sådan tester du om fonts skaber CLS

  • Brug DevTools Performance og kig efter “Layout Shifts”
  • Simulér langsomt netværk, så font-loading bliver tydeligere

Preload: hvornår det hjælper - og hvornår det skader

Hjælper når én kritisk .woff2 bruges til hero-overskriften og I ellers ville vente på CSS-kæden - og I har målt at filen starter sent. Brug preload med korrekt crossorigin som matcher @font-face.

Skader hvis I preload’er mange snitte, forkerte filer, eller konkurrerer med LCP-billedet om samme tidlige båndbredde. Start med nul preload og tilføj kun med før/efter-waterfall.

Mini-checkliste

  • Fallback-font matcher webfontens metrics så godt som muligt
  • font-display valgt bevidst (ordbog)
  • Font subsetting overvejet ved store filer
  • CLS tjekket med throttling på mobil

Relateret

Relaterede blogindlæg

Cookie banner og Core Web Vitals: den oversete årsag til dårlig brugeroplevelse

2026-03-24

Se hvordan cookie bannere og consent scripts kan påvirke load, layout og interaktion, og lær hvordan du undgår at de ødelægger brugeroplevelsen.

5 grunde til at din hjemmeside er langsom og hvad du gør ved det

2025-11-14

Se de mest almindelige årsager til en langsom hjemmeside, hvordan du spotter dem, og hvilke ændringer der typisk giver mest effekt først.

Range request i praksis: når 206 Partial Content ikke sker (og hvad det koster)

2026-04-02

En feltguide til at spotte når browseren forsøger at bruge Range request, men ender med at få hele filer retur (200 i stedet for 206). Lær at se det i DevTools og ret fejl i proxy/CDN/origin.

Hvordan du spotter render delay (uden at stirre på score)

2026-04-01

Render delay er ofte grunden til at LCP bliver 1–2 sekunder for sent, selv når TTFB ser fin ud. Her er metoden til at finde årsagen hurtigt – og vælge den rigtige type fix.

Reverse proxy og TTFB: sådan finder du cache-, TLS- og routing-fejl i praksis

2026-03-30

Reverse proxy-laget kan være årsagen til høj TTFB, mystiske cache misses og 502/504-fejl. Lær hvad du skal kigge efter i headers og waterfall, og få et praktisk debug-flow.

Vary-header og caching: undgå forkert indhold og lav cache-hit-rate

2026-03-30

Vary bestemmer hvornår caches skal gemme flere varianter af samme URL (fx gzip vs brotli eller dansk vs engelsk). Lær de typiske fejl, og hvordan du tester med headers og curl.

FAQ

Skal man altid bruge webfonts?

Nej. System fonts kan være meget hurtige og stabile. Men hvis typografien er en vigtig del af designet, kan webfonts stadig være et godt valg med korrekt opsætning.

Hvad er det vigtigste, hvis jeg kun gør én ting?

Vælg en fallback-font der matcher webfontens metrics bedst muligt. Det reducerer layout-skift mest effektivt i praksis.

Hjælper `font-display: optional`?

`optional` kan gøre oplevelsen mere stabil på langsomme forbindelser, fordi browseren kan vælge at blive på fallback-fonten. Til gengæld får nogle brugere aldrig webfonten. Det er et bevidst trade-off mellem stabilitet og brand-typografi.

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