Our take: your store is slow because of ten small decisions, not one big one
The ten ordinary choices that make a store slow on a phone, why nobody notices each one, and the order to undo them.
The short answer
The cause is not one dramatic mistake. It is ten reasonable decisions, made by different people at different times, each adding a little to every page: a hero video for the brand, a review widget for trust, a pop-up for the newsletter, a chat widget for support, pixels for three ad platforms, a heat map to understand visitors, a fonts service for the typography, a slider for the homepage, images uploaded as they came from the photographer, and a theme nobody has updated since it was installed. None of them was wrong on its own. Together they are the reason the product page takes seconds on a phone and the add-to-cart tap hesitates. Undoing them is an audit, in order of weight, with a measurement after each change, and the store that stays fast afterwards has one rule: nothing is added to the page without a measurement and an owner.
The ten decisions
| Decision | Made by | Why it seemed fine | What it costs | The lighter version |
|---|---|---|---|---|
| Autoplaying hero video | The founder | It looked impressive on a large screen | Megabytes before any product appears | Poster image; video on play, on an about page |
| Unsized images | Whoever uploaded them | The platform resizes them anyway | Layout shift; oversized files on thumbnails if the theme asks badly | Dimensions set; theme requesting the right size |
| Review widget | Marketing | Social proof converts | A script on every page fetching from a third party | Reviews rendered into the page |
| Pop-up app | Marketing | Email sign-ups | Script plus layout shift plus annoyance | Native section, deferred, shown once |
| Chat widget | Support | Customers like chat | Heavy script on every page, loaded for everyone | Loaded on interaction |
| Three pixels | Advertising | Attribution | Three networks’ scripts before consent and before interaction | After consent, after interactive, one tag setup |
| Heat map | Someone curious | Understanding behaviour | Recording script on every page, rarely read | Removed, or enabled for a week when a question exists |
| Fonts service | Design | The typeface | Extra connections; delayed text | Self-hosted, preloaded |
| Slider | An agency | Show several messages | Script, images for every slide, poor conversion | One static hero |
| Theme never updated | Nobody | It works | Old code paths; fixes and speed improvements never received | Updated through a duplicate and preview |
Undoing them, in order
- Measure the product page on a phone with the network panel open; list every script and the largest images.
- Remove or defer the hero video on the homepage; poster and play elsewhere.
- Audit the apps: reviews, pop-ups, chat, heat map; remove, replace with lighter forms, or load on interaction.
- Move pixels behind consent and after interactive, in one tag setup.
- Self-host the fonts and preload them.
- Replace the slider with one static hero.
- Fix images: dimensions set, theme requesting the right sizes, lazy-loading below the fold.
- Update the theme through a duplicate and preview.
- Measure after each step; keep the log.
- Set the rule: nothing added without a measurement and an owner.
Why this is our take
Because we are asked to fix slow stores, and we almost never find one big cause. We find the ten decisions, each defensible, each with an owner who did not know what the others had added. The fix is not clever; it is the audit, the lighter versions and the rule. Stores that adopt the rule stay fast through campaigns and staff changes, and their conversion on phones shows it.
What this means for you
Your store is probably slow for ten small reasons rather than one large one, and each has a lighter version that keeps the feature and drops the cost. Audit the product page, undo the decisions in order of weight, measure after each, and adopt the rule that nothing joins the page without a measurement and an owner. The store gets fast, and more importantly it stays fast, which is the part most speed projects miss.
Frequently asked questions
Why did nobody notice the store getting slow?
Because each decision was small and reasonable, made by a different person for a good reason, and the effect was gradual. The marketing manager added a pixel, the founder a hero video, the support lead a chat widget, an agency a pop-up. Nobody added the seconds; the store accumulated them. Measured monthly, the drift would have been visible; measured never, it became the store's normal.
Which of the ten hurts most?
The usual pair is the autoplaying hero video and the apps that inject scripts on every page: reviews, pop-ups, chat, heat maps. Together they usually account for the majority of the weight and the main-thread work that makes taps hesitate. Remove or defer those first and measure; the improvement is typically visible immediately.
Do we have to give up the features?
Rarely. Most can be kept in a lighter form: video behind a poster loaded on play, reviews rendered into the page, chat loaded on interaction, pixels loaded after consent and after the page is interactive, fonts self-hosted, a static hero instead of a slider. The feature stays; the cost on every visit goes.