Guide · Updated August 26, 2026
Shopify Core Web Vitals Guide: Fix LCP, CLS & INP (2026)
Struggling with Shopify Core Web Vitals? Start by running a free speed test to see where you stand, then follow this guide to fix LCP, CLS, and INP on your Shopify store — with actionable steps that actually work.
⚡ Quick Answer
Core Web Vitals are three Google metrics that measure your Shopify store's real-world user experience: LCP (loading speed — aim for under 2.5s), INP (interactivity — aim for under 200ms), and CLS (visual stability — aim for under 0.1). They've been a Google ranking factor since 2021. The biggest CWV issues on Shopify are caused by unoptimized images, third-party app scripts, and layout shifts from dynamic content. Check your scores at PageSpeed Insights and fix issues using the step-by-step instructions below.
🚀 Quick Wins (Start Here)
Short on time? Focus on these high-impact fixes first:
- 1. Install Thunder Page Speed Optimizer — Automatically fixes 80% of Core Web Vitals issues in minutes. Get Thunder →
- 2. Remove unused Shopify apps — Each app adds ~150-300ms to your LCP. Audit your apps monthly.
- 3. Optimize your hero image — Compress it, convert to WebP, and add
fetchpriority="high"to your theme. - 4. Add image dimensions — Prevent layout shifts by setting width/height on all images in your theme files.
⏱️ These 4 steps take ~30 minutes and typically improve Core Web Vitals scores by 40-60 points.
📑 Table of Contents
- 1. What Are Core Web Vitals?
- 2. Why CWV Matter for Shopify
- 3. The Easy Fix: Automatic Optimization
- 4. How to Check Your CWV
- 5. New Stores & Missing Field Data
- 6. Fonts, Scripts & Banners
- 7. August 2026 CWV Benchmarks
- 8. Can Shopify Hit 90+ Mobile?
- 9. Common CWV Issues on Shopify
- 10. Shopify Admin vs Theme vs App Fixes
- 11. How to Fix LCP
- 12. How to Fix INP
- 13. How to Fix CLS
- 14. Shopify-Specific Challenges
- 15. Tools for Monitoring CWV
- 16. FAQ
1. What Are Core Web Vitals?
Core Web Vitals (CWV) are a set of three specific metrics that Google uses to measure the real-world user experience of a web page. Introduced by Google in 2020 and made a ranking signal in 2021, they focus on three pillars: loading performance, interactivity, and visual stability.
LCP
Largest Contentful Paint
Measures how fast the main content of your page loads. Specifically, it tracks when the largest visible element (usually a hero image or heading) finishes rendering.
INP
Interaction to Next Paint
Measures how quickly your page responds to user interactions — clicks, taps, and keyboard input. INP replaced FID (First Input Delay) in March 2024 as a more comprehensive responsiveness metric.
CLS
Cumulative Layout Shift
Measures how much the page layout shifts unexpectedly while loading. Ever click a button only to have it move and you click something else? That's CLS. It's a unitless score, not measured in time.
Official 2026 Core Web Vitals thresholds
Google and web.dev still define a good Core Web Vitals experience as LCP at 2.5 seconds or less, INP at 200 milliseconds or less, and CLS at 0.1 or less. Those are the targets to use when you check a Shopify store in PageSpeed Insights, Search Console, or the free Shopify speed test.
The 2026 priority is not chasing a perfect lab score on one homepage run. Start with the templates that get revenue traffic: homepage, top collection page, top product page, and paid landing pages. If they fail the official web.dev Core Web Vitals thresholds, fix app-script blocking with Thunder first, then handle the remaining LCP image, INP long-task, or CLS layout work manually.
These metrics are measured using real user data (called "field data") collected from Chrome users who visit your site. This is different from lab tests — Google cares about what actual visitors experience, not just what a testing tool reports.
🆕 2025–2026 Update: CWV Goes Cross-Browser & Google Tightens the Screws
As of December 2025, LCP and INP are now "Baseline Newly Available" across all major browsers — Chrome, Firefox, Safari, and Edge. This means Real User Monitoring (RUM) tools can now collect CWV data from virtually all your visitors, not just Chrome users. CLS is still Chromium-only but is proposed for Interop 2026 inclusion.
According to the 2025 Web Almanac, 48% of mobile websites now pass all three Core Web Vitals — up from 44% in 2024 and 36% in 2023. The bar is rising every year. If your Shopify store isn't passing CWV yet, you're falling behind more competitors each month.
March 2025 Core Update impact: Google's March 2025 core algorithm update further emphasized page experience signals. E-commerce sites with poor CWV saw measurable ranking drops, while stores that passed all three metrics gained visibility. For Shopify merchants, this makes CWV optimization one of the highest-ROI activities in 2026.
Q2 2026 outlook: Google's documentation now explicitly lists CWV as part of "helpful content" evaluation for e-commerce, and Chrome's Web Vitals extension shows real-time field data overlays. With cross-browser INP measurement becoming standard, stores that haven't optimized for interactivity are increasingly visible as outliers. The window to gain a competitive advantage is narrowing — act now while most Shopify merchants are still ignoring CWV.
June 2026 update: If you're searching for "Core Web Vitals Shopify" or "how to pass Core Web Vitals on Shopify", you probably need a direct pass/fail playbook, not a theory lesson. Start with the metric most visible on product and homepage templates: mobile LCP. See our Shopify LCP optimization guide for the exact preload + fetchpriority pattern, then use this guide to clean up INP and CLS.
💡 INP: The Metric Most Shopify Stores Overlook
Since replacing FID in March 2024, INP has become the hardest Core Web Vital for Shopify stores to pass. Unlike FID (which only measured the first interaction), INP tracks responsiveness across every tap, click, and keypress during the entire visit. Shopify stores with multiple apps — review widgets, chat popups, email capture tools — often fail INP because each app registers event listeners that compete for main-thread time.
According to Chrome UX Report data, only 65% of Shopify origins pass INP compared to 89% for CLS and 72% for LCP. If you're troubleshooting why your Shopify store is slow, INP is likely the bottleneck you haven't checked yet.
2. Why Core Web Vitals Matter for Shopify Stores
SEO Impact
Google has used Core Web Vitals as a ranking signal since the Page Experience update in 2021. While content relevance and backlinks still dominate rankings, CWV act as a tiebreaker. If two product pages are equally relevant for a query, the faster one with better CWV scores is more likely to rank higher.
For competitive Shopify niches — fashion, beauty, supplements — this tiebreaker can be the difference between page one and page two. Understanding how your Shopify speed score works helps you prioritize which metrics to tackle first.
Conversion Impact
CWV improvements directly correlate with better conversion rates. Studies consistently show:
- A 100ms decrease in LCP can increase conversions by up to 1.3% (Vodafone case study)
- Reducing CLS by 0.2 points can decrease bounce rate by 15%
- Pages with good INP scores see significantly higher add-to-cart rates
For a Shopify store doing $50K/month, even a 1% conversion improvement translates to $6,000+ in additional annual revenue. To understand the full picture, read our deep dive on how Shopify speed impacts conversions.
Real-World Business Impact of Core Web Vitals
These aren't hypothetical numbers. Major companies have published the business results of their Core Web Vitals improvements:
| Company | CWV Improvement | Business Result |
|---|---|---|
| Vodafone | 31% better LCP | +8% sales |
| Tokopedia | 55% better LCP | +23% avg session duration |
| Redbus | CLS 1.65 → 0 | +80–100% mobile conversions |
| Rakuten 24 | CWV optimization | +53% revenue per visitor |
| Nykaa | 40% better LCP | +28% organic traffic |
| Tencent Video | Passing CWV | +70% click-through rate |
The Easy Fix: Automatic Core Web Vitals Optimization
Before diving into the manual fixes below — there's a much easier way. Thunder Page Speed Optimizer automatically fixes the most common Core Web Vitals issues on Shopify, with no code changes required.
What Thunder fixes automatically:
LCP — Script Deferral
Defers render-blocking scripts so your hero image loads faster
LCP — Critical CSS Inlining
Inlines above-the-fold CSS for instant rendering
INP — Main Thread Optimization
Defers heavy third-party scripts that block interactivity
CLS — Font Optimization
font-display: swap and preloading prevent layout shifts from fonts
Image Optimization
Lazy loading, WebP, responsive sizing — all automatic
CWV Monitoring Dashboard
Track LCP, INP, CLS trends directly in your Shopify admin
Average improvement: +27 PageSpeed points
Most stores go from failing Core Web Vitals to passing within minutes of enabling Thunder. 4.6★ rating · 20,000+ stores. See Thunder pricing plans.
Free plan available · No credit card required · 30-second setup · Works with all themes
3. How to Check Your Shopify Store's Core Web Vitals
Google PageSpeed Insights
The easiest starting point. Go to pagespeed.web.dev and enter your store URL — or use our free Shopify speed test tool for a quick analysis. You'll see both:
- Field data (real user metrics from CrUX) — this is what Google uses for ranking
- Lab data (simulated test) — useful for debugging but doesn't directly affect rankings
💡 Test your homepage, a collection page, and a product page separately — they often have very different scores.
Google Search Console — Core Web Vitals Report
In GSC, navigate to Experience → Core Web Vitals. This shows a site-wide overview of how your pages perform, grouped into Good, Needs Improvement, and Poor. It's the best way to see which page types have problems.
💡 GSC uses a 28-day rolling average, so changes take time to reflect.
Chrome UX Report (CrUX)
For advanced users, the Chrome UX Report provides granular real-user data via BigQuery or the CrUX API. It's the same dataset that powers PageSpeed Insights' field data.
Chrome DevTools
Open DevTools (F12), go to the Performance tab, and record a page load. You'll see exactly when LCP fires, which elements cause layout shifts, and what's blocking the main thread. The Lighthouse tab also provides a CWV audit with specific fix suggestions.
New Shopify Store? Why Core Web Vitals Field Data May Be Missing
A recurring merchant question is: “How long does it take for a new Shopify store to pass Core Web Vitals?” The honest answer is that Google cannot grade your real-user Core Web Vitals until it has enough Chrome UX Report visits for the page or origin. New stores, low-traffic stores, and newly launched domains often show “not enough real-world speed data” in PageSpeed Insights.
Do this while you wait for CrUX data
- Do not wait 28 days to optimize: Run the free Shopify speed test on the homepage, one collection page, and one product page as soon as the store is live.
- Use lab data as your early warning system: A lab LCP above 4s, Total Blocking Time above 300ms, or visible CLS usually predicts problems once real-user data arrives.
- Prioritize the mobile product page: New stores often send paid/social traffic to PDPs before Google has field data. Fix the first product image, variant gallery, reviews, subscriptions, and upsell widgets before scaling ads.
- Save a baseline snapshot: Test before and after every app install or theme launch. If a new review app, popup, or GTM container adds 150KB+ of JavaScript, investigate it before traffic grows.
- Re-check Search Console later: Google Search Console groups Core Web Vitals over a rolling 28-day window, so a pass/fail status may lag behind your fixes even when PageSpeed lab data improves immediately.
If PageSpeed Insights says there is no field data, treat that as unknown, not “good.” Use the Shopify performance analyzer to find app-script and request groups now, then let Thunder handle safe script deferral and speed optimization before those issues become Search Console warnings.
Core Web Vitals Triage: Custom Fonts, Third-Party Scripts, and Banner Graphics
A fresh Shopify Community question asked how to improve Core Web Vitals while using custom typefaces, third-party scripts, and high-resolution banner graphics. That is the exact mix that makes Shopify CWV confusing: each item hurts a different metric, so fixing “images” alone rarely gets the store into the green.
| Store element | CWV metric usually affected | What to check first | Safe first fix |
|---|---|---|---|
| Custom fonts and brand typefaces | Text LCP, CLS, and perceived jank when fallback text swaps | Check whether the LCP element is headline text, whether fonts load from a third-party host, and whether multiple weights/styles load above the fold. | Keep only critical weights, preload the above-the-fold font, match fallback metrics, and follow the Shopify font optimization guide. |
| Third-party scripts: reviews, chat, analytics, pixels, popups | INP, Total Blocking Time, and LCP render delay | Run the free Shopify speed test and group requests by vendor. Look for scripts that execute before the hero/product content appears. | Delay non-essential apps until interaction or idle, remove unused pixels, and use third-party script deferral before deleting revenue-critical apps. |
| High-resolution banner and hero graphics | LCP load delay, resource load time, and mobile Speed Index | Confirm the actual mobile LCP element. A desktop-perfect 2400px banner can still be the wrong asset for a 390px mobile viewport. | Serve a responsive Shopify CDN width, remove lazy loading from the first hero image, add fetchpriority="high", and use the LCP optimization checklist. |
The quick diagnosis order
- Test the mobile URL first: homepage, top collection page, and top product page can fail for different reasons.
- Map the problem to one CWV metric: fonts often mean text LCP/CLS, third-party scripts often mean INP/render delay, and banner graphics often mean image LCP.
- Let Thunder handle the broad safe layer: app-script deferral, critical CSS, and font optimization are usually safer to automate than hand-edit in a live theme.
- Use manual fixes only where the evidence points: edit the hero image markup, font loading, or one app embed after the analyzer shows which template and vendor are responsible.
August 2026 Core Web Vitals Benchmarks for Shopify
The Core Web Vitals bar is no longer low. The HTTP Archive CrUX report tracks the share of origins passing all three metrics with real Chrome users, and 2026 public benchmarks consistently show that roughly half of the mobile web passes all three. That means failing CWV is common, but passing puts your Shopify store ahead of a large part of the market.
2.5s
Good LCP threshold at the 75th percentile
200ms
Good INP threshold for real user interactions
0.1
Good CLS threshold for visual stability
For Shopify, the practical takeaway is simple: do not optimize for a vanity lab score first. Optimize the template that gets search impressions, test on mobile, and make sure real visitors pass LCP, INP, and CLS together. Start with the free speed test, then follow our LCP fix guide, INP fix guide, and CLS fix guide for the specific failing metric.
Can a Shopify Store Get a 90+ Mobile PageSpeed Score?
Yes — but chase the right target first. A merchant asking for “90+ mobile” usually has one of two problems: the store fails Core Web Vitals in real-user data, or the PageSpeed Insights lab score looks low even though field data is already passing. Those are not the same problem.
Use this priority order before paying for fixes
- Check field data first: In PageSpeed Insights, look for real-user LCP, INP, and CLS. If field data is missing, test your homepage, top collection, and top product URL with the free Shopify speed test and save the baseline.
- Fix failing CWV before chasing a score: Passing LCP under 2.5s, INP under 200ms, and CLS under 0.1 matters more than turning an 82 lab score into 91.
- Remove or defer the biggest script groups: Reviews, chat, personalization, popups, subscriptions, GA/GTM, Meta, TikTok, and Klaviyo often load on every page. Use the Shopify performance analyzer to identify app-script clusters before deleting apps blindly.
- Fix the LCP element next: On Shopify this is usually the hero image or main product image. Preload it, set
fetchpriority="high", and do not lazy-load it. - Only then optimize for 90+: Trim unused homepage sections, reduce font weights, compress oversized imagery, and move non-critical tracking until after consent, interaction, or idle time.
A realistic outcome for many Shopify stores is passing Core Web Vitals with a mobile PageSpeed score in the 80s. A lean theme with limited app scripts can reach 90+. A conversion-heavy store with reviews, bundles, analytics, and ads may need a hybrid approach: let Thunder handle safe automatic deferral, then manually clean the one or two scripts or templates still hurting LCP or INP. If the store still fails after app cleanup, that is when professional speed optimization makes sense.
4. Common Core Web Vitals Issues on Shopify
🎨 High LCP (Slow Loading)
The most common CWV problem on Shopify. Typical causes:
- Large hero images: Uncompressed PNG/JPEG images over 500KB served without modern formats (WebP/AVIF)
- Render-blocking scripts: Third-party app scripts that execute before the main content renders. The average Shopify store loads 15-25 app scripts — many of them blocking
- Slow server response (TTFB): Shopify's shared hosting can have variable response times, especially during traffic spikes
- No preloading: Critical resources like hero images and fonts not preloaded, causing the browser to discover them late
- Excessive CSS: Large, unoptimized CSS files that delay first render
👆 Poor INP (Slow Interactivity)
INP issues are almost always caused by JavaScript blocking the main thread:
- Heavy JavaScript execution: App scripts running expensive operations on every page load
- Third-party apps blocking main thread: Chat widgets, review apps, and analytics tools often register event listeners that slow down interaction processing
- Long tasks: Any JavaScript task over 50ms blocks the browser from responding to user input
- Too many event listeners: Multiple apps attaching listeners to the same elements (e.g., add-to-cart buttons)
📐 CLS Issues (Layout Shifts)
Visual instability that frustrates users:
- Images without dimensions: When
widthandheightattributes are missing, the browser can't reserve space before the image loads - Dynamic content injection: Banners, popups, and notification bars that push content down after initial render
- Font loading (FOUT/FOIT): Custom fonts that cause text to reflow when they finish loading
- Lazy-loaded content above the fold: Content that should load immediately but is deferred
- App-injected elements: Review widgets, trust badges, and upsell carousels that load asynchronously and shift content
What Do I Actually Change in Shopify?
If your PageSpeed report says “poor Core Web Vitals” but does not explain what to do in Shopify, use this diagnostic order. Start with the no-code checks, then edit theme code only when the same metric still fails on your money pages.
| Failing metric | Shopify admin check | Theme/code check | App cleanup check |
|---|---|---|---|
| LCP above 2.5s | Replace oversized hero/product images, remove extra slideshow slides, and test the homepage plus top product URL in the free Shopify speed test. | Make the first visible image eager, add fetchpriority="high", preload the LCP image, and inline only above-the-fold CSS. | Defer reviews, chat, personalization, popup, subscription, and tracking scripts that load before the LCP image is discovered. |
| INP above 200ms | Audit apps installed in the last 30 days and remove features that are not actively used on product or cart pages. | Break long custom JavaScript tasks, debounce variant/filter handlers, and avoid heavy scripts on add-to-cart interactions. | Use the Shopify analyzer to group app domains by script weight before uninstalling apps blindly. |
| CLS above 0.1 | Turn off sticky bars, promo banners, or app blocks one at a time in a duplicate theme preview and retest the shifted page. | Add image dimensions, reserve space for reviews/video embeds, and set stable heights for announcement bars and product media galleries. | Delay below-the-fold widgets, but reserve space for anything that appears above the fold so it does not push content down. |
Safe workflow before changing live theme code
- Run a baseline test on the homepage, one collection page, and one high-traffic product page.
- Duplicate the live theme and test changes in preview instead of editing the published theme first.
- Change one thing at a time: one app embed, one hero image, or one theme section.
- Retest the same URL and compare LCP element, Total Blocking Time, INP risk, and CLS diagnostics.
- If the problem is mostly third-party scripts, let Thunder handle safe script deferral before paying for custom development.
5. How to Fix LCP on Shopify
⚡ Skip the manual work: Thunder automatically defers render-blocking scripts, inlines critical CSS, and optimizes images — the three main causes of high LCP on Shopify.
LCP is the most impactful metric to improve on Shopify. For a dedicated walkthrough, see our Shopify LCP optimization guide. Here's a step-by-step approach:
Step 1: Identify Your LCP Element
Open PageSpeed Insights and look at the "Largest Contentful Paint element" diagnostic. On most Shopify stores, the LCP element is the hero image on the homepage or the main product image on product pages.
Step 2: Optimize the LCP Image
- Use Shopify's image CDN: Shopify automatically serves images via their CDN. Append
_800x.webpor use theimage_urlfilter in Liquid to request specific sizes and modern formats - Right-size images: Don't serve a 3000px wide image for a 800px container. Use Liquid's
| image_url: width: 800filter - Preload the LCP image: Add a preload hint in your theme's
theme.liquid:<link rel="preload" as="image" href="{{ section.settings.hero_image | image_url: width: 800 }}" fetchpriority="high"> - Add
fetchpriority="high": On your hero image's<img>tag, add this attribute to tell the browser to prioritize it - Don't lazy-load the LCP image: Remove
loading="lazy"from your hero/product image. Learn more about proper lazy loading implementation
Step 3: Reduce Render-Blocking Resources
- Defer non-critical JavaScript: Add
deferorasyncto script tags that aren't needed for initial render - Audit app scripts: Use Chrome DevTools' Network tab filtered to JS — identify which app scripts load synchronously and delay rendering. Consider removing unused apps or finding lighter alternatives
- Inline critical CSS: Extract the CSS needed for above-the-fold content and inline it in the
<head>
Step 4: Improve Server Response Time
- Reduce Liquid complexity: Deeply nested loops and complex Liquid logic increase server-side render time
- Minimize redirects: Each 301 redirect adds 100-300ms. Avoid unnecessary URL redirects
- Use Shopify's CDN effectively: Ensure static assets are served from Shopify's CDN, not third-party servers
- Choose a fast base theme: Your theme is the foundation — see our list of the fastest Shopify themes for 2026
Not sure whether to tackle LCP yourself or hire help? Read our comparison of DIY vs expert speed optimization to decide what's right for your store.
6. How to Fix INP on Shopify
⚡ Skip the manual work: Thunder defers heavy third-party app scripts that block the main thread — the #1 cause of poor INP on Shopify.
INP measures the worst interaction responsiveness throughout a user's visit. Here's how to improve it:
Step 1: Identify Long Tasks
Open Chrome DevTools → Performance tab → record a page load and interact with the page. Look for long tasks (marked with red corners) that exceed 50ms. These tasks block the main thread and delay interaction responses.
Step 2: Defer Third-Party App Scripts
- Audit installed apps: Each Shopify app may inject JS that runs on every page load. Review your apps in Settings → Apps and sales channels and remove any you're not actively using
- Delay non-essential scripts: Chat widgets, review popups, and loyalty programs don't need to load immediately. Defer them until after user interaction or a few seconds of idle time
- Use
requestIdleCallback: If you have custom JavaScript, wrap non-critical work inrequestIdleCallback()to yield to the main thread
Step 3: Break Up Long Tasks
- Yield to the main thread: Use
scheduler.yield()(where supported) orsetTimeout(fn, 0)to break long tasks into smaller chunks - Debounce event handlers: If you have scroll or resize event handlers, debounce them to reduce main thread work
Step 4: Reduce JavaScript Payload
- Remove unused JavaScript: Use Chrome DevTools' Coverage tab (Ctrl+Shift+P → "Coverage") to find JS that loads but never executes
- Code-split where possible: Load JavaScript for specific features (like a size guide modal) only when the user triggers them
- Prefer CSS over JS: Animations, hover effects, and simple interactions can often be handled with CSS instead of JavaScript
- Audit your apps: Check our app speed impact reports to see how much JavaScript each common Shopify app adds
For a comprehensive speed improvement checklist that covers INP and all other metrics, see our Shopify store optimization checklist.
7. How to Fix CLS on Shopify
CLS is often the easiest metric to fix, yet many Shopify stores ignore it. Here's how:
Step 1: Set Explicit Dimensions on All Media
- Add width and height to images: Every
<img>tag should havewidthandheightattributes. In Liquid:<img src="{{ image | image_url: width: 400 }}" width="400" height="400" alt="{{ image.alt }}" style="aspect-ratio: 1/1;"> - Use
aspect-ratioCSS: For responsive images, setaspect-ratio: 16/9(or whatever ratio applies) in CSS to reserve space - Set dimensions on iframes and videos: YouTube embeds and video players need explicit sizing too
Step 2: Reserve Space for Dynamic Content
- Announcement bars: If you use a top banner, set a fixed
min-heightso content below it doesn't shift when it loads - Review widgets: Reserve a
min-heightfor the review section based on typical content height - App-injected elements: Use CSS
contain: layoutto prevent injected elements from shifting surrounding content
Step 3: Optimize Font Loading
- Use
font-display: swap: This shows a fallback font immediately and swaps when the custom font loads — preventing invisible text (FOIT) - Preload critical fonts: Add
<link rel="preload" as="font" href="..." crossorigin>for your primary font files - Use system font stacks as fallback: Match your fallback font metrics to your custom font using
size-adjust,ascent-override, anddescent-overrideto minimize reflow
Step 4: Avoid Late-Loading Above-the-Fold Content
- Don't lazy-load above-the-fold images: Only apply
loading="lazy"to images below the fold. See our lazy loading guide for implementation details - Avoid
document.write(): Scripts that usedocument.write()inject content late and cause shifts - Load ads/banners with reserved space: If using promotional banners, always set fixed dimensions
8. Shopify-Specific CWV Challenges
Shopify's platform creates some unique challenges that don't apply to custom-built sites:
Liquid Rendering
Shopify uses the Liquid templating engine for server-side rendering. Complex Liquid templates with nested loops (e.g., iterating through product variants within collection loops) increase Time to First Byte (TTFB), which directly impacts LCP. Simplify your Liquid templates and avoid unnecessary computation in templates.
App Script Bloat
This is the #1 CWV challenge on Shopify. Unlike custom platforms where you control every script, Shopify apps inject their own JavaScript into your storefront. You can't easily modify or optimize these scripts. Each app adds to your total JavaScript payload, increases main thread blocking time, and can cause layout shifts.
The solution: ruthlessly audit your installed apps. Remove anything you're not using. For essential apps, test their CWV impact individually by temporarily disabling them. Some apps offer "lite" or "lazy-load" modes — use them. For a comprehensive look at how apps affect performance, see our guide on third-party script impact on Shopify. You can also check our best speed optimization apps in 2026 to find tools that help rather than hurt your CWV scores.
Limited Server-Side Control
You can't configure server caching, HTTP/2 push, or edge workers on Shopify. Your server-side optimization options are limited to Liquid efficiency and Shopify's built-in CDN. This is a trade-off of the hosted platform model.
Checkout Speed
Shopify controls the checkout experience, and you have limited ability to optimize it (especially on non-Plus plans). The good news: checkout pages typically aren't indexed by Google, so they don't affect your CWV scores in Search Console. Focus your optimization efforts on the pages that are indexed — homepage, collections, products, and blog posts.
9. Tools for Monitoring Core Web Vitals
Fixing CWV is only half the battle. You need ongoing monitoring because new app installs, theme changes, or content updates can regress your scores at any time. We compared the best Shopify speed test tools to help you pick the right one.
Google PageSpeed Insights
Free. Best for one-off checks. Shows both lab and field data. Provides specific optimization suggestions. No historical tracking.
Google Search Console
Free. Best for site-wide CWV monitoring over time. Groups pages by status (Good/Needs Improvement/Poor). Uses 28-day rolling averages. Essential for any Shopify store owner.
web-vitals JavaScript Library
Free/open source. Google's web-vitals library lets you measure CWV from real users and send data to your own analytics. Requires technical setup.
⚡ Thunder Page Speed Optimizer
If you're using Thunder, it includes built-in Core Web Vitals monitoring directly in your Shopify admin. You get a real-time dashboard showing LCP, INP, and CLS trends over time, plus per-app speed impact reports so you can see exactly which apps are hurting your scores. It's particularly useful because it combines CWV monitoring with the ability to fix issues — especially third-party script bloat — in one place.
Lighthouse CI
Free/open source. For technical teams, Lighthouse CI runs automated lab tests on every deployment. Not practical for most Shopify merchants, but useful if you're developing a custom theme.
2026 Alert Thresholds for Third-Party Script Bloat
The most common Shopify Core Web Vitals regression is not a theme redesign. It is one new app adding JavaScript to every page. Use these alert thresholds after installing reviews, popups, heatmaps, chat, subscriptions, or personalization tools:
- LCP: alert when mobile LCP moves above 2.5s or increases by 0.4s after an app install.
- INP: alert when real-user INP moves above 200ms or lab Total Blocking Time exceeds 200ms.
- JavaScript weight: alert when transferred JS increases by 150KB+ on your homepage, product template, or collection template.
- Third-party requests: investigate when third-party scripts are more than roughly 25% of total page requests.
If any threshold trips, run a fresh Shopify speed test, compare the waterfall against your previous baseline, and check the third-party script optimization guide. Thunder can defer the common app scripts automatically; manual fixes should start with the single script group causing the largest LCP or INP jump.
10. Frequently Asked Questions
What are the official Google Core Web Vitals thresholds in 2026?
Google's official Core Web Vitals thresholds remain LCP at 2.5 seconds or less, INP at 200 milliseconds or less, and CLS at 0.1 or less for a good user experience. For Shopify stores, validate those thresholds on mobile with PageSpeed Insights and Search Console, then prioritize real-user field data over a single lab score.
What are good Core Web Vitals scores for Shopify?
Google considers these scores 'good': LCP under 2.5 seconds, INP under 200 milliseconds, and CLS under 0.1. Most Shopify stores struggle with LCP due to heavy hero images and third-party app scripts. Thunder users typically see all three metrics move into the green zone within minutes of enabling optimizations.
Do Core Web Vitals affect Shopify SEO rankings?
Yes. Google confirmed Core Web Vitals as a ranking factor in 2021 as part of the Page Experience update. While content relevance still matters most, CWV scores act as a tiebreaker between pages with similar content quality. Poor CWV can also indirectly hurt SEO by increasing bounce rates and reducing engagement.
Why is my Shopify store's LCP so high?
The most common causes of high LCP on Shopify are: unoptimized hero images (too large or not using modern formats like WebP), render-blocking JavaScript from third-party apps, slow server response from Shopify's shared infrastructure, and not preloading critical resources. Third-party app scripts are often the biggest culprit.
How do I check my Shopify store's Core Web Vitals?
Use Google PageSpeed Insights (pagespeed.web.dev) for instant lab and field data. Check Google Search Console's Core Web Vitals report for site-wide trends. For real user data, use the Chrome UX Report (CrUX) via BigQuery or the CrUX Dashboard. You can also use tools like Thunder that provide CWV monitoring directly in your Shopify dashboard.
Can Shopify apps cause poor Core Web Vitals?
Absolutely. Third-party Shopify apps are one of the most common causes of poor Core Web Vitals. Each app can inject JavaScript, CSS, and fonts into your storefront. Review widgets, chat apps, analytics trackers, and popup tools are frequent offenders. Thunder automatically defers these scripts without breaking functionality — its smart dependency mapping ensures apps continue working correctly.
What replaced FID in Core Web Vitals?
Google replaced First Input Delay (FID) with Interaction to Next Paint (INP) in March 2024. INP is a more comprehensive metric that measures the responsiveness of all interactions throughout the page lifecycle, not just the first one. INP has a 'good' threshold of 200ms or less.
Does Shopify's checkout affect Core Web Vitals?
Shopify's checkout runs on Shopify's servers and you have limited control over its performance. However, Google primarily evaluates CWV on pages that are indexed in search results — and Shopify checkout pages typically aren't indexed. Focus your CWV optimization efforts on your homepage, collection pages, and product pages.
How long does it take to see CWV improvements in Google Search Console?
Google Search Console's CWV report uses a 28-day rolling average of real user data from the Chrome UX Report. After making improvements, expect to wait 28 days before the report fully reflects your changes. PageSpeed Insights lab data updates immediately, so use that for quick validation.
What is the fastest way to optimize Core Web Vitals on Shopify?
The fastest approach is installing a speed optimization app like Thunder that automatically defers render-blocking scripts, inlines critical CSS, and optimizes fonts — the three main causes of poor CWV on Shopify. Most stores go from failing to passing Core Web Vitals within minutes. For a manual approach, start with your LCP element (usually the hero image): preload it, add fetchpriority='high', and defer non-critical JavaScript. Then address CLS by adding width/height to all images, and fix INP by removing unused apps.
How to pass Core Web Vitals on Shopify?
To pass Core Web Vitals on Shopify: 1) Optimize your LCP by preloading hero images and deferring non-critical scripts, 2) Fix CLS by setting explicit dimensions on all images and avoiding late-loading content above the fold, 3) Improve INP by removing unused apps and breaking up long JavaScript tasks. Use tools like Thunder or manual optimization techniques outlined in this guide. Most stores can pass all three metrics within 1-2 weeks of focused optimization.
How do I improve Shopify Core Web Vitals fastest?
The fastest way to improve Shopify Core Web Vitals is to fix the template with the most mobile traffic first, usually the homepage, product page, or collection page. For LCP, preload the main image and defer render-blocking app scripts. For INP, remove unused apps and delay chat, reviews, popups, and analytics until after the first render. For CLS, reserve image, banner, and app-widget space before they load.
Which Shopify pages should I optimize for Core Web Vitals first?
Optimize the pages that appear in Google Search Console first: homepage, collection pages, product pages, and blog posts that receive impressions. Do not start with checkout because it is normally not indexed. Sort Search Console's Core Web Vitals report by affected URLs, then test representative product and collection templates with PageSpeed Insights or Thunder's speed test.
What changed with Core Web Vitals in 2026?
In 2026, Google continues to use LCP, INP, and CLS as the three Core Web Vitals metrics. The thresholds remain unchanged: LCP under 2.5s, INP under 200ms, CLS under 0.1. However, Google has increased the weight of real-user field data (CrUX) over lab data in ranking decisions. For Shopify stores, this means actual mobile user experience matters more than synthetic test scores. Third-party script bloat from apps remains the #1 cause of failing CWV.
How long does it take to pass Core Web Vitals on a Shopify store?
Lab tools like PageSpeed Insights show improvements within minutes — install Thunder or apply the fixes in this guide and re-run the test. Google Search Console's Core Web Vitals report uses a 28-day rolling window of real-user CrUX data, so the official 'passing' status can take several weeks to reflect your changes. Use lab data for immediate validation, then monitor Search Console to confirm the trend holds with real visitors.
What is a good LCP for a Shopify store on mobile?
Google's 'good' LCP threshold is 2.5 seconds or less on mobile. To hit it consistently on Shopify, preload the LCP hero image, add fetchpriority='high', remove loading='lazy' from above-the-fold images, and defer third-party app scripts that block image discovery. If your mobile LCP is above 2.5s, start with the hero image and app scripts before chasing smaller CSS or font tweaks.
Can a Shopify store get a 90+ mobile PageSpeed score?
Yes, but a 90+ mobile lab score is not the same as passing Core Web Vitals. A lean Shopify theme with optimized hero images, deferred app scripts, limited tracking pixels, and stable above-the-fold layout can reach 90+ in PageSpeed Insights. Stores with heavy reviews, personalization, chat, subscriptions, and multiple pixels may pass real-user CWV while still scoring below 90 in lab tests. Prioritize passing LCP, INP, and CLS first, then chase 90+ once the revenue-critical pages are stable.
What is the best Shopify Core Web Vitals optimization approach?
The most effective approach combines automated optimization with targeted manual fixes: 1) Start with an automated solution like Thunder to handle the most common issues (script deferral, critical CSS, image optimization), 2) Use PageSpeed Insights to identify remaining bottlenecks, 3) Remove or defer unused third-party apps, 4) Optimize your theme's LCP element (usually the hero image), 5) Monitor continuously as new app installs or content changes can regress your scores. This hybrid approach typically achieves 90+ PageSpeed scores on Shopify.
Which alerts should I set for Shopify third-party script bloat?
Set alerts when mobile LCP rises above 2.5s, INP rises above 200ms, Total Blocking Time rises above 200ms in lab tests, JavaScript transfer grows by more than 150KB after an app install, or third-party requests exceed roughly 25% of total page requests. These thresholds catch the common Shopify pattern where a review, popup, analytics, or personalization app quietly pushes Core Web Vitals from good to needs improvement.
Why does my new Shopify store have no Core Web Vitals field data?
New Shopify stores often show 'not enough real-user data' in PageSpeed Insights because CrUX needs enough Chrome visits over the last 28 days before reporting field data. That does not mean you should wait to optimize. Use lab tests on your homepage, collection page, and product page, fix the LCP image, app scripts, and layout shifts now, then re-check Search Console after traffic and the 28-day window build up.
Done For You
Core Web Vitals guarantee · 2-week delivery · 6 months Thunder free
Get Expert Optimization →Starting from €1,500
Related Resources
The #1 cause of high LCP on Shopify
Third-Party Scripts Guide →How app scripts hurt CWV & what to do
Shopify Speed Optimization Guide →Complete guide to a faster store
Hotjar Speed Impact →How analytics tools affect your CWV
Shopify Image Optimization →Compress, lazy-load & serve modern formats
Free Speed Test Tool →Test your Shopify store's speed now