Most “speed up WordPress” advice is a plugin list. Plugins help, but the biggest wins come from what your theme loads, in what order, and how images are sized.
1. Fix the largest contentful paint element first
On article pages the LCP element is nearly always the featured image or the H1. Serve modern formats, set explicit width and height, and never lazy-load it.
2. Stop layout shift at the source
Every image, ad slot and embed needs reserved space:
.thumb { aspect-ratio: 16 / 9; }
.thumb > img { width: 100%; height: 100%; object-fit: cover; }
Ad slots are the number one cause of layout shift on magazine sites.
3. Ship less CSS
Page builders routinely load 300KB of CSS to render a text article. A hand-built theme with CSS variables usually ships under 40KB.
4. Defer everything not needed for the first screen
Share buttons, comments, analytics and chat widgets can load on interaction or scroll.
5. Serve responsive images properly
Register sensible sizes, let WordPress output srcset, and make sure your CDN delivers WebP or AVIF.
6. Cache at the edge
Full-page caching plus an edge CDN turns a 600ms response into 40ms for most visitors.
7. Audit fonts
Two families, two weights each, font-display swap, and preconnect to the font host. Subset per script for multilingual sites.
Measure the right thing
Lab scores are a debugging tool. Ship the fixes, then watch 28-day field data in Search Console.