Preload Resources
Preloading is a way to tell the browser "you will need this soon" so it can start the download earlier than it normally would. Used well, preload reduces late-discovery delays for the LCP element and key fonts. Used poorly, it competes with more important requests and slows the page down.
What Preload Does
When the browser sees a preload hint, it starts fetching that resource early:
preload-font.html
<link
rel="preload"
href="/fonts/brand-sans.woff2"
as="font"
type="font/woff2"
crossorigin
/>
What to Preload (Usually)
Preload is best for a very small set of assets:
- The LCP image (hero image) when it is discovered late
- One font file used for above-the-fold text (ideally self-hosted WOFF2)
- Occasionally a small, critical CSS file in setups that split CSS
caution
Preloading large lists of assets is a common mistake. Start with 1-2 preloads, measure, and only add more if you can prove benefit.
How to Pick Candidates
- Identify the LCP element in PageSpeed Insights (or DevTools Performance).
- Open DevTools -> Network and reload with cache disabled.
- If the LCP image/font is requested late (after CSS discovery or late JS), consider a preload.
- Re-test and confirm the resource moves earlier in the waterfall.
Implementing in Perfmatters
Perfmatters location:
WP Admin -> Perfmatters -> Assets -> Preloading
Guidelines:
- Prefer self-hosted fonts.
- Use
crossoriginfor fonts when required. - Avoid preloading assets that are already preloaded by your theme/cache plugin.
Manual Examples
Preload LCP image:
preload-hero-image.html
<link rel="preload" as="image" href="/images/hero.webp" />
Preload a self-hosted font:
preload-font-woff2.html
<link rel="preload" as="font" href="/fonts/inter.woff2" type="font/woff2" crossorigin />
Common Mistakes
| Mistake | Why It Hurts | Fix |
|---|---|---|
| Preloading too many files | Competes with critical requests | Keep the list very small |
| Preloading fonts that are not used above the fold | Wasted bandwidth | Preload only fonts that affect first render |
Missing crossorigin on font preload | Fetch may be duplicated or blocked | Add crossorigin when needed |
| Preloading an asset that is already inlined/preloaded | Redundant work | Inspect the <head> output and Network waterfall |
Quick Validation Checklist
- The preloaded resource appears earlier in the waterfall
- No duplicate downloads of the same font/image
- LCP element timing improves (or at least does not regress)
- No new CLS issues introduced by font swaps