Google Page Speed Shopify: How to Test and Fix Your Score

Google Page Speed Shopify: How to Test and Fix Your Score

To raise your Google page speed Shopify score, test your four most important pages in PageSpeed Insights, remove the apps and scripts you don't need, fix your hero image and theme code, and then retest against real-user data. Do the steps in that order. Third-party code and one oversized image cause most of the damage, and speed apps or optimization services only pay off once that groundwork is done.

The problem is that the report is noisy. You run a test, see a red 38 on mobile, and scroll through twenty warnings, half of which describe things Shopify already handles. Apps promise one-click fixes. Freelancers promise 90+ scores. Then you rerun the test and the number moves by eight points without a single change.

This guide walks through the process in five steps: how to read the score, how to measure a baseline, how to cut app weight, how to fix images and theme issues, and how to choose between apps, services, and edge tools. Nostra AI speeds up storefronts for more than 300 ecommerce brands, so the advice comes from watching what actually moves Core Web Vitals on Shopify.

What your Google PageSpeed score means for Shopify

Your PageSpeed Insights score is a simulation of one page load. It is a diagnostic tool, not a verdict on your store. The number Google uses to assess your Core Web Vitals comes from real visitors, and it sits above the score in the report. Know which one you're reading before you change anything.

Lab data and field data

PageSpeed Insights shows two different data sets. The top section, which describes what your real users experience, is field data from the Chrome User Experience Report, a rolling 28-day window of actual Chrome visits. The lower diagnostics section is Lighthouse lab data: one simulated load on a throttled mobile connection with a slowed-down CPU.

The 0 to 100 score comes only from the lab run. Lighthouse weights Total Blocking Time at 30%, Largest Contentful Paint at 25%, Cumulative Layout Shift at 25%, and First Contentful Paint and Speed Index at 10% each. That is why one heavy script can cost you 20 points. Run the same URL three times and expect a spread of several points, so treat any single result as a range.

The targets that matter

Google's thresholds for the three Core Web Vitals are fixed. A page passes only when all three are rated good for at least 75% of visits. Use this table as your target sheet.

Metric What it measures Good Needs improvement Poor
Largest Contentful Paint (LCP) Loading speed of the biggest visible element 2.5 s or less 2.5 to 4 s Over 4 s
Interaction to Next Paint (INP) Responsiveness to taps and clicks 200 ms or less 200 to 500 ms Over 500 ms
Cumulative Layout Shift (CLS) Unexpected movement while loading 0.1 or less 0.1 to 0.25 Over 0.25
Lab performance score Lighthouse composite 90 to 100 50 to 89 0 to 49

INP replaced First Input Delay in March 2024, and it cannot be measured in a lab run. Lighthouse uses Total Blocking Time as a stand-in, so a bad INP in your field data usually means too much JavaScript. Our advice is to set a realistic goal for a Shopify store: passing field data and a mobile lab score somewhere between 60 and 80. A 95 reached by delaying your pixels and disabling features is worse than a 70 that keeps your tracking and checkout intact.

A passing field report with a lab score of 70 beats a 95 built by switching features off.

What Shopify already handles

Shopify covers most of the infrastructure work, so you can skip a large share of the generic warnings. Third-party scanners often tell you to add a CDN or turn on compression. Those suggestions don't apply here, because the platform already provides:

  • A global CDN run by Cloudflare, with HTTP/2 delivery
  • Gzip compression and automatic minification of CSS and JavaScript
  • An image CDN that resizes, compresses, and often serves WebP
  • Browser caching on cacheable files, set to the maximum duration of one year

What is left is what you control: your theme, your apps, your tag manager, and your media. Those four are the focus of the remaining steps, and they are the only realistic source of a Google page speed Shopify improvement. Shopify documents the same split on its own web performance page.

Step 1. Test the right pages and record a baseline

Test your homepage, one collection page, your best-selling product page, and the cart, on mobile, and write the results down before you touch anything. Without a baseline you cannot tell whether a change helped or whether the score just wobbled.

Run PageSpeed Insights on four page types

Different templates fail for different reasons. A homepage usually fails on a heavy hero and too many sections, a product page on apps like reviews and upsells, and a collection page on image count. Here is how to use PageSpeed Insights properly:

Five numbered steps for running a mobile PageSpeed Insights test on a Shopify page.

  1. Open pagespeed.web.dev and paste the full URL of the page.
  2. Stay on the Mobile tab. Most Shopify traffic is mobile, and it scores lower.
  3. Read the field data first. Note LCP, INP, and CLS, and whether the assessment says passed or failed.
  4. Note the lab score and Total Blocking Time.
  5. Run the test three times and record the median.

If a page shows no field data, switch to the origin-level view, which aggregates your whole domain. Google Search Console's Core Web Vitals report groups similar URLs and is a good second source. Keep a log you can paste into a spreadsheet:

Page | Date | Mobile score | LCP | INP | CLS | TBT | Field assessment
Home | 2026-10-13 | 41 | 4.8 s | 310 ms | 0.18 | 1,450 ms | Failed
Collection | ... 
Product | ...
Cart | ...

