Article Ecommerce & WooCommerce

How to keep an online store fast as it grows

A store that was fast on launch day slows down for specific, fixable reasons as the catalogue and the order history grow.

Updated 9 min read Intermediate

A store that loaded quickly on launch day and feels sluggish a year later has not been the victim of some mysterious decline — something specific has changed, and in nearly every case it is one of a small number of things: the catalogue has grown, the order history has grown, more plugins have been added, or caching has been misconfigured somewhere along the way. Each of these has a concrete fix.

The catalogue itself

Product pages, category listings and search all get slower as the number of products grows, because more rows means more work for every query that filters or sorts them. This shows up first on category and search pages rather than individual product pages, since those are the ones actually scanning across the whole catalogue.

  • Images are usually the biggest single weight on a product page. A product photo straight off a camera or a supplier's website is routinely many times larger than it needs to be for web display. Compress and correctly size every product image, and do it as a standard step in adding a new product rather than a cleanup task you do once a year.
  • Limit what a category page tries to show at once. A single page attempting to list hundreds of products, with filters and images for all of them, is slow by design. Pagination or a "load more" pattern keeps each page's actual workload manageable.
  • Be deliberate about product variations. A product with many size and colour combinations, each generating its own set of data, adds up across a catalogue of any size. This is worth knowing about rather than avoiding outright — just do not add variation options nobody actually needs.

The order history

Every order, every line item and every status change is a row in your database, and that table only grows. A store with years of order history behind it is running queries — reports, order lookups, customer account pages — against a much larger table than it was on day one, and an unindexed or poorly optimised query slows down proportionally.

This is less something to fix once and more something to keep an eye on as the store matures: if admin screens or reports feel slower than they used to, database growth is worth investigating before assuming it is a hosting problem.

Caching done properly

Caching is the single highest-leverage fix available for a slow store, and it is also the setting most likely to be either missing entirely or configured in a way that breaks checkout. The rule is simple even though the details matter: cache the shop, category and product pages aggressively, and never cache cart, checkout or account pages, which are different for every visitor. The full mechanism and the exact pages to exclude are covered in how to stop caching breaking your cart — read that before turning any caching on if you have not already.

A store that "got slow" after adding caching usually means caching was added without exclusions

If checkout or account behaviour changed for the worse right after a caching plugin was installed, the fix is almost always to add the correct exclusions, not to remove caching altogether and lose the speed benefit everywhere else.

Plugin accumulation

Stores accumulate plugins the way any long-running WordPress site does: a plugin trialled for a feature that was later abandoned, an upsell tool added and forgotten, three different SEO plugins from three different phases of the site's life. Each one runs code on every page load whether or not it is doing anything useful today. Periodically reviewing installed plugins and removing anything not actively earning its place is one of the more neglected ways to keep a store responsive.

Checking what is actually slow, rather than guessing

Before changing anything, look at which specific pages are slow and when. A store that is fast normally but slow only during a promotion or a traffic spike has a different problem — capacity under load — than one that is uniformly slow all the time, which points more towards database, plugin or image weight. Preparing a store for a sales rush covers the load-specific case separately.

What hosting can and cannot fix

The right hosting plan matters — enough resources for your catalogue size and traffic, and a control panel that makes it straightforward to adjust PHP settings or check resource usage when something needs tuning. But hosting is not a substitute for the fixes above: moving an unoptimised, uncached, image-heavy store to more powerful hardware buys some headroom, not a solution. See what hosting does an online store need for how to judge whether your plan itself is the limiting factor.

Fix the cheap things before upgrading anything

Image compression, correct caching exclusions, and removing unused plugins cost nothing but time and typically produce a bigger, more noticeable improvement than moving to a larger hosting plan. Do those first, then reassess whether more resources are genuinely needed.

Related reading