Artikel

Responsive images — srcset, sizes og art direction

Responsive images via srcset og sizes lader browseren vælge det optimale billede til hver skærm. Et mobilbillede på 400px behøver ikke et 1200px-billede. Reducerer båndbredde og forbedrer LCP.

Responsive images er HTML-teknikken der serverer det optimale billede til hver brugers enhed baseret på skærmstørrelse, pixel density og forbindelseshastighed. En 1200px bred JPEG på 250 KB serveret til en mobilskærm på 390px er 300% over hvad der er nødvendigt — og den unødvendige download-tid rammer direkte LCP. For SEO er responsive images et af de mest impactfulde performance-optimeringer fordi billeder typisk er det primære LCP-element.

srcset og sizes — resolution switching

srcset angiver de tilgængelige billedvarianter med deres bredde. sizes fortæller browseren hvor bred billedet vises ved forskellige viewports:

<img
  src="billede-800.webp"
  srcset="
    billede-400.webp  400w,
    billede-800.webp  800w,
    billede-1200.webp 1200w,
    billede-1600.webp 1600w
  "
  sizes="
    (max-width: 480px) 100vw,
    (max-width: 768px) 90vw,
    760px
  "
  alt="Beskrivelse"
  width="800"
  height="533"
>

Hvad sker der: En mobiltelefon med 390px viewport og 2x DPR beregner at den har brug for 780px effektive pixels og vælger billede-800.webp. En desktop med 1440px viewport og 1x DPR ser at billedet vises i 760px og vælger billede-800.webp. En desktop med 2x DPR vælger billede-1600.webp.

src er fallback for browsere der ikke understøtter srcset (alle moderne browsere understøtter det).

picture — art direction og format-switching

<picture> bruges når motivet skal beskæres forskelligt ved forskellige skærmstørrelser, eller til at servere moderne formater med fallback:

<!-- Format-switching: AVIF → WebP → JPEG -->
<picture>
  <source
    type="image/avif"
    srcset="hero-400.avif 400w, hero-800.avif 800w, hero-1200.avif 1200w"
    sizes="(max-width: 768px) 100vw, 1200px"
  >
  <source
    type="image/webp"
    srcset="hero-400.webp 400w, hero-800.webp 800w, hero-1200.webp 1200w"
    sizes="(max-width: 768px) 100vw, 1200px"
  >
  <img src="hero-1200.jpg" alt="Hero" width="1200" height="630">
</picture>
<!-- Art direction: portrait på mobil, landscape på desktop -->
<picture>
  <source
    media="(min-width: 768px)"
    srcset="person-landscape.webp"
    width="1200" height="500"
  >
  <img
    src="person-portrait.webp"
    alt="Person"
    width="400" height="600"
  >
</picture>

width og height er obligatoriske

width og height-attributter på <img> er ikke valgfrie fra et performance-perspektiv. Browseren bruger dem til at beregne aspect ratio og reservere plads i layoutet inden billedet er downloadet — det eliminerer CLS (Cumulative Layout Shift).

<!-- Dårligt — layout shift ved indlæsning -->
<img src="billede.webp" alt="...">

<!-- Godt — browseren reserverer pladsen -->
<img src="billede.webp" alt="..." width="800" height="533">

CSS kan stadig kontrollere billedets visuelle størrelse — width-attributten er kun en hint til layout-beregning.

LCP-billede: fetchpriority

Det primære LCP-billede skal aldrig være lazy-loaded og bør have fetchpriority="high":

<img
  src="hero.webp"
  srcset="hero-400.webp 400w, hero-800.webp 800w, hero-1200.webp 1200w"
  sizes="100vw"
  fetchpriority="high"
  alt="Hero"
  width="1200"
  height="630"
>

Billeder under fold bruges loading="lazy" — de downloades kun når de er ved at blive synlige.

Generering af billedvarianter

Moderne frameworks og build-tools genererer srcset-varianter automatisk:

Andre artikler i samme emne

Ofte stillede spørgsmål

Hvad er forskellen på srcset med w-descriptor og x-descriptor?
w-descriptor (`srcset='img-400.webp 400w, img-800.webp 800w'`) angiver billedets faktiske bredde i pixels — browseren beregner selv hvad der er optimalt baseret på viewport og DPR. x-descriptor (`srcset='img.webp 1x, img-2x.webp 2x'`) angiver pixel density — brug x-descriptor til ikoner og logoer, w-descriptor til indholdsillustrations-billeder.
Hvornår bruger man picture vs img med srcset?
`<img srcset>` bruges til resolution switching — samme motiv, forskellige størrelser. `<picture>` bruges til art direction — forskelligt motiv eller beskæring ved forskellige skærmstørrelser, eller til at servere moderne format med fallback (AVIF → WebP → JPEG).
Hvad er det vigtigste responsive images-fix for LCP-optimering?
Sørg for at LCP-billedet aldrig er lazy-loaded og har fetchpriority='high'. Brug korrekte sizes-attributter så browseren vælger den rigtige billedvariant fra start — forkert sizes medfører at browseren downloader et for stort billede. Tilføj width og height på img-elementet for at undgå CLS. Disse tre tiltag tilsammen er de mest impactfulde for LCP.
Understøtter alle browsere AVIF-formatet?
AVIF understøttes i Chrome, Firefox og Edge (alle moderne versioner). Safari tilføjede support fra Safari 16. For optimal kompatibilitet bruges picture-elementet med AVIF som første source, WebP som anden og JPEG/PNG som fallback — browseren vælger det bedste understøttede format automatisk.
Hvad er den hyppigste fejl SEO-praktikere laver med srcset og sizes?
Den hyppigste fejl er at udelade sizes-attributten eller sætte den forkert. Uden sizes antager browseren at billedet fylder 100vw (hele vinduet) og vælger en unødvendig stor billedvariant. Et billede der reelt vises i 600px bred kolonne med sizes='100vw' downloader en 1200px variant på mobil med 2x DPR — dobbelt så mange bytes som nødvendigt. Korrekte sizes-værdier der matcher det faktiske CSS-layout er afgørende for at browserens ressource-valg er optimalt fra første load.

Placering i ordbogen

Responsive images — srcset, sizes og art direction