
Most slow online stores can be made fast without moving to a new platform. The usual causes are oversized images, too many apps and third-party scripts, heavy theme code and slow database queries, and all of them follow a store to a new platform if they are not fixed. Fix the causes first, in that order; if you still need to replatform afterwards, you will do it with far better information.
Key takeaways
- Measure on a mid-range phone with real visitor data, not only a lab score on a fast laptop.
- Images and third-party scripts cause most of the weight on a typical product page.
- Removing an app does not always remove its code: check the theme afterwards.
- Cache last, so caching does not hide a slow page that every uncached visitor still suffers.
How do you find out what is slowing a store down?
Start with the pages that make money: home, a collection page, a product page and the cart. Run each through PageSpeed Insights for real-visitor data, then open the browser’s network panel on a throttled mobile profile and sort requests by size and by time. In most stores the top of that list is a few very large images and a set of scripts from apps or trackers.
How should product images be optimised?
- Upload images at a sensible maximum size instead of camera or print resolution.
- Serve modern formats such as AVIF or WebP; most platforms and CDNs can convert automatically.
- Use responsive images so a phone downloads a phone-sized file.
- Lazy-load images below the fold, but never the main product image or hero banner.
- Give every image width and height so the page does not jump while loading.
Which apps and scripts should be removed?
Each app or tracker usually adds its own script, and many load on every page whether or not they are needed there. List every third-party script, note who asked for it and what it does, and remove anything nobody can justify. Then check the theme: uninstalling an app does not always remove the snippet it added.
- Load reviews, chat and social widgets after the main content, or only when scrolled into view.
- Keep a single tag manager and review its tags regularly; old campaign pixels accumulate.
- Replace several overlapping apps with one where possible.
- Agree every removal with the people who use the feature, and test on a copy of the store first.
What about the theme code?
Themes often ship code for every feature they support, whether you use it or not. Remove unused sections and scripts, limit custom fonts to the weights you actually use, and inline only the small amount of CSS needed for the first screen. On Shopify, check templates for loops that render far more products or variants than the page shows.
How do you fix slow database queries?
This matters most on WooCommerce and custom stores. Collection and search pages are the usual offenders: an unindexed filter, or a lookup per product inside a loop, turns one page view into hundreds of queries. It stays invisible until traffic arrives. Use a query monitor or your database’s slow-query log, add the missing indexes, and add an object cache for repeated lookups.
When should you add caching and a CDN?
After the fixes above, put a CDN in front of all static files and cache expensive fragments that rarely change, such as navigation menus and collection listings. Caching last is deliberate: caching too early hides the problem instead of solving it.
Caching a slow page gives you a fast page for repeat visits and the same slow page for the first visitor and every cache miss.
How do you keep the store fast?
- Set a performance budget, for example a maximum page weight and script count, and check it on every release.
- Review new apps for their performance cost before installing them, not after.
- Check real-visitor data monthly; speed erodes gradually as content and apps are added.
When is replatforming actually justified?
Replatform when the platform itself blocks what the business needs: features that cannot be built, licensing that no longer makes sense, or limits on catalogue size or checkout customisation. If the only problem is speed, fix the store you have first.

