TL;DR
Shopify already runs this test on every app in its store, with a published method and a published pass mark of ten Lighthouse points [1][2]. A single Lighthouse run tells you almost nothing because scores move between runs, which Shopify says outright [1]; a before and after pair on a clean theme is the instrument that means something. For a tracking app specifically, the pixel's event code runs in a web worker off the main thread [3], while the vendor SDKs it needs still load on the main thread from the theme side. Both halves are true and they affect different metrics.
Key Takeaways
- Shopify's App Store requirement is stated as a number: an app "must not reduce storefront Lighthouse performance scores by more than 10 points" [1]. Ask any app vendor for their before and after pair rather than for an adjective.
- The test is weighted by page type, at 17% home, 40% product details and 43% collection [1]. Collection and product pages carry over 80% of the score, so measuring only your homepage measures the wrong thing.
- Run each page type more than once. Shopify's own caveat is that "Lighthouse scores can vary between runs" and recommends averaging across a few consecutive tests [1].
- App pixel code runs in a strict sandbox using web workers and cannot read or write the DOM [3]. That protects interaction responsiveness. It does not make third-party SDK downloads free.
- Built for Shopify apps are held to LCP at or below 2.5 seconds, CLS at or below 0.1 and INP at or below 200 milliseconds in the app's admin surface, each assessed on a minimum of 100 calls over the last 28 days [2]. WeltPixel Conversion Tracking holds the Built for Shopify badge.
- Two honest costs in our own app: it loads about a dozen small deferred scripts on every storefront page whether or not you use every channel, and its cart bridge writes one small extra storefront request when tracking data changes.
- Purchase events never run in the shopper's browser. The conversion is sent from your order record after checkout, so the thank-you page does no purchase-tag work at all.
What Shopify already measures, and the line it enforces
Before running your own test, know that Shopify ran one already.
Shopify's app performance documentation states the App Store requirement plainly: to be published, "your app must not reduce storefront Lighthouse performance scores by more than 10 points" [1]. The Built for Shopify requirements page repeats the ceiling as "Your app must not reduce the storefront Lighthouse performance score by more than ten points" and adds admin-side thresholds of LCP at or below 2.5 seconds, CLS at or below 0.1 and INP at or below 200 milliseconds, each needing "a minimum of 100 calls ... over the last 28 days to be assessed" in the app's admin surface [2].
How Shopify tests: "Shopify tests the app's effect on store performance by measuring the Lighthouse score before and after the app is installed", weighted 17% home page, 40% product details page and 43% collection page [1].
For calibration, the Theme Store's bar sits far lower on the same scale: "To be accepted into the Shopify Theme Store, a theme must have a minimum average Lighthouse performance score of 60 across the home page, product page, and collection page" [5]. Your theme is allowed to land at 60, and each app on top of it is allowed to cost 10. Most stores that feel slow are slow because of the first number.
We have not published a measured Lighthouse delta for this app, and this article will not invent one. WeltPixel Conversion Tracking holds the Built for Shopify badge, so it has passed Shopify's performance gate, and the procedure below reproduces that gate on your theme with your configuration. Your number will differ from ours regardless, because it depends on which of the nine integrations you enable and what else is installed.
Where does a tracking app's code actually run?
In two places, and the distinction decides which metric moves.
Shopify's web pixels documentation describes the architecture: web pixel app extensions load "in a secure sandbox environment with APIs for subscribing to customer events", and app extensions specifically "are loaded in a strict sandbox environment using web workers" [3]. The strict sandbox exposes only self, console, the timer functions and fetch with its Headers, Request and Response classes, and "Many globals will be explicitly overwritten to be undefined" [3]. Shopify also states the consequence for pixel authors: "these controls mean some common features of pixels won't work the same or won't work at all", specifically anything that scrapes or writes the DOM [3]. The Web Pixels API reference confirms that app pixels run in the strict sandbox [4].
Read that as a performance statement. Event code running in a web worker cannot block rendering and cannot lengthen an interaction the way a DOM-reading tag can, because it is on a different thread and has no DOM to read. Interaction to Next Paint is where that architecture earns its keep. Our app's pixel extension runs in Shopify's strict sandbox, so its event handling is not competing with your product page for the main thread.
Now the half vendors leave out. The SDKs a tracking setup needs, the Google tag, Meta's pixel library and their equivalents for the other channels, are ordinary third-party scripts loading on the main thread from the theme side. No sandbox changes that, and Largest Contentful Paint responds to bytes and connections. Ours injects them with async and only for channels you have configured, which is careful rather than free.
The plain-English version of the sandbox model is in the Web Pixels API guide for marketers, and what the pixel records is in the app pixel activity log.
Measure it on your own store in an afternoon
This is Shopify's own procedure, and a merchant can run every step of it.
- Duplicate your live theme, or start "with a clean install of a supported Shopify theme, such as Horizon, without your app or any other apps installed" [1]. That baseline is not already polluted.
- Get the preview URL from Online Store → Themes → View your store → Copy link address [1]. It works on a password-protected store, so you can test before publishing.
- Run the home page, a product page and a collection page through PageSpeed Insights. Run each a few times and average, because "Lighthouse scores can vary between runs" [1]. Three runs is enough in practice.
- Install the app. Configure "the most frequently used app features with typical required assets" [1], which for a tracking app means turning on only the channels you plan to use, not all nine.
- Re-run the same three pages, the same three times, and average again.
- Weight the difference: 17% of the home page delta, 40% of the product delta, 43% of the collection delta [1]. Shopify's worked example subtracts the starting score of 92 from the ending score of 87 for a result of minus 5 points [1].
- Compare against 10 [1]. If your weighted delta is worse than that on a clean theme with a normal configuration, raise it with the vendor, with numbers attached.
Step 4 is where homegrown comparisons go wrong. Enabling every integration an app offers measures a configuration you will never run.
The two parts of our app that cost something
Here is the part a vendor blog usually skips.
The app embed loads its scripts on every storefront page. WeltPixel Conversion Tracking ships about a dozen small deferred scripts, most of them channel loaders, roughly 80 KB of uncompressed source in total, all served from Shopify's CDN and all marked defer so none of them blocks parsing. They render on every storefront page rather than only on the pages where a given channel does work. A channel you have not configured still downloads its small script and then does nothing: no SDK, no network requests, no event. Shopify's own optimization guidance says to "use app embed blocks to take advantage of their ability to only load scripts on specific pages" [1], and ours does not scope by template today. That is a real gap between the guidance and the implementation.
The cart bridge does main-thread work. One asset watches for cart changes so tracking data survives into your order record. It notices cart add and change requests, compares its stored state about once a second, and writes the data back with one small extra request to Shopify's cart update endpoint when it changes. That is one lightweight write each time the tracking data changes, plus a once-per-second comparison of a small value. Both are visible in DevTools, the standard any performance claim should meet.
What the app does not do is run purchase tracking in the browser. The purchase is delivered from your Shopify order webhook, server to server, so the checkout and thank-you surfaces do no conversion-tag work at all. That is the opposite trade from a browser-tag setup, where the heaviest tag work lands on the highest-value page. The two-path comparison is in server-side tagging versus a native app.
Configuration costs nothing at runtime either. The settings each script needs are rendered inline into the page by the theme extension, so there is no configuration fetch on page load.
Which metric should you watch after install?
Field data, and specifically INP and LCP, for different reasons.
Shopify's theme performance guidance is explicit about which numbers matter: "LCP, CLS, and INP are the Core Web Vitals (CWV), which Google uses as a ranking signal. TTFB and FCP aren't scored, but they're diagnostic" [5]. Lighthouse is a lab test on a simulated device. Core Web Vitals from real visits are what your shoppers experienced and what Google reads.
The split maps onto the two-places answer above. The pixel's event code runs in a worker, so it is not what moves INP; the small main-thread work described above is the app's only claim on it. A large INP jump after installing a tracking app usually points at something else on your main thread, often a theme customization or a chat widget. LCP can move, because extra scripts and extra connections are exactly what LCP is sensitive to. If your LCP degrades after install, the useful diagnostic is which channels you enabled, since each configured channel is what pulls in a vendor SDK.
Running the same tracking through browser containers puts more work on the main thread than an app pixel does, which matters for Meta pixel through GTM and match quality as well as for speed, and a custom data layer adds browser JavaScript whose only job is describing the page to other scripts, covered in do you need a data layer in 2026. If you are installing rather than auditing, the post-install checklist is the companion to this test.
FAQ
How much does a conversion tracking app slow down a Shopify store?
Every app in the Shopify App Store has to meet a published requirement capping its weighted Lighthouse impact at 10 points across home, product and collection pages [1]. Your own number depends on your theme, your other apps and which channels you enable, so the before and after procedure above is the only answer specific to you.
Do web pixels run on the main thread?
No. App web pixels load in a strict sandbox using web workers and cannot access the DOM [3]. The vendor SDKs that a tracking setup loads from the theme side do run on the main thread.
Does enabling more integrations make the app slower?
Each configured channel pulls in its vendor SDK, so yes, in proportion to how many you turn on. Unconfigured channels download a small deferred script and do nothing else: no SDK, no requests.
Should I test with Lighthouse or with Core Web Vitals?
Both, for different questions. A Lighthouse before and after pair on a clean theme isolates the app's contribution, which is how Shopify itself measures apps [1]. Core Web Vitals over 28 days tell you what real shoppers experienced [5].
Will removing a tracking app improve my Core Web Vitals?
Possibly by a small amount on LCP if you had several channels configured. It also stops your server-side conversions, so measure the LCP change against what the missing conversion data costs your ad platform optimization.
If your current setup runs conversion tracking through browser tags on the checkout and thank-you pages, WeltPixel Conversion Tracking [6] moves the purchase to a server-side call from your order record, which takes that work off the page entirely across nine integrations.
Run the test on a duplicate theme before you install anything, and keep the two PageSpeed Insights reports. Six months from now, when the store feels slower and there are 14 apps installed, that pair of screenshots is the only baseline anyone will have.
Sources
- Shopify.dev, "App performance" and "Storefront performance" (10-point App Store ceiling; before and after method; page weighting 17% home, 40% product details, 43% collection; clean-theme procedure and preview URL; worked example of 87 minus 92; scores vary between runs and should be averaged; app embed blocks should load scripts only on specific pages), shopify.dev/docs/apps/build/performance and shopify.dev/docs/apps/build/performance/storefront, accessed September 10, 2026
- Shopify.dev, "Built for Shopify requirements" (app must not reduce the storefront Lighthouse performance score by more than ten points; admin-side LCP at or below 2.5 s, CLS at or below 0.1, INP at or below 200 ms, each requiring a minimum of 100 calls over the last 28 days to be assessed), shopify.dev/docs/apps/launch/built-for-shopify/requirements, accessed September 10, 2026
- Shopify.dev, "Web pixels" (web pixel app extensions load in a secure sandbox with event-subscription APIs; app extensions load in a
strictsandbox environment using web workers; the limited global set and overwritten globals; DOM scraping and DOM writes do not work), shopify.dev/docs/apps/build/marketing-analytics/pixels, accessed September 10, 2026 - Shopify.dev, "Web Pixels API" (pixels run within Lax or Strict sandboxes; app web pixels load in a strict sandbox), shopify.dev/docs/api/web-pixels-api, accessed September 10, 2026
- Shopify.dev, "Theme performance best practices" (LCP, CLS and INP are the Core Web Vitals used by Google as a ranking signal, TTFB and FCP are diagnostic; Theme Store requires a minimum average Lighthouse performance score of 60 across home, product and collection pages), shopify.dev/docs/storefronts/themes/best-practices/performance, accessed September 10, 2026
- WeltPixel Conversion Tracking, Shopify App Store listing, apps.shopify.com/weltpixel-conversion-tracking, accessed September 10, 2026