Preload and Prefetch
Two resource hints with opposite priorities — preload for what this page needs now, prefetch for what the next page might need.
Preload and Prefetch are <link>-tag hints that tell the browser to fetch a resource before the part of the page or navigation that would normally trigger it, but they carry opposite priority and opposite time horizon. <link rel="preload"> says: this page needs this resource, at high priority, right now — a hero image referenced only inside CSS background-image, a web font the browser wouldn't otherwise discover until it parsed the stylesheet that names it. It exists to close discovery gaps in the Critical Rendering Path, where the resource is needed early but the browser's normal parse order would find it late.
<link rel="prefetch"> says the opposite: this resource might be needed on the next navigation, fetch it at low, idle priority when bandwidth is free, and don't let it compete with anything the current page actually needs. A single-page app prefetching the JS chunk for a route the user is likely to click next is the canonical case — it's speculative, so it's priced accordingly.
The trap with preload is a mismatched as attribute or missing crossorigin on font preloads: get either wrong and the browser fetches the resource twice — once for the preload, once when the real reference is discovered — because it can't recognize the two requests as the same resource. A preload that isn't actually used within a few seconds also earns a browser console warning, since an unused preload wasted bandwidth and priority that something real needed.
Both hints are advisory, not commands — the browser can decline to act on either under memory or bandwidth pressure — which is part of why they're a Performance Budget lever, not a correctness guarantee.
See also4
Critical Rendering Path
The sequence of steps between receiving HTML and painting pixels, and everything that blocks it.
Web Platform18 connections
Performance Budget
A committed numeric ceiling on a page's cost, enforced automatically.
Web Platform26 connections
HTTP Caching
The set of headers that let a browser or intermediary reuse a previous response instead of re-fetching it.
Web Platform18 connections
Core Web Vitals
Google's small set of user-centered performance metrics: loading, interactivity, and visual stability.
Web Platform28 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from6
- Back-Forward CacheWeb Platform
Browsers keeping a whole page frozen in memory when you navigate away, so pressing Back restores it instantly, unless something on the page makes it ineligible.
- ES ModulesWeb Platform
JavaScript's standard module system of import and export statements, whose static structure enables tree shaking and whose long coexistence with CommonJS caused years of tooling pain.
- ETagWeb Platform
An opaque fingerprint of a response's content that lets a client ask a server whether it's changed without re-downloading it.
- HTTP CachingWeb Platform
The set of headers that let a browser or intermediary reuse a previous response instead of re-fetching it.
- HTTP Status CodeWeb Platform
The three-digit number at the start of every HTTP response that tells the client, caches, crawlers and monitoring what happened, grouped into five classes by the first digit.
- Responsive ImagesWeb Platform
Offering the browser several versions of an image so it can download the smallest one that still looks sharp on this screen at this layout size.