Do upsell apps slow down your Shopify store?
Every app that shows something on your storefront loads code in your customersâ browsers. One app is rarely the problem. Eight apps that each load a script on every page, including pages where they do nothing, add up. Upsell apps are frequent offenders, because they often want to be present everywhere in case a customer adds something to the cart.
What actually slows a page down
- Scripts that load on every page, even where the app does nothing.
- Scripts that stop the page from displaying until they have loaded.
- Code that waits for the appâs servers before showing anything.
- Leftovers from apps you uninstalled long ago, still loading.
How to check your own store
- Open your home page, a product page and the cart page in Chrome, open the developer tools, go to the Network tab, reload and filter on JS.
- Look for files from the apps you know, and note on which pages each one appears.
- Run the page through PageSpeed Insights with and without the app, a few times each. A single run varies too much to compare.
- Look for leftovers in your theme code. With older integration methods, apps added snippets to theme files that stay after the app is gone.
Why theme app extensions help
Modern Shopify apps plug into your theme through app embeds and app blocks: pieces you switch on in the theme editor, without the app editing your theme code. Their files are served from Shopifyâs own CDN, and when you uninstall the app, Shopify removes its blocks from your theme. Apps that still inject code the old way leave traces behind.
What a light upsell app looks like
- It does nothing where it has nothing to do: no request to its servers on a page where it canât show anything.
- It loads without blocking the page.
- It never holds up checkout. If something fails, the customer goes to checkout as if the app werenât there.
The post-purchase page costs your storefront nothing
Offers after payment run inside Shopifyâs checkout, not in your theme. They load nothing at all on your storefront pages.
How FlatUpsell loads
FlatUpsellâs cart offer is an app embed. Its script is deferred, so it never blocks the page, and weighs a little over 40 KB before compression, cached by the browser from the first page on. It loads on every page because a cart drawer can send customers to checkout from anywhere, but it stays idle while the cart is empty: not a single request to FlatUpsellâs servers. Once the cart has something in it, it fetches the offers once and keeps them for the visit. If anything goes wrong, the checkout button behaves as if the app werenât installed. The post-purchase offer lives in Shopifyâs checkout and adds nothing to your theme.