A slow WooCommerce store rarely has one single cause. More often, several ordinary problems have accumulated: oversized product images, a plugin added for one campaign, an ageing theme, weak hosting and a database carrying years of temporary data. Randomly installing a speed plugin can hide one symptom while creating another. Use a checklist instead: measure, change one thing, test the shop, and keep a record of what actually helped.
Start safely and measure the right pages
Take a full backup and, if your host provides staging, work there first. Then test the pages that make money: the homepage, a busy category page, a product page, the cart and checkout. Record the mobile result in PageSpeed Insights and note the largest content element, blocking scripts and total image weight. Also place a test order. A faster homepage is not a success if checkout becomes unreliable. Repeat the same tests after each group of changes so you can separate real improvements from normal variation.
Check hosting and caching before buying more tools
WooCommerce is dynamic. Product prices, stock, carts and accounts cannot be cached in exactly the same way as a brochure page, so the server still has to do real work. If every uncached page is slow, the problem may be an overloaded shared server, an old PHP version, insufficient memory or a database under pressure. Update PHP only after checking theme and plugin compatibility, and ask your host about server response time rather than accepting a generic promise to make WordPress fast.
Configure cache exclusions carefully
Page caching should normally exclude cart, checkout and account pages. Object caching can help a busy store, but it must be supported properly by the host and tested with logged-in shopping. Never judge cache settings only while logged in as administrator; test again as a guest and as a customer, in a private browser window.
Reduce image and media weight
Images are often the easiest win. Product photographs do not need to be uploaded at the largest camera size if the store displays them much smaller. Set sensible image dimensions, compress files before or during upload, use WebP where supported, and avoid placing several full-width sliders above the product content. Videos should have a poster image and should not compete with the first product photograph. Check image-heavy category pages as well as individual products; a grid containing dozens of oversized thumbnails can make browsing feel sluggish even when the homepage passes a test.
Audit plugins by purpose, not by count alone
The number of plugins matters less than what each one loads and whether several do the same job. List every plugin, its purpose, where it runs and whether the business still needs it. Look especially for overlapping page builders, security scanners, image tools, marketing pop-ups, live chat and analytics scripts. Deactivate a suspect on staging and retest the complete buying journey. Removing one heavy plugin is usually better than adding another plugin to manage it. Also delete inactive plugins you no longer trust or maintain; inactive code should not be kept without a reason.
Trim the theme, fonts and third-party scripts
Themes can accumulate sliders, animation libraries, icon sets and code left behind by old designs. Remove features the store no longer uses, limit custom fonts to the weights genuinely needed, and load non-essential marketing tools after the main shopping experience is usable. Be cautious with automatic delay or removal settings for JavaScript: they can break menus, variation selectors, payment fields and fraud checks. Change one script rule at a time and test product variations, coupons, shipping selection and payment on staging.
Clean the database and protect checkout performance
Over time, WordPress collects expired transients, old revisions, orphaned metadata and tables left by removed plugins. Back up the database, use a reputable maintenance tool, and avoid deleting rows manually unless you know exactly what they belong to. Then focus on checkout: every extra field, lookup and external script adds waiting. Remove optional distractions, ensure address and shipping updates respond quickly, and test the payment gateway in a private window. Speed at checkout means responsiveness and certainty, not merely a good lab score.
The final pass
- Measure again on mobile and desktop using the same pages.
- Place test orders as a guest and as a logged-in customer.
- Test search, filters, coupons and stock messages, not just the homepage.
- Keep the backup until the changed store has run normally through real orders.
- Write down every change so a future slowdown can be traced.
WooCommerce speed work is maintenance, not a one-time badge. Review new plugins and media before they go live, and repeat the key tests after major updates. A disciplined checklist will usually reveal the bottleneck without risking the store that pays the bills.
Need this fixed? Email jay@jaylakum.com with your store URL and the page that feels slowest, and I will tell you what I find.