Made To Studio for Shopify apps and themes
App Support

Blog

Adding order statuses without slowing your Shopify theme

Made To

Most Shopify apps that add something to your storefront do it the same way: a script tag, injected site-wide, loading on every page whether that page needs it or not.

For an order status app this is worth questioning, because the feature lives on exactly one page. A customer checks their order status on a lookup page. They do not check it on a product page, a collection page, or during checkout. Yet the common implementation loads code on all of them.

What “injects a script” actually means

When an app adds a storefront script, it typically lands in your theme’s layout — the file wrapping every page — or through a ScriptTag registered against your shop. Either way the browser must fetch it, parse it, and execute it before the page is fully settled.

The cost is not usually dramatic. It is one request to a third-party domain, maybe 30–80KB, and some execution time. On a desktop connection you will not notice.

It compounds, though, and it compounds in the places that matter:

It is a third-party request. The browser must resolve a new DNS entry, open a TLS connection, and wait. On a phone on mobile data, connection setup can cost more than the file transfer.

It runs on pages that will never use it. Your product pages are where buying decisions happen and where Core Web Vitals are measured hardest. Loading order status code there buys you nothing.

It stacks. No merchant runs one app. Reviews, upsells, analytics, a popup, a chat widget — each adds its own request. Any single one is defensible; eleven of them is the reason the site feels slow, and the diagnosis is hard precisely because no individual app looks guilty.

It can outlive the app. Uninstall does not always remove an injected script cleanly, particularly if it was added directly to a theme file. Merchants routinely find leftovers from apps removed a year ago.

Why this matters beyond page speed

Storefront performance shows up in three places that cost money.

Conversion. Slower pages convert worse. The precise elasticity varies by store and traffic mix, and anyone quoting a universal “X% slower means Y% fewer sales” is overstating what the data supports — but the direction is consistent and well established.

Search ranking. Core Web Vitals are a confirmed Google ranking signal. Largest Contentful Paint and Interaction to Next Paint are both degraded by third-party JavaScript competing for the main thread.

Checkout. This is the expensive one. Scripts running during checkout can interfere with a flow where every abandoned session is direct lost revenue.

The alternative: put the feature where the feature is

The lookup page is one page. It can hold its own code.

Instead of injecting site-wide, the app gives you a page — or a block you add to a page — and only that page loads anything. Product pages, collection pages, cart, and checkout stay exactly as they are, because nothing was added to them.

This is not a clever optimisation. It is the absence of a decision that should not have been made.

The trade-off is honest: you add the page yourself, rather than the app appearing everywhere automatically. That is a few minutes in the theme editor once. In exchange, your storefront’s performance profile is unchanged everywhere the feature is not used, and uninstalling means removing one page rather than hunting for leftovers.

How to check what your apps are doing

Worth doing regardless of which apps you run.

Look at the network waterfall. Open a product page in Chrome, DevTools → Network, filter to JS, reload, and sort by domain. Every third-party domain is an app. Ask of each: does this page use that feature?

Run Lighthouse and read “Reduce the impact of third-party code”. It lists each third-party origin with its transfer size and main-thread blocking time. This is the most direct answer to “which app is slowing my store”.

Search your theme for leftovers. In the code editor, check theme.liquid for <script> tags referencing domains you do not recognise. Cross-reference against your installed apps; anything unmatched is probably residue from an uninstall. Take a theme backup before removing anything.

Check ScriptTags via the API. Some injections do not live in theme files at all. If you are comfortable with the Admin API, listing registered ScriptTags shows scripts a theme search will not find.

What to ask before installing

For any app touching your storefront:

A vague answer is itself informative. An app that has thought about this will tell you precisely, because it is a decision they made deliberately.

Where Statuscraft sits

Statuscraft adds no script to your theme. The customer lookup is one page you add yourself, and it is the only page that loads anything. Product pages, collections, cart, and checkout are untouched — not optimised, just not modified.

The merchant side is a block on the Shopify order page inside the admin, which is Shopify’s own interface and not your storefront at all. Nothing there reaches customers.

This is a deliberate constraint rather than a feature we tuned our way into. It costs you a few minutes adding one page. It costs your storefront nothing, which is the point.