Articles buried under their own weight
The pages that earn a publisher’s traffic were the slowest to read: ads, scripts and unoptimised media pushed mobile scores down to 31, LCP to 6.4 seconds, and the layout jumped while people were reading (CLS 0.35).
Loading rebuilt around the reading
I reordered how assets load so the article renders first, lazy-loaded the embeds and media nobody has scrolled to yet, and stripped the bloat — 32 requests removed, page weight down 64% — with the site’s ads and embeds still doing their job.
Instant articles, steady layout
Mobile 31 → 91, desktop 69 → 97. LCP from 6.4s to 1.8s and layout shift from 0.35 to 0.05 — article pages that render immediately and hold still while they’re read.