01 — Purpose

Images dominate page weight

Good image delivery improves performance and accessibility — users download only what they need.

Unoptimised hero photos and retina PNGs are still the fastest way to blow budgets. Delivery covers format, size, dimensions, loading strategy, and alt text together.

See the images pattern for markup, alt, and review checklist detail.

02 — Principles

Right bytes for the viewport

Serve appropriate dimensions and formats — not the largest file in the CMS.

  • responsive images — srcset and sizes for art direction and density
  • modern formats (AVIF, WebP) with fallbacks where needed
  • compression appropriate to content — lossy for photos, careful for UI

03 — Practice

Delivery checklist

Stable, fast, accessible — together.

  • width and height (or aspect-ratio) on every content image — prevents CLS
  • lazy-load below-the-fold images — not LCP hero assets
  • decode async where it helps main thread — measure on target devices
  • meaningful alt — decorative images use empty alt, not missing alt
  • CDN caching and sensible cache headers for static assets
<img
  src="/images/hero-800.webp"
  srcset="/images/hero-400.webp 400w, /images/hero-800.webp 800w"
  sizes="(min-width: 48rem) 800px, 100vw"
  width="800"
  height="450"
  alt="Team reviewing frontend standards on a projector screen"
  fetchpriority="high"
/>

04 — Avoid

Image delivery failures

Oversized assets hurt everyone — especially on mobile networks.

  • 4000px-wide heroes displayed at 600px CSS width
  • lazy-loading the LCP image — delays largest paint
  • layout shift when images load without reserved space
  • loading every gallery thumbnail at full resolution upfront

05 — Close

Fast images help everyone

Less data, stable layout, usable alt text — one discipline, three wins.

Run image audits on templates with real content — not placeholder 20KB SVGs. Pair with Core Web Vitals and the performance review checklist.