It's one of the most common frustrations in Shopify speed optimization: you test your store on Google PageSpeed Insights, get a score of 45, test again 30 seconds later, and get 52. Then 38. Then 48.
Is the tool broken? Did your store change between tests? Should you trust any of these numbers?
The short answer: score variance is completely normal, and it happens for specific, predictable reasons. Understanding why helps you stop chasing phantom score changes and focus on optimizations that actually matter.
Want to see your current range? Run our free Shopify speed test a few times and compare.
7 Reasons Your Speed Test Score Changes Every Time
1. Server Response Time (TTFB) Fluctuates
Your Shopify store runs on shared infrastructure. Every page request goes through Shopify's servers, CDN edge nodes, and load balancers. The time this takes — called Time to First Byte (TTFB) — varies with each request based on:
- Current server load (how many other stores are being served simultaneously)
- Which CDN edge node handles your request
- Whether the response is cached or needs to be generated fresh
- Database query time for dynamic content
TTFB differences of 50-200ms are normal on Shopify. Since every subsequent metric depends on when the server first responds, this alone can swing your score by 3-8 points.
2. Third-Party Scripts Load Unpredictably
Most Shopify stores load 15-30 third-party scripts — analytics, chat widgets, review apps, marketing pixels, social media embeds. Each one loads from a different server with its own performance characteristics.
On one test, Hotjar's script might load in 80ms. On the next, their server is handling a traffic spike and it takes 400ms. You didn't change anything — their server did. This is the single biggest source of score variance for most Shopify stores.
💡 This is why Thunder helps with consistency
Thunder Page Speed Optimizer defers third-party scripts so they load after the page renders. When scripts load after your critical metrics are measured, their variance no longer drags down your score.
3. Network Path Varies Between Tests
When you test on PageSpeed Insights, your request goes from Google's testing server to Shopify's CDN and back. The network path between these points isn't always the same — different routers, different peering points, different congestion levels.
Google runs Lighthouse tests from multiple datacenters. You might hit a datacenter in Virginia for one test and Oregon for the next. The physical distance and network routing between that datacenter and Shopify's nearest CDN node affects every timing measurement.
4. CPU Throttling Simulation Isn't Exact
For mobile scores, PageSpeed Insights simulates a mid-range phone by throttling CPU performance to approximately 4x slower than the testing server's actual CPU. This throttling is done in software, and it's an approximation — not an exact simulation.
Small differences in how JavaScript executes under throttling can affect metrics like INP (Interaction to Next Paint) and LCP (Largest Contentful Paint). This is one reason mobile scores vary more than desktop — the throttling adds another layer of approximation.
5. CDN Cache State Changes
Shopify uses a global CDN (Content Delivery Network) to cache your store's pages and assets. When a test hits a "warm" cache (the content is already stored on the nearest edge server), it loads faster. When it hits a "cold" cache (the content needs to be fetched from origin), it's slower.
Cache state depends on how recently someone (or a bot) visited your store from a similar location. Low-traffic stores have more cache misses. This is why your first test of the day is often the slowest — the cache may have expired overnight.
6. Dynamic Content Changes
Your Shopify store isn't 100% static. Elements that change between page loads include:
- Personalized recommendations
- Inventory badges ("Only 3 left!")
- A/B test variants
- Geolocation-based content (currency, shipping info)
- Recently viewed products
- Dynamic pricing or discounts
Each version of the page may have slightly different DOM size, different images, and different JavaScript execution — all of which affect the score.
7. Lab Scoring Thresholds Create Jumps
PageSpeed Insights doesn't use a linear scoring formula. The relationship between raw metrics and the final score follows a logarithmic curve with specific thresholds.
For example, an LCP of 2.4 seconds might give you a score of 52, while an LCP of 2.6 seconds (just 200ms slower) might give you 45. When your metrics are near these thresholds, tiny measurement differences cause disproportionate score swings. This is why you might see your score jump from 38 to 52 between consecutive tests — your LCP crossed a threshold.
How Much Score Variance Is Normal?
Based on testing thousands of Shopify stores, here's what typical variance looks like:
| Score Range | Normal Variance | Concerning Variance |
|---|---|---|
| 0-30 (Poor) | ±5-8 points | ±15+ points |
| 30-50 (Needs work) | ±5-10 points | ±20+ points |
| 50-70 (Moderate) | ±3-7 points | ±15+ points |
| 70-90 (Good) | ±3-5 points | ±10+ points |
| 90-100 (Excellent) | ±2-4 points | ±8+ points |
Stores with many third-party scripts tend to have higher variance. This makes sense — more external dependencies mean more opportunities for individual script loading times to differ between tests.
If your variance consistently exceeds the "concerning" range, something is intermittently failing on your store — a flaky script, an unreliable API call, or an intermittent server issue.
How to Get Consistent, Meaningful Speed Test Results
You can't eliminate variance entirely, but you can minimize it and extract meaningful data. Here's the protocol professional speed optimizers use:
1. Run Multiple Tests and Use the Median
Never make decisions based on a single test. Run at least 3-5 tests and use the median score (the middle value, not the average). The median is more resistant to outliers than the mean.
Example: 5 tests → scores of 38, 45, 52, 47, 41
Sorted: 38, 41, 45, 47, 52 → Median: 45 (use this)
Average: 44.6 (close, but pulled down by the outlier 38)
2. Test at Consistent Times
Server load varies by time of day. If you're comparing before/after optimization results, test at the same time on both days. Avoid testing during known peak hours for your store.
3. Use Field Data Instead of Lab Data
Lab data (PageSpeed Insights, Lighthouse) is a simulation. Field data (Chrome User Experience Report, or CrUX) measures real users visiting your store over 28 days. Field data is inherently averaged and far more stable than any single lab test.
Check your field data in Google Search Console's Core Web Vitals report. This is also what Google uses for ranking signals — not your individual lab scores.
4. Focus on Specific Metrics, Not the Overall Score
The overall score is a weighted composite of six metrics. Instead of obsessing over the number, track the individual Core Web Vitals:
- LCP — Under 2.5 seconds (measures loading performance)
- CLS — Under 0.1 (measures visual stability)
- INP — Under 200 milliseconds (measures interactivity)
These individual metrics have less variance than the composite score, and they're what actually matter for user experience and conversions.
5. Use Multiple Testing Tools
Cross-reference results from multiple tools to get a more complete picture. Our guide to the best Shopify speed test tools covers the top options, but at minimum use:
- PageSpeed Insights — Combined lab + field data
- WebPageTest.org — More detailed waterfall analysis, location control
- Chrome DevTools Lighthouse — Local testing without network variance
- Thunder Speed Test — Shopify-specific analysis with optimization recommendations
Lab Data vs Field Data: Which Matters More?
Understanding the difference between lab and field data explains most "my score is wrong" confusion:
| Aspect | Lab Data | Field Data |
|---|---|---|
| Source | Lighthouse simulation | Real Chrome users (CrUX) |
| Consistency | Varies each test | Stable (28-day average) |
| Speed of updates | Instant | 2-4 weeks after changes |
| Used for SEO ranking | No | Yes |
| Useful for | Debugging, optimization work | Tracking real performance |
| Minimum traffic needed | None | Enough Chrome users for data |
For day-to-day optimization: Use lab data (PageSpeed Insights, Lighthouse) for quick testing and debugging.
For tracking real progress: Use field data (Google Search Console, CrUX Dashboard) for reliable trend analysis. Read more about interpreting these results in our Shopify speed score vs PageSpeed guide.
Why the Shopify Admin Speed Score Differs From PageSpeed Insights
Another common source of confusion: your Shopify admin dashboard shows one speed score, while PageSpeed Insights shows another. They're not the same measurement.
Shopify's built-in score is a Lighthouse-based test run from Shopify's own infrastructure, compared against a benchmark of similar Shopify stores. It asks: "How fast is your store compared to other Shopify stores?" PageSpeed Insights asks: "How fast is your page compared to the entire web?"
Your Shopify admin score might say 55 while PageSpeed Insights shows 38 — or vice versa. Both are technically correct, they're just answering different questions. Focus on PageSpeed Insights for optimization work, and on Google Search Console CWV for SEO impact.
How to Reduce Speed Test Variance on Your Shopify Store
While you can't eliminate variance entirely, you can reduce it. Stores with less variance tend to have these characteristics:
- Fewer third-party scripts — Every external script is a variable. Fewer scripts = less variance. Review which apps slow down your store and remove what you don't actively use.
- Deferred non-critical scripts — When scripts load after the main page renders, they don't affect your speed metrics. Thunder handles this automatically.
- Optimized images with proper sizing — Consistent image loading times reduce metric variance. See our image optimization guide.
- Self-hosted fonts — Loading fonts from your own CDN (via Shopify) instead of Google Fonts eliminates dependency on Google's font servers.
- Minimal dynamic content above the fold — Static hero sections score more consistently than dynamic carousels or personalized recommendations.
⚡ Raise Your Baseline, Reduce Your Variance
Thunder Page Speed Optimizer defers non-critical scripts, inlines critical CSS, and optimizes font loading — reducing the number of variables that cause score fluctuations. Instead of scores bouncing between 25-45, stores with Thunder typically see scores in the 55-75 range.
When Score Changes Actually Mean Something
While normal variance isn't concerning, some score changes indicate real problems. Investigate if:
- 🔴 Score drops 15+ points consistently — Run 5 tests. If the median is 15+ points lower than your usual baseline, something changed. Check for new apps, theme updates, or new marketing scripts.
- 🔴 Variance suddenly increases — If your scores used to vary by ±5 and now vary by ±20, an intermittent issue is likely. Common culprits: flaky chat widget, overloaded analytics endpoint, A/B testing tool with slow script loading.
- 🔴 Score dropped and won't recover — If multiple tests over several days show a consistent drop, something permanently changed. Review recent app installs, theme changes, and new scripts.
- 🔴 Field data worsens in Search Console — This is the most reliable signal. If your Core Web Vitals fail in Search Console, your real users are experiencing slower performance — not just test variance.
Frequently Asked Questions
Why does my PageSpeed Insights score change every time I test?
PageSpeed Insights scores vary because each test simulates a fresh page load under slightly different conditions. Variables include server response time (TTFB), network latency to Google's testing servers, CPU throttling simulation, third-party script loading order, CDN cache state, and the specific Google datacenter running the test. A 5-10 point variance between tests is completely normal.
How many times should I test my Shopify speed to get an accurate score?
Run at least 3-5 tests and use the median score (not the best or worst). This accounts for natural variance in server response time, network conditions, and third-party script loading. For important decisions (like before/after optimization comparisons), run 5 tests and discard the highest and lowest scores, then average the remaining three.
Is the Shopify admin speed score different from PageSpeed Insights?
Yes. The Shopify admin speed score uses Lighthouse but with different testing conditions and weighted scoring. It runs tests from Shopify's infrastructure against a benchmark of similar stores, while PageSpeed Insights tests from Google's servers against web-wide standards. This is why the two scores often differ by 10-20 points. Neither is 'wrong' — they measure different things.
Why is my mobile speed score always lower than desktop?
PageSpeed Insights simulates a mid-range mobile device on a 4G connection for mobile tests, while desktop tests simulate a faster computer on a broadband connection. The mobile simulation uses CPU throttling (4x slower) and network throttling (reduced bandwidth and added latency). Since most Shopify stores load the same resources on both, mobile scores are naturally 20-40 points lower than desktop.
Does testing time of day affect my speed test score?
Yes, but usually by only 3-8 points. During peak traffic hours (10am-3pm in your visitors' timezone), your Shopify store's shared infrastructure handles more concurrent requests, which can slightly increase server response time. Third-party services (analytics, chat widgets, marketing pixels) also have peak-hour slowdowns that affect your score. Testing at the same time each day gives more consistent comparisons.
Should I worry about speed test score fluctuations?
Small fluctuations (5-10 points) are normal and not a concern. Focus on your median score over multiple tests rather than any single measurement. Worry only if your score consistently drops 15+ points over several days — that usually indicates a real change like a new app, theme update, or broken optimization. For the most reliable data, use Google Search Console's Core Web Vitals report, which uses real user data averaged over 28 days.
Stop Chasing Individual Scores
Speed test score variance is a feature, not a bug. Each test represents one possible outcome under one set of conditions. The key is to focus on trends and medians, not individual results.
Run 3-5 tests, take the median, and compare that to your previous median. Use Google Search Console field data for reliable trend tracking. And instead of obsessing over scores, focus on what actually matters: are your Core Web Vitals passing? Is your conversion rate where you want it?
The most reliable way to raise your score baseline — so fluctuations happen in a higher, healthier range — is to address the fundamentals: defer scripts, optimize images, and reduce unnecessary third-party code. Thunder Page Speed Optimizer handles all of this automatically.
Test your store speed now and see where your baseline sits. Run it a few times — now you'll know why the numbers change, and why that's perfectly okay.
Done For You
Core Web Vitals guarantee · 2-week delivery · 6 months Thunder free
Get Expert Optimization →Starting from €1,500