Measure before touching
No measurement, no optimization. Check two numbers: TTFB (server response time, should be under 1 second) and LCP (when the main content shows, target under 2.5 seconds). Free tools: PageSpeed Insights and your browser's Network tab. Write down the baseline values to compare later.
Cache: 80% of the gain
In WordPress, a free cache plugin (LiteSpeed Cache, WP Super Cache) turns pages that take seconds to generate into files served instantly. Enable it, exclude cart and user account, and measure again. In stores we've audited, this step alone halves load time.
Images: the other big weight
Upload photos in WebP and at real display size (not a 4000px photo shown at 400px). A product image should weigh under 200 KB. If you already have hundreds uploaded, optimize them in bulk before regenerating thumbnails.
When the host is to blame
If TTFB tops 2 seconds with the site optimized, the bottleneck is the server: oversold shared plans or no OPcache or object cache. Ask your provider to enable OPcache and Redis; if they can't, it's time to migrate. No plugin compensates for slow hosting.
FAQ
Does cache break the store? Not if you exclude cart, account and checkout, which is standard.
Do I lose quality with WebP? Not visibly; it weighs 30% less than JPEG at equal quality.