A sales popup can slow your store, but a well-built one barely shows up in your speed data. What matters is how the app loads: whether its script blocks the page, how much JavaScript it runs, and whether it pushes your content around when it appears.
This guide covers what to check before you install a popup app, how to test its impact on your own store, and what to do if your numbers drop. For the setup itself, see how to add sales popups to Shopify.
Can a sales popup actually slow down your store?
Yes, in three ways. Each one maps to a different Core Web Vital.
- It blocks rendering. A script loaded in the page head without
deferorasyncmakes the browser stop and wait before it shows anything. - It keeps the browser busy. All JavaScript, from your theme or from apps, runs on the browser’s main thread. Shopify notes that this code “directly competes with the browser’s ability to render content and respond to user input” (Shopify.dev).
- It moves the page. Content that an app inserts into the page can push text and buttons down as it loads. Shopify names “app-injected content” as one of the common causes of layout shift.
None of this is special to popups. Reviews widgets, chat bubbles and upsell blocks have the same risks. A popup is just one more script on the page, so it is worth checking like any other.
Which Core Web Vitals can a popup affect?
Core Web Vitals are Google’s three metrics for real-world user experience. Google “highly recommend[s]” good scores “for success with Search” (Google Search Central). Here is how a popup can touch each one.
| Metric | Good target | How a popup can hurt it | What to look for |
|---|---|---|---|
| Largest Contentful Paint (LCP) | Within 2.5 seconds | Script blocks rendering in the page head | Is the script loaded with defer or async? |
| Interaction to Next Paint (INP) | 200 ms or less | Heavy JavaScript keeps the main thread busy, so taps feel slow | How much code runs, and how often? |
| Cumulative Layout Shift (CLS) | 0.1 or less | Content pushed down when a bar or block appears | Does it float, or does it insert itself into the page? |
Targets are from web.dev, which suggests measuring them at the 75th percentile of page loads, split by mobile and desktop.
A floating corner popup is the friendliest case for CLS. According to web.dev, adding a new element to the page “doesn’t count as a layout shift” as long as it doesn’t move other visible elements (web.dev). A notification that sits in a fixed corner moves nothing. A top bar that pushes your header down does, unless its space is reserved before the page paints.
Why doesn’t one PageSpeed score tell the whole story?
Because a single Lighthouse run is a lab test, and lab tests are noisy. Google lists the common reasons a score moves between runs: A/B tests or ads, internet routing, different devices, browser extensions and antivirus software. It suggests thinking of performance “as a distribution of scores, rather than a single number” (Chrome for Developers).
There are two kinds of data, and they can disagree (web.dev):
- Lab data comes from a controlled test with set device and network settings. PageSpeed Insights and Lighthouse give you this. It is fast and good for before/after checks.
- Field data comes from your real visitors. In Shopify, that is the web performance reports in your admin.
Shopify’s reports show LCP, INP and CLS from real user data, ranked Good, Moderate or Poor. They also show how changes such as app installs and theme updates affect your store. Two limits to know: data can be delayed by up to 36 hours, and only the last 90 days are kept (Shopify Help Center).
How do you test a popup app’s speed impact?
Measure before, install, measure again, then confirm with real visitors.
- Pick three pages. Your home page, your best-selling product page and a collection page. Product pages matter most for a sales popup.
- Take a baseline. Run PageSpeed Insights on each page three to five times. Note the median score and the LCP and CLS values for mobile.
- Note the date. Write down the day you install the app. You will need it when you read Shopify’s reports later.
- Install and turn on the app. Set up the popups you actually plan to run, not just the defaults.
- Test the same pages again. Same tool, same number of runs. Compare medians, not single runs.
- Check it by eye on a phone. Load the product page and watch. Does anything jump? Does the add to cart button respond right away?
- Wait for field data. After a week or two, open your web performance reports in the Shopify admin. Compare LCP, INP and CLS before and after the install date.
If the median changes by a few points and the field data stays Good, the app is not your problem. If one metric drops clearly, keep reading.
What should you check in a popup app before you install it?
Read the listing and the docs with these questions in mind. A good developer can answer all of them.
- How does it get into your theme? Look for a theme app embed. It switches on and off in the theme editor, with no code pasted into your theme files.
- Does the script load deferred? A deferred script waits until the page has been parsed, so it doesn’t block your content from showing.
- How many scripts and files does it load? Every extra file is one more request and more code to run, so fewer is better.
- Do popups float or push? Corner notifications should sit above the page. Bars at the top should reserve their space so the page doesn’t jump.
- Will its styles clash with your theme? Apps that isolate their styles, for example with a shadow DOM, are less likely to break your theme or be broken by it.
- What happens when you uninstall? Shopify warns that “some apps add code to your online store theme that isn’t automatically removed when you uninstall the app” (Shopify Help Center). App embeds avoid this, because the code is not in your theme files.
- Is it Built for Shopify? One of Shopify’s requirements for the badge is that an app “must not reduce the storefront Lighthouse performance score by more than ten points” (Shopify.dev). That is a ceiling, not a promise for your store, so still run your own test.
How does Sam FOMO load on your storefront?
Sam FOMO is our sales popup and social proof app. It is free to install, Built for Shopify and rated 4.6★ from 17 reviews on the Shopify App Store (Oct 2026). Here is how it loads, checked against the questions above.
| Question | Sam FOMO |
|---|---|
| How it gets into your theme | The Sam Boost Sales app embed, switched on from the setup guide (install guide) |
| Script loading | One deferred script from Shopify’s CDN |
| Settings | Read from app metafields |
| Corner notifications | Float in the corner you choose, above the page |
| Top promo bar | Its space is reserved before the first paint, so it doesn’t push the page down when it shows |
| Style isolation | Popups are drawn inside a shadow DOM, so your theme’s CSS and the popup styles don’t clash |
| Turning it off | Switch off the app embed in the theme editor and save |
Because it is an app embed, you can run a clean comparison. Switch the embed off, test, switch it back on and test again. Nothing else on the page changes.
Which popup settings affect what shoppers feel?
Speed is not only about scripts. A popup that opens too early or too often feels slow, even if your scores are fine. In Sam FOMO, every notification has the same controls for this (design, placement and timing guide):
- Timing. Set the delay before the first popup, how long each one stays and the gap between popups, in seconds. A delay keeps popups out of the way while shoppers first look at the page.
- More timing options. Limit how many times popups show per page, or show each one only once.
- Show on. Pick all pages, the home page, product pages, collection pages, the cart page or specific pages. Fewer pages means fewer popups.
- Corner. If two notifications share a corner with the same offsets, they stack. The editor warns you when another notification already uses that corner.
For how many popups to run and how far apart, see how many popups is too many. For when to open an email popup, see popup timing: delay, scroll or exit intent. For where each widget should sit, see social proof widget placement.
What if your speed drops after you install a popup?
Find the cause before you remove anything. A drop right after an install is not always the new app.
- Turn off the app embed and retest. If the score comes back, the app is the cause. If not, look elsewhere.
- Check for leftovers. Apps you removed in the past may have left code in your theme files. Ask those developers how to clean it up.
- Count your scripts. Several apps that each add a widget to the product page add up. Turn them off one at a time to find the heaviest.
- Cut what you don’t use. In Sam FOMO, check Analytics for impressions, clicks, CTR and close rate by popup type (analytics guide). A popup with a high close rate and few clicks costs attention and gives little back.
- Contact the developer. Share the page URL and your before/after results. A good developer will look into it.
What’s the takeaway?
Most of a popup’s speed cost comes from how it loads, not from the fact that it is a popup. Pick an app that loads deferred through an app embed and floats above the page. Then test your key pages before and after, compare medians, and confirm with your Shopify web performance reports.
Speed is one part of social proof that shoppers trust. Real orders, honest stock levels and popups that don’t get in the way do the rest. The social proof guide for Shopify shows how the pieces fit together.
Frequently asked questions
Do sales popups slow down a Shopify store?
They can, but they don't have to. Shopify lists app scripts that block rendering and app-injected content as common causes of slow loading and layout shift. A popup that loads its script deferred and floats above the page in a fixed corner usually has a small effect. Test your own store before and after installing to know for sure.
Which Core Web Vitals can a popup affect?
All three in theory. Largest Contentful Paint (LCP) if the script blocks the page from rendering, Interaction to Next Paint (INP) if its JavaScript keeps the main thread busy, and Cumulative Layout Shift (CLS) if it pushes content down as it appears. Good targets are LCP within 2.5 seconds, INP of 200 ms or less and CLS of 0.1 or less.
Why does my PageSpeed score change every time I test?
Lighthouse scores move with test conditions, such as network routing, the device, browser extensions and ads or A/B tests on the page. Run each test several times and compare the median, and treat real-user data from your Shopify web performance reports as the final word.
How does Sam FOMO load on the storefront?
Through the Sam Boost Sales app embed, so there is no theme code to edit. It loads one deferred script from Shopify's CDN, reads its settings from app metafields and draws popups inside a shadow DOM so your theme's CSS and the popup styles don't clash.
Sources
- web.dev: Web Vitals
- web.dev: Cumulative Layout Shift (CLS)
- web.dev: Why lab and field data can be different (and what to do about it)
- Chrome for Developers: Lighthouse performance scoring
- Google Search Central: Understanding Core Web Vitals and Google search results
- Shopify Help Center: Web performance reports
- Shopify.dev: Theme performance best practices
- Shopify.dev: Built for Shopify requirements
- Shopify Help Center: Uninstalling apps
Part of our guide: Social proof →