Context

A merchant's organic traffic flattened after Google rolled out CWV as a ranking signal. Category pages scored red on mobile LCP. Their agency suggested replatforming; budget said no.

Lucid brought me in for a focused performance pass on the existing WooCommerce theme + plugin stack.

What I built

Measured first, then fixed in priority order:

  1. Images - WebP delivery for catalog thumbs, explicit width/height to kill CLS, lazy load below fold
  2. Scripts - deferred non-critical plugin JS on category templates only (not global blind defer)
  3. Queries - identified related-products plugin running N+1 queries; replaced with cached block on category pages
  4. CDN - cache headers for static assets; excluded cart/checkout from aggressive cache

Before/after Lighthouse reports per template type (home, category, product, checkout).

Technical approach

Changes shipped as child theme + small custom plugin so parent theme updates stayed possible. Each fix isolated in its own commit for rollback.

Tested on real catalog size-not three demo products. Staging clone with production DB snapshot.

Outcomes

  • Mobile LCP on category pages under 2.5s (from ~4.8s) on median 4G throttling
  • Merchant kept existing theme and checkout plugins
  • Monitoring checklist handed to their VA: what to re-check after plugin updates

Stack

WooCommerce · WordPress · PHP · Lighthouse · Query Monitor · CDN config