What Is Google PageSpeed Insights?
Google PageSpeed Insights (PSI) is a free tool at pagespeed.web.dev that analyzes any webpage's loading performance. You enter a URL, it runs a series of tests, and it gives you a score from 0 to 100 along with detailed metrics and recommendations.
Under the hood, PSI uses Google Lighthouse — the same engine Shopify uses for the speed score in your admin dashboard. The two scores are related but not identical; we explain exactly how they differ in our Shopify speed score vs PageSpeed comparison. PSI simulates a mobile device with a throttled CPU (4x slowdown) and a simulated 4G connection to test how your page loads under realistic mobile conditions.
PSI gives you two types of data:
🔬 Lab Data (Bottom Section)
Simulated test results from Lighthouse. Your score, the 5 metrics, and specific recommendations. Useful for debugging but varies between runs.
👥 Field Data (Top Section)
Real user data from Chrome users who visited your site over the last 28 days. Shows Core Web Vitals (LCP, INP, CLS). This is what Google uses for SEO ranking.
For Shopify merchants, PSI is the most important speed tool because it directly reflects the metrics Google uses for search rankings. The Shopify admin speed score is essentially a simplified version of this same test. Want a quick baseline before diving into the details? Run a free speed test on your store to see where you stand right now.
The Quick Fix: Improve All 5 Metrics at Once
Each metric below has a specific fix — but if you want to improve all of them without spending hours on manual optimization, Thunder Page Speed Optimizer handles the most impactful fixes for every metric automatically.
How Thunder improves each PageSpeed metric:
Free plan available · No credit card required · Average: +27 points
Understanding the Overall Score (0-100)
The big number at the top of your PageSpeed Insights report is a weighted average of 5 performance metrics. It's not an arbitrary grade — it's calculated using a specific formula based on real performance data from millions of websites. If you're looking for a broader overview of how Google evaluates Shopify stores specifically, our Google PageSpeed Insights for Shopify guide covers the full picture.
Good (Green)
Top 10% of websites. Excellent performance. Rare for Shopify stores with apps, but achievable with Thunder + a light theme.
Needs Improvement (Orange)
Room for optimization but functional. A realistic target for most Shopify stores. Thunder typically pushes stores into this range.
Poor (Red)
Significant issues hurting user experience and potentially SEO. Where most unoptimized Shopify stores land. Priority fix needed.
How the Score Is Calculated
Your overall score is a weighted combination of 5 metrics:
Based on Lighthouse 12 scoring (2026). Weights may change in future versions.
LCP — Largest Contentful Paint
What it measures: The time until the largest visible element renders in the viewport. On Shopify stores, this is usually your hero image, a large product photo, or the main heading text.
Why it matters: LCP represents the moment your customer perceives the page has "loaded." A fast LCP means they see your products quickly. A slow LCP means they stare at blank space and potentially leave. For a deep dive into fixing this metric, read our dedicated Shopify LCP optimization guide.
≤ 2.5s
Good
2.5–4.0s
Needs Improvement
> 4.0s
Poor
Common LCP Problems on Shopify
- • Hero images that are 2-5MB and not optimized for web
- • Render-blocking CSS preventing the browser from painting anything
- • No preloading of the LCP image — browser discovers it late
- • Slow server response (TTFB) delaying everything downstream
- • Web fonts blocking text rendering until they load
⚡ Thunder Fix
Preloads the LCP image so the browser starts downloading it immediately. Inlines critical CSS so nothing blocks rendering. Adds font-display: swap to prevent font-related delays. Typical LCP improvement: 1-3 seconds.
🔧 Manual Fix
Add <link rel="preload"> for your hero image. Compress images to <200KB. Extract and inline critical CSS (complex — different per page template). Optimize server response by simplifying Liquid templates. Budget 6-12 hours.
TBT — Total Blocking Time
What it measures: The total amount of time the browser's main thread is blocked by long-running JavaScript tasks. During blocking time, the page is frozen — users can't click, scroll, or type.
Why it matters: TBT has the highest weight (30%) in the score calculation. If your TBT is high, your overall score will be low no matter how good your other metrics are. It directly correlates with how "janky" or "frozen" your store feels. On Shopify, high TBT is almost always caused by JavaScript — from apps, themes, and third-party tracking scripts.
≤ 200ms
Good
200–600ms
Needs Improvement
> 600ms
Poor
Common TBT Problems on Shopify
- • App scripts executing during page load (reviews, popups, chat widgets)
- • Theme JavaScript running synchronously in the <head>
- • Google Analytics, Meta Pixel, and other tracking scripts executing on load
- • Large JavaScript bundles that take 500ms+ to parse and execute
💡 Key insight: Most Shopify stores with TBT over 600ms have 10+ apps injecting JavaScript. Each app might only add 100-200ms of blocking time individually, but together they create a massive bottleneck. You can't manually defer most app scripts without breaking them — they have internal dependencies you can't see. This is Thunder's #1 strength: it maps these dependencies and defers safely.
⚡ Thunder Fix
Defers all render-blocking JavaScript — including app scripts, theme scripts, and tracking code. Maps dependency chains to ensure nothing breaks. Typical TBT reduction: 60-80%. This single optimization often improves the overall score by 15-25 points.
🔧 Manual Fix
Add defer or async to script tags. Remove unused apps and audit leftover code. Load tracking scripts via Google Tag Manager with delayed triggers. Budget 8-16 hours. High risk of breaking app functionality — most app scripts don't work when deferred naively.
CLS — Cumulative Layout Shift
What it measures: How much visible content shifts around unexpectedly as the page loads. It's that annoying experience where you're about to click a button and everything jumps because an ad or image loaded above it.
Why it matters: CLS is 25% of your score and one of the three Core Web Vitals Google uses for SEO ranking. High CLS frustrates users — they misclick, lose their place, and feel the site is "broken." It's also one of the metrics that Google measures from real users, making it especially important.
≤ 0.1
Good
0.1–0.25
Needs Improvement
> 0.25
Poor
Common CLS Problems on Shopify
- • Images without explicit width and height attributes
- • Web fonts loading late and causing text to reflow (FOUT/FOIT)
- • App widgets injecting content after page load (pop-ups, banners, review badges)
- • Dynamic content loading above the fold (announcement bars, currency selectors)
⚡ Thunder Fix
Automatically adds width/height attributes to images without them, applies font-display: swap to prevent invisible text, and optimizes font preloading. Most stores achieve CLS under 0.1 after Thunder — often near zero.
🔧 Manual Fix
Add width and height to all <img> tags. Use font-display: swap in @font-face declarations. Reserve space for dynamic content with CSS min-height. Preload critical fonts. Budget 2-4 hours for a thorough audit.
FCP — First Contentful Paint
What it measures: The time until the browser renders the first piece of content — any text, image, background color, or SVG. It's the moment the screen goes from completely blank to showing something.
Why it matters: FCP is the user's first signal that the page is working. A fast FCP reassures them the site is loading. A slow FCP (3+ seconds of blank screen) makes them think the site is broken and triggers the back button. While it's only 10% of the score, it's the foundation — everything else depends on content appearing first.
≤ 1.8s
Good
1.8–3.0s
Needs Improvement
> 3.0s
Poor
What Blocks FCP on Shopify
The two main blockers are render-blocking CSS (the browser won't paint until all CSS in the <head> has loaded) and render-blocking JavaScript (scripts without defer/async pause HTML parsing). On a typical Shopify store, 200-500KB of CSS and multiple scripts must download before the first pixel appears.
⚡ Thunder Fix
Inlines critical above-the-fold CSS directly in the HTML and defers the full stylesheet. Defers all render-blocking JavaScript. Result: the browser can paint content almost immediately after receiving the HTML. Typical FCP improvement: 40-60% faster.
🔧 Manual Fix
Extract critical CSS per page template and inline it (very complex — tools like Critical CSS exist but require build tooling). Defer all scripts. Minimize CSS file size by removing unused rules. Add preconnect hints for external domains. Budget 8-12 hours with ongoing maintenance when themes update.
SI — Speed Index
What it measures: How quickly the visible content of the page fills the viewport. Unlike FCP (first pixel) or LCP (largest element), Speed Index captures the overall visual progression — how smoothly and quickly your page goes from blank to fully rendered.
Why it matters: Speed Index is a holistic measure of perceived loading speed. A page that renders progressively (content appearing piece by piece) will have a better Speed Index than a page that's blank for 4 seconds then renders everything at once. While it's only 10% of the score, it reflects the experience your customers actually feel.
≤ 3.4s
Good
3.4–5.8s
Needs Improvement
> 5.8s
Poor
Speed Index improves when you fix the other metrics. Faster FCP means the visual progression starts sooner. Better LCP means the main content appears earlier. Lower TBT means the page isn't frozen mid-render. Think of Speed Index as the "overall grade" for visual loading — it benefits from every other optimization.
⚡ Thunder Fix
By improving FCP (critical CSS inlining), LCP (image preloading), and TBT (script deferral), Thunder naturally improves Speed Index as a result. The page renders progressively instead of waiting for all resources to load.
🔧 Manual Fix
There's no single "Speed Index fix" — it improves when you address FCP, LCP, and rendering bottlenecks. Focus on eliminating render-blocking resources and ensuring above-the-fold content loads first. All the manual fixes from the other metrics contribute to Speed Index improvement.
Lab Data vs Field Data: Which Matters More?
PageSpeed Insights shows two distinct sections of data, and understanding the difference is crucial for making smart optimization decisions.
🔬 Lab Data
- • Simulated test on a controlled device
- • Throttled CPU (4x slower) + simulated 4G
- • Single point-in-time measurement
- • Varies 5-10 points between runs
- • Shows all 5 metrics + opportunities
- • Best for: Debugging specific issues
👥 Field Data (CrUX)
- • Real Chrome users on real devices
- • Actual network conditions worldwide
- • 28-day rolling average — very stable
- • Shows Core Web Vitals (LCP, INP, CLS)
- • Requires enough traffic to generate data
- • Best for: Understanding true user experience
🎯 For SEO: Field data wins. Google uses field data (Core Web Vitals) as a ranking signal — not your lab score. If your field data shows passing LCP, INP, and CLS (green), your real-world performance is fine regardless of what the lab score says. The lab score is still useful for identifying what to fix, but the field data tells you if it's actually a problem for real users. For a full breakdown of each Core Web Vital and how to pass them, see our Shopify Core Web Vitals guide.
No field data showing? That means your store doesn't have enough Chrome traffic for Google to generate a report (typically needs a few thousand monthly visitors). In this case, rely on lab data for optimization decisions — and consider Thunder's daily monitoring as a proxy for tracking your performance over time.
For a comparison of all the speed testing tools beyond PSI — including GTmetrix, WebPageTest, and Lighthouse — see our guide to the best Shopify speed test tools. And if you're wondering what score to aim for, check our Shopify speed score benchmarks by theme.
Reading the Opportunities & Diagnostics
Below the metrics, PSI gives you two actionable sections. These are your roadmap for improvement:
🎯 Opportunities (Sorted by Estimated Savings)
These are specific, actionable recommendations with estimated time savings. The most common ones for Shopify stores:
"Eliminate render-blocking resources"
Very CommonCSS and JS files in your <head> that block rendering. Thunder's primary fix — defers scripts and inlines critical CSS.
"Reduce the impact of third-party code"
Very CommonScripts from apps, analytics, and tracking. Shows total blocking time per third-party domain. Thunder defers these automatically.
"Properly size images"
CommonImages downloaded at larger dimensions than displayed. Use Shopify's image_url filter with size parameters to serve correctly sized images.
"Reduce unused JavaScript"
CommonJS code that downloads but doesn't execute on the current page. Often from themes with feature-rich JS bundles or apps loading full SDKs.
"Serve images in next-gen formats"
OccasionalUsing JPEG/PNG instead of WebP/AVIF. Shopify's CDN serves WebP automatically when possible, but some manually uploaded images bypass this.
🔍 Diagnostics (Information, Not Scored)
These don't directly affect your score but provide useful context:
- → "Avoid enormous network payloads" — Total page weight. Over 3MB is a concern.
- → "Avoid an excessive DOM size" — Over 1,500 elements signals bloat.
- → "Minimize main-thread work" — Total CPU time for JS execution.
- → "Reduce JavaScript execution time" — Longest-running scripts.
Don't try to fix everything at once. Focus on the top 2-3 opportunities with the highest estimated savings. For most Shopify stores, that means render-blocking resources and third-party code — both of which Thunder handles automatically. Install Thunder first, re-test, then tackle any remaining opportunities manually. For a step-by-step walkthrough of every optimization technique, see our complete speed optimization guide.
Improve every PageSpeed metric in 30 seconds
Thunder optimizes TBT, LCP, CLS, FCP, and Speed Index automatically. No code. No risk. Average improvement: +27 points.
Boost My PageSpeed Score →Free plan available · No credit card required · Works with all themes
Frequently Asked Questions
What is Google PageSpeed Insights?
Google PageSpeed Insights (PSI) is a free tool at pagespeed.web.dev that analyzes your webpage's performance. It runs Google Lighthouse to generate a lab score (0-100) and also shows real user data from the Chrome User Experience Report. For Shopify stores, it's the most important speed testing tool because Google uses the same underlying data for SEO ranking signals.
What's a good PageSpeed Insights score for Shopify?
A mobile score of 50-70 is realistic for most Shopify stores with apps installed. Scores of 70-90 are achievable with optimization (like Thunder). Scores of 90+ are excellent but rare for stores with multiple apps. The average Shopify store scores 30-50 on mobile. Don't compare yourself to static websites — Shopify stores have inherent overhead from the platform, apps, and dynamic content.
Does PageSpeed Insights score affect Shopify SEO?
Indirectly, yes. Google doesn't use the PSI score directly as a ranking factor. Instead, it uses Core Web Vitals (LCP, INP, CLS) measured from real users as ranking signals. These metrics are closely related to your PSI score — improving one typically improves the other. A very slow store also increases bounce rates, which indirectly hurts rankings. Thunder improves both lab scores and real-world Core Web Vitals.
Why is my PageSpeed mobile score so much lower than desktop?
The mobile test simulates harsh conditions: a mid-tier phone with 4x CPU throttling and a simulated 4G connection. JavaScript that takes 200ms on desktop takes 800ms+ on simulated mobile. Most Shopify stores score 20-40 points lower on mobile than desktop. This is normal. Since Google uses mobile-first indexing, the mobile score is the one to focus on.
How often should I run PageSpeed Insights on my Shopify store?
Run it after any significant change (new app, theme update, adding sections/images). For routine monitoring, Thunder tracks your score daily automatically. If running manually, test 3-5 times and average the results — single tests can vary by 5-10 points due to network conditions and server load. Monthly check-ups are a good minimum cadence.
What's the difference between lab data and field data in PageSpeed Insights?
Lab data comes from a simulated Lighthouse test — controlled conditions, single run, harsher than real life. Field data comes from real Chrome users visiting your store over 28 days — actual devices, real networks, genuine user behavior. Google uses field data (Core Web Vitals) for SEO rankings. Lab data is useful for debugging specific issues. Both matter, but field data reflects true user experience.
Can Thunder improve all PageSpeed Insights metrics?
Thunder directly improves TBT (by deferring scripts), LCP (by preloading hero images and inlining critical CSS), FCP (by eliminating render-blocking resources), CLS (by setting image dimensions and optimizing font loading), and Speed Index (by accelerating visual loading). The only metric Thunder can't directly improve is server response time (TTFB), which is controlled by Shopify's infrastructure and your Liquid template complexity.
Why do I get different PageSpeed scores every time I test?
PageSpeed Insights uses Lighthouse, which runs on shared cloud infrastructure with inherent variability. Third-party script response times, Shopify's server load, test infrastructure CPU load, and network conditions all fluctuate between tests. Differences of 5-10 points are completely normal. Always run 3-5 tests and use the average. For reliable tracking, Thunder monitors your score daily and shows a rolling average.