Hurtigere hjemmeside hjælp til en langsom hjemmeside

Accept-CH

Accept-CH er en HTTP-header der fortæller browseren hvilke Client Hints den må sende på fremtidige requests. Det kan forbedre billedvalg, men kræver styr på cache-varianter.

Skrevet af Kim Tetzlaff

Kort fortalt: Accept-CH er en response-header der siger: “Jeg (serveren) vil gerne have at du (browseren) sender de her Client Hints næste gang.” Det bruges typisk for at gøre billedservering smartere – men det er også et caching-problem forklædt som en performance-feature.

Hvad betyder Accept-CH?

Client Hints (se Client Hints) er ekstra headers som browseren kan sende, fx DPR eller viewport-bredde. Mange af dem er opt-in, fordi de kan øge fingerprinting-overfladen og fordi de påvirker caching.

Når du svarer med:

  • Accept-CH: ...

…fortæller du browseren hvilke hints du ønsker på fremtidige requests til samme origin (eller scope, afhængigt af policy).

Hvorfor er det vigtigt?

Bedre variantvalg (især billeder)

Med Accept-CH kan du få serveren til at vælge:

  • en passende billedstørrelse
  • et passende format

Det kan spare bytes og reducere decode-work. Især hvis billedet er LCP-elementet, kan det flytte LCP – men kun hvis resten af kæden er sund (TTFB, caching, render-blocking).

Cache-korrekthed (Vary)

Hvis dit svar afhænger af hints, skal caches vide det. Ellers kan en variant til én klient blive serveret til en anden.

Det er her du typisk skal forstå:

  • Vary
  • cache keys (CDN)
  • normalisering/bucketing af varianter

Typisk flow i praksis

  1. Første request kommer uden hints (browser ved ikke at den må sende dem).
  2. Server svarer med Accept-CH.
  3. Browseren kan herefter sende hints på senere requests, og serveren kan returnere bedre varianter.

Det betyder også: Accept-CH er sjældent “magic” for første load. Det er ofte en gentagne-besøg forbedring, eller noget der hjælper i brugerflows efter første side.

Typiske fejl

1) For mange hints

Hver ekstra dimension kan skabe flere varianter. Hvis du kombinerer mange hints, falder cache-hit-rate.

2) Ingen normalisering

Hvis du serverer forskellige varianter for hver mulig viewport-bredde, mister du caching. En bedre strategi er at mappe til få buckets.

3) Forveksle med srcset/sizes

Hvis du har kontrol over markup, er srcset/sizes ofte bedre, fordi caching bliver enkel og browseren vælger lokalt. Accept-CH er mest relevant når serveren skal træffe valg (fx billedproxy).

Relaterede begreber og næste skridt

FAQ

Sender browseren hints på den første request?

Typisk nej – Accept-CH fungerer som et opt-in. Browseren lærer først at den må sende hints efter at have set headeren, og sender dem på efterfølgende requests (eller når den har gemt politikken).

Skal jeg altid bruge Accept-CH for responsive billeder?

Nej. For mange sites er `srcset`/`sizes` den enkleste og mest cache-venlige løsning. Accept-CH er mest interessant når du serverer billeder dynamisk fra origin eller image service baseret på klientens kontekst.

Hvilken klassisk fejl ser du med Accept-CH?

At man aktiverer mange hints uden at normalisere varianter. Det giver lav cache-hit-rate og kan i værste fald gøre TTFB og LCP dårligere.

Eksterne kilder

Accept-CH er beskrevet som del af HTTP Client Hints.

Næste skridt fra begreb til handling

Guides og blogindlæg der matcher begrebets emne - ud fra fælles tags og sidens fokus.

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