Skip to content

Does Klaviyo slow down your Shopify store?

Klaviyo's emails are not what slows the product page. The onsite file klaviyo.js does, when it runs before the product photo paints.

Whoosh founders 21 September 2026

Does Klaviyo slow down your Shopify store?

The script, not the emails

Klaviyo slows a Shopify product page when the browser has to run klaviyo.js before it can paint the product photo, and the emails you send are not the slow part. Klaviyo is the app that sends campaigns and can show an onsite form. The Shopify install adds a JavaScript file so that form, and the onsite tracking, can run in the visitor’s browser.

That file is klaviyo.js, usually requested from static.klaviyo.com, and a form can also call static-forms.klaviyo.com. If that work happens before the hero image finishes, the photo is waiting on the script, so you keep the email tool and change when the script is allowed to run.

Good Largest Contentful Paint is 2.5 seconds or faster at the 75th percentile of real Chrome users, and poor is slower than 4.0 seconds, which is the bar in web.dev’s vitals documentation. Google Search uses that field data as a page-experience signal. On a product page, the metric that moves when a marketing tag loads early is Largest Contentful Paint, which is the moment the largest element, usually the product photo, appears for a real visitor.

Search Console and CrUX collect that picture over about 28 days, and that record is what ranking looks at. PageSpeed Insights is one lab phone on a simulated network, useful for naming the file, while the field data is what tells you whether the origin is actually slow.

What you see on a product page

Open a product page that is live and has the Klaviyo form or onsite tracking turned on. The theme editor preview is the wrong page, because it often drops the app embed, so the script you came to find is simply not there.

In Chrome DevTools, open the Network panel, disable the cache, and reload with mobile throttling on, then filter by JS and look for klaviyo.js or a request to static.klaviyo.com. Open the Performance panel and find main-thread work before the LCP marker. If Klaviyo’s script evaluation sits before the product image finishes painting, that tag is on the critical path, which means the browser spent the first moments of the page on the marketing file instead of the photo.

You can compare a theme preview that removes the snippet, or turn off an unused onsite form inside Klaviyo, and what you want to see is LCP moving rather than the domain disappearing from the store.

Klaviyo’s Shopify install is the app embed, or the klaviyo.js snippet described in their help centre, and that install is supposed to be there. Shopify’s theme performance guidance says third-party JavaScript is a main reason a light theme feels heavy once the store is live, and Klaviyo becomes that script when it shares the first paint window with the hero image.

On a catalog product template the LCP element is the product photo, so theme CSS, Shopify’s own analytics, Klaviyo, a reviews widget, and a pixel can all parse before that photo lands. The specific case to look for is a hero image with loading="lazy" while klaviyo.js sits in the head and starts immediately. The browser then fetches the popup loader while the photo waits in the queue. Reload the URL a shopper uses, because you do not need a lab URL someone else published.

Why the photo waits

App embeds and snippets in theme.liquid inject marketing tags near the start of the document. Putting async on a script tag does not save you when several tags share a slow mobile connection, because they still queue bandwidth and parser work before the product image finishes. The priority flips when the theme lazy-loads the hero and a popup loader is eager. Google’s LCP optimization guide says the LCP image should be discoverable early and fetched with high priority, which is why you do not lazy-load that image.

After the file downloads, a form that queries the DOM, attaches observers, and paints a modal still spends main-thread time, and chat and reviews do this at least as often as email. Stores that add Klaviyo often add those other tags the same week. If you remove only Klaviyo and LCP barely moves, open the same Network and Performance panels and inspect the rest of the stack the way you inspected klaviyo.js.

What you change

You can stop when mobile LCP at the 75th percentile is at or under 2.5 seconds, or when field data says the remaining gap is the image file or the theme CSS rather than a marketing tag. Confirm the LCP element in Search Console or in PageSpeed Insights field data first, and if it is not the product image, Klaviyo is the wrong week of work.

Stop lazy-loading the hero on the product template and the home template, and preload that image URL if the theme does not already do it. In Klaviyo, turn off onsite JavaScript you do not use, and prefer the app embed over a second snippet in theme.liquid, because a second copy means klaviyo.js runs twice.

Load Klaviyo after the page is usable, after the load event or on the first tap, then tap the form on a phone so you know it still submits, and never defer payment scripts or Shopify checkout scripts. Measure again on real users, because CrUX needs about 28 days and your own real-user timings can answer sooner, so one green lab score is not the finish.

Whoosh App Sequencing matches known third-party scripts and loads them after first paint so they do not race the product image, and it does not copy the theme. App Sequencing is US$99/month. Everything, which adds a prerender of the likely next page and a preload of the real LCP image, is US$149/month, with a 7-day free trial on every plan. Append ?whoosh=disable for one DevTools view with Whoosh off.

Nakie moved load time from 4.8 seconds to 1.35 seconds, and TileCloud recorded a 15% conversion lift. If LCP is still poor after those tags move, the next place to look is oversized product media, page-builder CSS, or fonts. The free speed audit measures the page, and the FAQs cover what install does.

FAQ

Will the Klaviyo form still submit if the script waits?

Yes, if you wait until load or the first tap, rather than blocking the tag. Open the form on a phone after the change and send a test through it.

Should I uninstall Klaviyo to fix the product page?

No. Turn off onsite features you do not use, drop a duplicate snippet, and load the tag after first paint. Pulling email to chase a lab score usually costs more than it returns.

Why is PageSpeed green when Search Console says LCP is poor?

The lab score is one device and one network. Ranking uses real-user Core Web Vitals at the 75th percentile over about 28 days. Use PageSpeed to name the file. Trust field data for the origin.

Do I have to edit theme.liquid?

Not always. Prefer the Klaviyo app embed over a second manual snippet, turn off unused onsite JavaScript, and stop lazy-loading the product image.

Sources

  1. web.dev on Largest Contentful Paint
  2. web.dev on Web Vitals thresholds
  3. Google Search Central on Core Web Vitals
  4. web.dev on optimizing LCP
  5. Shopify theme docs on third-party scripts
  6. Klaviyo help centre, getting started

Figures are from the public Google, Shopify, and Klaviyo pages linked below. No unpublished merchant data.

See what slow pages cost you

Free speed audit. Paste your store URL, no install.

Get a Free Speed Audit