Skip to main content

How to Speed Up Your E-Commerce Store: Techniques That Actually Work

Oskars B.
How to Speed Up Your E-Commerce Store: Techniques That Actually Work

Every second of delay costs you money. The relationship between load time and conversion rate is well-established, though the exact numbers vary by industry and audience. What we consistently see on client audits is that stores with sub-2-second load times outperform slower competitors by meaningful margins. For a store doing 50,000 EUR in monthly revenue, shaving 1.5 seconds off load time tends to produce measurable conversion lifts in the 5-12% range. Here's how to actually get there.

Image Optimization

Images are typically the largest assets on any e-commerce page, often 60-80% of total page weight. This is always the first place we look. The gains are usually large and require no architectural changes.

Convert product images to WebP format. WebP files run 25-35% smaller than equivalent JPEG files with no visible quality loss, and all modern browsers have supported WebP since 2020. Implement lazy loading so images below the fold load as the user scrolls rather than all at once on page load. Use the <picture> element or srcset attribute to serve different image sizes based on the user's screen width. And compress aggressively: product images can typically be compressed to 80% quality without any perceptible difference. Tools like Sharp (Node.js), ImageMagick, or Cloudinary handle this in automated pipelines.

On WooCommerce specifically, the Imagify plugin (version 2.x) handles WebP conversion and lazy loading together, though we've found the Cloudinary integration more reliable for stores with large catalogues that update frequently.

Caching Strategies

Caching stores the results of expensive operations and serves them directly on repeat requests. Done well, it's the single largest performance multiplier available to you.

Browser Caching

Set appropriate Cache-Control headers for static assets. CSS, JavaScript, and images should carry long cache lifetimes (one year) with versioned filenames so updates invalidate immediately. In Nginx, a typical static asset cache header looks like: add_header Cache-Control "public, max-age=31536000, immutable";

Server-Side Caching

Implement full-page caching with Nginx FastCGI cache or Varnish for product and category pages. For dynamic pages like cart and checkout, use fragment caching to cache only the parts that don't change per user. Add Redis or Memcached for object caching to reduce database round-trips. A typical PHP-FPM pool configured for a mid-traffic e-commerce store uses pm = dynamic with pm.max_children = 20, pm.start_servers = 5, and pm.max_spare_servers = 15 on a 4 GB RAM VPS. Those numbers change based on how much RAM each PHP process actually consumes under your specific workload.

Content Delivery Network (CDN)

A CDN distributes your static assets across servers worldwide, so visitors download files from the closest geographic location. For European e-commerce stores, a customer in Riga gets assets from a Baltic or Nordic edge server rather than waiting for a data center in Frankfurt. For Baltic customers specifically, Bunny.net has excellent regional coverage and a straightforward pricing model. Cloudflare's free tier works well for most stores. Setup typically takes less than an hour and can cut load times by 40-60% for visitors who aren't geographically close to your server.

Database Optimization

As your catalogue and order history grow, database queries become a bottleneck. This is where WooCommerce stores tend to degrade fastest at scale.

Add proper indexes on every column used in WHERE clauses, JOINs, and ORDER BY statements. Run EXPLAIN ANALYZE on your slowest queries to see what the query planner is actually doing. Avoid N+1 query problems by eager-loading relationships. Archive completed orders older than two years to separate tables to keep your active tables lean. Use PgBouncer (for PostgreSQL) or ProxySQL (for MySQL) to reduce the overhead of establishing new database connections under load.

On a WooCommerce store we optimized last year, the product category query was doing a full wp_postmeta scan with no index on meta_key. Adding a composite index on (meta_key, meta_value) dropped that specific query from 2.3 seconds to 40ms. That one change cut average page load from 3.8s to 1.6s.

Code Minification and Bundling

Reduce CSS and JavaScript file sizes by removing whitespace, comments, and shortening variable names. Bundle multiple files into fewer requests. Modern tools like Vite or esbuild handle this as part of your build process. For WordPress/WooCommerce, the Autoptimize plugin does a reasonable job if you're not running a custom build pipeline, though it requires careful configuration to avoid breaking checkout pages.

Measuring with Core Web Vitals

Google's Core Web Vitals are the standard metrics for real-world page performance. Target Largest Contentful Paint (LCP) under 2.5 seconds by optimizing your hero image and server response time. Interaction to Next Paint (INP) should be under 200ms, which means minimizing JavaScript execution and keeping the main thread clear during page load. Cumulative Layout Shift (CLS) should be under 0.1. Always specify image dimensions in your HTML to prevent layout shifts as images load.

What We Saw on a Lithuanian Retailer Project

A Lithuanian home goods retailer had a PrestaShop 1.7 store with a Lighthouse Performance score of 31 on mobile. Main issues were unoptimized images (average product image was 340 KB), no caching layer, and three render-blocking JavaScript files loading in the head. We implemented WebP conversion via a custom PrestaShop module, configured Nginx FastCGI caching for category and product pages, moved JavaScript to deferred loading, and set up Bunny.net CDN. Six weeks later, Lighthouse mobile score was 78. More importantly, the client reported a 14% increase in mobile conversion rate over the following 30 days.

Speed optimization isn't a one-time project. It's an ongoing discipline. Start with the highest-impact changes (images and caching), measure progress with Google PageSpeed Insights and real user monitoring via your GA4 setup, then tackle the remaining items in priority order. Our IT Consulting service includes performance audits that identify exactly which optimizations will have the most impact for your specific setup. You'll also want to make sure your hosting can support the improvements: see our guide to choosing the right hosting for what server configuration actually matters. And if you're running GA4 to track your speed improvements' impact on conversions, our GA4 setup guide covers the e-commerce tracking setup you'll need.

Tagged with: WordPress PrestaShop E-Commerce Performance