Chapter 13Paid
Performance
LCP under 1.8 seconds on mobile, and the five things that actually cause a content site to miss it. Inlined CSS, self-hosted fonts, modern image formats, code splitting and static-first rendering.
5 min read · updated 2026-07-26· last reviewed 2026-07-26
On a content-heavy site, a failed mobile LCP almost always traces to one of five things. Knowing the list turns performance work from an open-ended optimisation exercise into a checklist.
- A render-blocking stylesheet.
- An external font request on the critical path.
- An oversized image in the hero.
- A client-side data fetch the first paint depends on.
- JavaScript that has to execute before content appears.
The rest of "Performance"
985 words covering 7 sections, with the implementation code for 9 checks. The table of contents below is the full outline, so you can see exactly what is behind this.
Already bought it? Read it in your library.
Unlock with the Playbook$14930 day refund, no questions.
What this chapter covers
- The five causes
- The principle
- Render-blocking CSS
- The principle
- The implementation
- Fonts
- The principle
- The implementation
- Images
- The principle
- The implementation
- Code splitting and animation
- The principle
- The implementation
- Static-first, and why it is a business requirement
- The principle
- Verifying it
- Layout shift
- The principle
Checks this chapter covers
Each one has a command you can run against your own site.
- →LCP under 1.8 seconds on mobile for every templateperf-lcp-under-1800
- →Route CSS is inlined so it does not block first paintperf-no-render-blocking-css
- →Fonts are self-hosted with display swap and subsetting, and zero external font requestsperf-fonts-self-hosted
- →Images served as AVIF or WebP with correct sizes and a long cache TTLperf-images-modern-formats
- →Non-critical interactive components are code-splitperf-code-split-noncritical
- →Animation libraries are imported through their minimal namespace on marketing pagesperf-animation-namespace
- →Static assets carry a one-year immutable cache header, with versioned URLsperf-immutable-assets
- →No layout shift from the sticky CTA, the cookie banner or web fontsperf-no-cls-from-chrome
- →Every marketing and programmatic page is prerendered, so a database outage cannot take down the funnelperf-static-first