Read the diagnostics and map them to fixes

The "Diagnose performance issues" section lists dozens of audits. Most Shopify problems fall into a handful, and each one maps to a step below. Use the table to decide what deserves your time.

PageSpeed audit Usual Shopify cause Where to fix it
Reduce unused JavaScript Apps, tag manager, theme features Step 2
Reduce the impact of third-party code Pixels, chat, reviews, popups Step 2
Largest Contentful Paint element Hero image or first product image Step 3
Properly size images Oversized uploads Step 3
Image elements without explicit width and height Custom code or app-injected images Step 3
Avoid large layout shifts Late app content, web fonts Steps 2 and 3
Enable text compression, use a CDN, cache lifetimes Already handled by Shopify Ignore

Work from the top of the list down. A fix that clears a failing LCP is worth more than ten fixes to green audits.

Rule out a platform slowdown

If your store suddenly feels slow and nothing changed on your side, check Shopify Status before you start editing. Then test from another network and device to confirm the slowdown is not local.

If the slowness is steady rather than sudden, it is almost certainly your own code. A recently installed app, a new tag, or a heavier banner is the usual cause, so retrace what changed in the last few weeks.

Step 2. Cut apps and third-party scripts

Remove or disable every app and tag that cannot justify its cost, because third-party code is the biggest lever for Google page speed on Shopify and the one most stores ignore. Each app can add JavaScript, CSS, and extra network requests to every page, whether or not it is visible.

A power strip with most plugs unplugged and one cord still powering a lamp.

Audit every app against revenue

List every installed app and ask one question: does this directly produce revenue or protect it? Keep reviews, subscriptions, and search if they earn their place. Drop the countdown timer you tried once, the three popup tools, and the analytics app that duplicates another.

To measure each app's cost, open your theme editor, go to App embeds, and switch off one embed at a time. Retest the product page after each change. The PageSpeed audit "Reduce the impact of third-party code" also ranks domains by main-thread time, which tells you where to start.

Keep an app only if you can name the revenue it produces or the risk it removes.

Hunt for leftover code

Uninstalling an app does not always remove its code from your theme. Old snippets, script tags, and CSS files keep loading and often return 404 errors that slow rendering. Duplicate your theme first and edit only the copy.

In the code editor, search for the app's name and its domain. Check theme.liquid, the snippets folder, and assets. A leftover usually looks like this:

{% render 'old-reviews-widget' %}
<script src="https://cdn.example-app.com/widget.js"></script>

Delete lines only when you are sure the app is gone. If you are not sure, ask the app developer for removal instructions, since they know which files they added.

Prune tags and pixels

Open Google Tag Manager or your tag list and remove anything that no longer reports to an active account. Old Facebook pixels, abandoned heatmap tools, and test tags are common offenders. Fewer tags means less main-thread work and a better INP.

Be careful with delaying. Pushing your purchase and ad pixels to load late can make the lab score jump, but it can also drop conversion events and distort attribution. Removing a tag is safe, delaying a conversion pixel is a trade-off, so only delay scripts that don't feed your ad platforms, such as chat widgets and heatmaps.

Step 3. Fix your hero image, theme, and fonts

Make the largest visible image load first, size every image correctly, and trim what the theme loads by default. Together these changes fix most failing LCP and CLS results on Shopify, and they are the changes you can control without an app.

Make the LCP image load first

On most homepages the LCP element is the hero image. On product pages it is the first product photo. Themes often lazy-load every image by default, which delays the very image Google is timing. Shopify's image_tag filter lets you set the first image to load eagerly and with high priority:

{{ section.settings.hero_image
  | image_url: width: 1600
  | image_tag:
    widths: '400, 800, 1200, 1600',
    sizes: '100vw',
    loading: 'eager',
    fetchpriority: 'high'
}}

Use this only for the single image above the fold. Every other image should keep its lazy loading. If the hero is a video, give it a lightweight poster image and avoid autoplay on mobile, since a large video file will almost always become your LCP element.

Right-size media and stop layout shift

Upload images no larger than the theme needs. For most themes that is about 2000 pixels on the longest edge, so check your theme's documentation. A 4000-pixel photo displayed at 800 pixels wastes bandwidth even though Shopify's CDN resizes it for delivery. Compress before uploading with a tool such as Squoosh, and keep JPG for photos and PNG for graphics that need transparency.

Layout shift mostly comes from content that appears after the page paints. The image_tag filter outputs width and height attributes automatically, which reserves space. For app blocks, announcement bars, and review widgets, set a minimum height in CSS so the page doesn't jump when they load. Custom fonts cause a smaller shift, so set a swap behavior:

{{ settings.type_body_font | font_face: font_display: 'swap' }}

Slim down the theme

