Online shops

Why your WooCommerce shop got slow in year three

It was fast when it launched. Nothing broke, nobody did anything wrong, and now a category page takes six seconds. Here is what actually accumulated.

25 August 20266 min readDaniel

No shop is slow on the day it launches. Nobody would accept it. It gets slow later, gradually, and by the time anyone notices there is no single decision to point at.

That is the part worth understanding before anything else. A slow shop is almost never the result of a mistake. It is the result of three years of reasonable decisions, each of which cost a little.

Nobody makes a shop slow. It gets slow while everyone is doing their job.

What accumulates

Plugins. Not the number — what they touch. A plugin that adds a field to the checkout costs almost nothing. A plugin that runs on every product in a category listing costs on every view of every category. Four of the second kind outweigh twenty of the first, and nobody keeps a list of which is which.

Scripts nobody remembers adding. An advertising pixel from a campaign that ended. A chat widget from a trial. A review badge, a heatmap tool, a second analytics tag installed while the first one was being debugged. Each was added by somebody with a good reason, and none of them were ever removed, because removing things is nobody’s job.

Images at the size they came off the camera. Three years of product photography uploaded straight from a phone or a photographer’s export. WordPress generates its own sizes, which helps — but the original stays, the media library grows, and backups start taking an hour instead of four minutes.

The database, quietly. Post revisions, one per save, forever. Expired transients that were never cleaned out. Orphaned metadata from plugins that were removed but left their rows behind. Scheduled task logs going back to launch. None of it is visible in the admin, and all of it is read on every request.

The shop grew, the server did not. The hosting was chosen for a shop with two hundred products and forty orders a month. That was three years ago. Nobody revisits a hosting decision that has never obviously failed.

We have seen every one of these on shops we did not build — and two or three of them on shops we did. Nothing above is a criticism of anybody. It is what happens to a system that is used.

Two numbers worth knowing

Neither is a rule, and both are more useful than a score out of a hundred from a testing tool.

Rules of thumb

  • 2.5sthe threshold Google uses for the largest visible element
  • 1 MBwhere automatically loaded database options start to hurt
  • 0plugins we add to fix any of this

The first is measured on a real phone on a real connection, not in a laboratory test. The second is a single database query that most shop owners have never run — and on a three-year-old shop it is frequently three or four times that figure.

The order to look in

This matters, because the usual order is backwards. Most people start by buying something.

First: measure

On a mid-range phone, on mobile data, on a category page rather than the home page. The home page is the one page that has usually been optimised, which is why it is the one everybody tests.

Then: count

How many separate files a category page loads, and where each of them comes from. This is where the forgotten pixel and the abandoned chat tool show up, usually within a minute.

Then: remove

Not optimise. Remove. Everything that is loading and not earning its place comes out first, because there is no point making something faster that should not be there at all.

Caching comes after all three, not instead of them. A cache makes a slow page arrive faster the second time — it does not make the page lighter, and it cannot help at all with the checkout, the cart or anything showing a price specific to one customer.

The answer is almost never another plugin.

Why removal is the uncomfortable part

Because everything on the list belongs to somebody. The heatmap tool was somebody’s idea. The review badge is in a report. The second analytics tag is what the agency before us set up, and nobody is quite sure whether anything depends on it.

The technical work here is straightforward and takes a day or two. The conversation about what can go takes longer, and it is the part that actually decides the outcome.

Our own rule is simple: anything that has not been looked at in six months comes out, and if somebody misses it, it goes back. In several years nobody has asked for one of them back.

What we would look at on your shop

The same five things, in the same order, and then the boring maintenance that stops it happening again — which is a schedule rather than a project. That schedule is on our maintenance page, in full, including who does what.

If the shop is also large or heavily varied, the other half of this is what the product count actually costs — which is usually less than people expect, and never the first thing to blame.

Speed is also the foundation of everything else in search: a fast, well-structured shop is half the ranking work already done, and we start there rather than at the meta description. That is the argument on our SEO page.

Send us the address of the shop.

We will measure it on a real phone, count what a category page loads, and tell you what is worth removing. In writing, and yours to keep whether or not you hire us.