1) Caching that actually works
Use full-page caching for anonymous traffic and object caching for database calls. Configure cache preloading (sitemaps are perfect seeds) and make sure important pages are always warm after deploys.
- Page cache: server-level (Nginx/Apache with fastcgi/proxy cache) or a known plugin.
- Object cache: Redis/Memcached to reduce repeated queries.
- Exclude: cart, checkout, account, and query-string heavy endpoints.
2) Images: light by design
Start with the right dimensions and formats, not just compression after the fact. Use responsive
srcset/sizes, convert to WebP/AVIF, and lazy-load non-critical media below the fold.
- Authoring rules: no 4000px hero uploads. Size to layout.
- Formats: WebP/AVIF for photos, SVG for icons/logos.
- Delivery: serve scaled variants; lazy-load galleries and embeds.
3) Themes & plugins: less is more
Pick a lean, maintained theme and audit plugins quarterly. Each plugin can add DB calls, scripts, and styles. Replace multipurpose bundles with single-task utilities when possible.
- Remove unused page builders and slider packs.
- Dequeue scripts/styles not used on a page.
- Load analytics with
deferand respect consent where required.
Good defaults
- Limit Google Fonts variants; self-host if possible
- Inline tiny critical CSS; defer the rest
- Combine/minify cautiously, do not break HTTP/2
Common pitfalls
- Loading everything site-wide via the theme
- Huge hero videos with no poster or lazy-load
- Third-party widgets blocking the main thread
4) Hosting & PHP runtime
Right-size your hosting and keep PHP/WordPress up to date. A tuned stack (OPcache, HTTP/2 or HTTP/3, TLS 1.3) and a CDN for static assets will outperform “unlimited” shared plans every time.
- Runtime: latest stable PHP with OPcache; monitor hit rate.
- HTTP: enable compression (gzip/br), keep-alive, and caching headers.
- CDN: offload images, CSS/JS, and fonts to a global edge.
5) Core Web Vitals in practice
CLS, LCP, and INP improve when you stabilize layout and reduce render-blocking work. Reserve image space with width/height, use system fonts or a quick font-display strategy, and keep the main thread free from long JS tasks.
- LCP: optimize the hero image and server TTFB.
- CLS: set explicit sizes for images/ads; avoid late-injected UI.
- INP: reduce heavy JS; split code; avoid synchronous third-party scripts.
6) Monitoring & guardrails
Measure with both lab and field data. Run Lighthouse/Pagespeed for regressions and track real-user data (RUM) to see what customers feel on 3G/4G devices.
- Automate checks on deploy (thresholds for LCP/CLS/INP).
- Alert when page weight or requests jump unexpectedly.
- Version your performance budget and enforce it in PR reviews.
Baseline checklist you can apply this week
- Enable page cache + Redis object cache.
- Convert media to WebP/AVIF and set responsive sizes.
- Trim plugins; remove unused builders/widgets.
- Self-host critical fonts or cut variants; use
font-display: swap. - Deliver assets via CDN; ensure proper cache headers.
- Set performance budgets and test on a throttled mobile profile.
Want us to implement this baseline?
We set up caching, image pipelines, CDNs, and Core Web Vitals monitoring, then keep it fast as your content grows.
Request a WordPress speed audit