Check the theme itself. Shopify's own Online Store 2.0 themes and the Horizon family are built for performance, while older or heavily customized themes often carry unused features. Three changes deliver the most:

  • Reduce the number of sections on your homepage and product template, because page weight grows with each one.
  • Replace multi-slide carousels with one strong static image, or keep a single slider per page.
  • Turn on pagination for collections with many products so fewer images load at once.

If your theme has page transitions or animations, compare your scores with them on and off. Animations can cost more than they are worth.

Step 4. Choose between apps, services, and edge tools

Fix the basics yourself first. Then choose outside help based on what is still failing: an app for simple image and loading controls, an optimization service for theme code you can't change, or an edge platform when you have no engineering capacity. Here is how the four routes compare.

Option Best for What it fixes Main risk
Manual fixes (Steps 2 and 3) Every store, always first App bloat, images, theme sections Takes time and some Liquid
Speed optimizer app Stores without a developer Lazy loading, image handling, script control Adds its own script, can break tracking or cart
Optimization service or Shopify Partner Custom themes, complex stores Theme code, render-blocking assets, app conflicts Scope creep, score-chasing promises
Edge delivery platform Brands without engineers Delivery and caching at the edge, no theme changes Does not remove apps you have installed

What speed apps can and can't do

A speed optimizer app can lazy-load images, defer scripts, and compress media with a few toggles. That helps, but remember that the app is itself third-party code that runs on every page. Judge it by field data and by whether checkout and tracking still work, not by the lab score alone.

Test it properly. Retest your baseline pages with the app on and off, then place a test order and check that your purchase event reaches your analytics. Apps that boost scores by deferring everything can quietly hide revenue from your ad platforms.

Page speed optimization services: what to ask

Page speed optimization services for Shopify are worth paying for when the bottleneck is theme code, such as render-blocking assets, a bloated custom build, or conflicts between several apps. If you use a free Shopify theme, Shopify Support can help with basics. For a third-party theme, contact the theme developer, a Shopify Partner, or a performance specialist. Before you sign, ask:

  • Which metric will you improve, and how will you prove it with field data?
  • Will you touch our tracking, pixels, or checkout, and how do you test them?
  • Do we own the code afterward, and can you roll changes back?
  • What do you do when an app is the cause?

Be wary of anyone who guarantees a 90+ score for a flat fee. Those scores are usually reached by disabling features or delaying essential code, and the cost shows up later as broken apps and missing analytics data.

Edge delivery without theme changes

An edge platform improves how your pages are delivered instead of rewriting your theme. Nostra AI's Dash agent works this way: you make a DNS-level change on day 1, the agents observe your store during days 2 to 14, and optimization then runs automatically with no code changes, replatforming, or engineering hours. Across more than 300 brands, results include up to 47% faster load times and roughly a 3% expected revenue lift.

Be realistic about the limit. Edge delivery speeds up what your store serves, but it won't uninstall an app or shrink an oversized hero. That is why the order matters: clean up first, then add delivery gains on top.

Step 5. Retest, then keep the score from slipping

Retest the same four pages under the same conditions, wait for field data to catch up, and then set a routine so new apps and edits don't undo your work. A fast store drifts slow again unless somebody watches it.

Retest the right way

The lab score responds immediately, so rerun the three-run median on each page right after a change. Field data lags, because it is a 28-day rolling window. Expect real-user numbers to move gradually over several weeks and don't judge a change after two days.

A stopwatch rests on an open notebook with ruled columns, next to a pencil.

Compare against your baseline log, not against memory. Track the metric you set out to fix, such as LCP on the product page, and check that no other metric got worse. A drop in CLS that comes with a spike in blocking time means a fix traded one problem for another.

Tie speed to revenue

A faster store should show up in conversion rate and revenue per visitor, so track those by device alongside the scores. Compare mobile conversion rate for the weeks before and after your changes, and account for promotions and seasonality.

Clean traffic matters here. Bots inflate sessions and drag conversion rate down, which can hide a real speed gain or make a bad week look worse than it was. Filter them out before you judge results, whether through your analytics filters or a bot protection layer.

If your traffic data is polluted by bots, you cannot tell whether a faster store is selling more.

Guard against regressions

Most slowdowns come back through small decisions: a new app, a bigger banner, a freshly added tag. Build a short routine around them:

  • Test your four pages before and after installing any app or editing the theme.
  • Review installed apps and tags every quarter and remove anything unused.
  • Check the Core Web Vitals report in Search Console monthly for new failing URLs.
  • Compress and resize every new image before upload.

Assign one person to own the log. Whoever installs an app should also own the retest.

Where to go from here

A good Google PageSpeed result on Shopify comes from a short list of habits: measure real-user data, strip out apps and tags that don't earn their weight, load your hero image first, and bring in an app, a service, or an edge tool only for what is still slow. Chase passing Core Web Vitals, not a perfect 100.

Once your store is fast, make sure the traffic you measure is real. Bots distort sessions, conversion rate, and ad spend, which makes every speed test harder to interpret. Edge Protect filters bad bots in real time, before they reach your site, so you can see how your faster pages perform with actual shoppers.