What It Actually Takes to Get a Shopify Store to 90+ PageSpeed

Reaching a PageSpeed Insights score of 90 or above on Shopify is the goal most store owners cite when they come to us for speed help. It is a meaningful benchmark — Google considers 90+ to be in the “Good” range, it typically correlates with strong Core Web Vitals scores, and it is increasingly the threshold at which conversion rates stop being significantly impacted by load time.

But 90+ is not a trivial achievement. Most Shopify stores, when we first audit them, score between 20 and 55 on mobile. Getting to 90 requires systematic, multi-layered work — not a single magic fix. This article documents the exact process the OneOnic performance team follows when optimising a Shopify store, in the order we do it, with the rationale for each step.

Step 1: Baseline Audit Across All Page Types

We never start optimising without a complete baseline. We run PageSpeed Insights, GTmetrix, and WebPageTest on the homepage, the primary collection page, the highest-traffic product page, and the cart page. We document the current scores, LCP time, CLS score, INP time, total page weight, total request count, and Time to First Byte for each page.

This baseline serves two purposes: it tells us where the biggest opportunities are, and it gives us a before/after comparison to quantify the impact of each change. Every optimisation we make is verified against the baseline — if a change does not improve the score, we investigate why before moving on.

We also document every installed app, every third-party script, every custom JavaScript file in the theme, and every font being loaded. This inventory forms the basis for our optimisation plan.

OneOnic Shopify Experts

Want a 90+ PageSpeed Score on Your Shopify Store?

Our Shopify performance team has increased store speed scores by 40+ points for 100+ clients. Get a free speed audit.

Get a Free Speed Audit →

Step 2: Eliminate Render-Blocking Resources

Render-blocking resources are scripts and stylesheets that prevent the browser from rendering any page content until they have been fully downloaded and parsed. This is the single most impactful category of fix in most Shopify stores, and it is the first thing we address after the baseline audit.

JavaScript files without async or defer attributes are render-blocking by default. We audit every <script> tag in the theme — both in theme.liquid and in section files — and add defer to every script that does not need to run before initial render. For scripts that are completely non-critical (chat widgets, retargeting pixels, analytics), we delay loading until after the page is interactive.

CSS files are render-blocking by their nature, but the impact can be mitigated by inlining critical CSS — the styles needed to render the above-the-fold content — directly in the HTML. We extract the critical path CSS for each page type and inline it in <style> tags, then load the full stylesheet asynchronously. This is one of the highest-impact individual changes for LCP scores.

Step 3: Comprehensive Image Optimisation

After render-blocking resources, images are typically the next largest contributor to slow scores. Our image optimisation process covers three areas: existing images, new upload workflow, and Liquid rendering syntax.

For existing images, we run a bulk compression pass using TinyIMG or a similar tool, targeting quality 80 for product photography. We audit for images that are significantly larger than their display dimensions and flag them for resizing. We verify that the theme is using Shopify’s modern image_url filter syntax rather than the deprecated img_url filter, which enables automatic WebP serving.

We add explicit width and height attributes to all images to prevent CLS. We apply loading="lazy" to all images below the fold. For the LCP image — typically the hero on the homepage and the first product image on product pages — we add fetchpriority="high" to tell the browser to prioritise downloading this image above others.

Step 4: App JavaScript Audit and Reduction

We use Chrome DevTools’ Network tab filtered by JavaScript type to catalogue every JS file loading on the page. For each file from a third-party domain (i.e., an app), we note the file size, check whether it loads synchronously, and assess whether it is loading on pages where it is needed.

We present the client with a prioritised list of app script changes: apps to remove entirely, apps to keep but load asynchronously, and apps to keep with no changes. This conversation is important — we never unilaterally remove business-critical apps, but we work with the client to understand which apps are genuinely contributing to revenue and which are not justified by their speed cost.

After the app audit, we check the theme code for ghost scripts from previously uninstalled apps. These are removed. We also check the checkout.liquid file (available on Shopify Plus) for unnecessary scripts that only need to run on the checkout page but are currently loading sitewide.

Step 5: JavaScript Bundle Optimisation

Most Shopify themes ship with a single large JavaScript bundle containing code for every feature in the theme — slideshows, popups, product variant selectors, cart drawers, quantity selectors, everything. Even if a particular page only uses a fraction of this code, the entire bundle is downloaded.

We use Chrome DevTools’ Coverage tool to identify the percentage of the theme’s JavaScript that is actually used on each page type. On many themes, less than 40% of the JavaScript bundle is executed on a typical product page. We then refactor the theme JavaScript to load functionality as needed — using dynamic imports for features like cart drawers and popup modals that only activate on user interaction — rather than loading everything upfront.

This is one of the more technically complex steps, but it consistently yields 10–20 point PageSpeed improvements on its own.

Step 6: Font Loading Optimisation

Web fonts affect both LCP and CLS if not handled correctly. Our font optimisation process adds font-display: swap to all custom fonts so text renders immediately in a fallback font while the custom font downloads. We preconnect to font provider domains (<link rel="preconnect">) to reduce connection setup latency. We subset fonts to include only the character sets actually used in the store.

We also audit whether all loaded font weights are actually used in the design. It is common to find stores loading six weights of a font when the theme only uses three of them. Removing unused weights reduces page weight with zero visual impact.

Step 7: Server Response Time and CDN Verification

If Time to First Byte (TTFB) is above 600ms, there is a server-side issue contributing to slow scores. On Shopify, the most common causes are heavy Liquid template rendering (too many Liquid loops or metafield lookups in the template) and slow app integrations that run server-side. We optimise Liquid where possible and flag TTFB issues that may require architectural changes.

We also verify that all theme assets are being served from Shopify’s CDN with appropriate cache headers, and that third-party scripts are being loaded from CDN-backed origins rather than slow single-origin servers.

What a 90+ Score Actually Delivers in Practice

Across our client portfolio, stores that we have brought to 90+ PageSpeed scores on mobile consistently see conversion rate improvements of 20–40% compared to their pre-optimisation baseline. They also see improved Google search rankings as their Core Web Vitals scores enter the “Good” range, and lower CPCs on Google Shopping as quality scores improve.

The timeline from initial audit to 90+ score is typically 2–4 weeks depending on the complexity of the store and the extent of the JavaScript work required. You can see examples of before/after scores and the business outcomes achieved in our client portfolio.

If you want to understand what it would take to reach 90+ on your specific store, request a free speed audit. We will assess your current state and give you a concrete plan with expected outcomes.

Shopify Experts · OneOnic

Ready to Grow Your Shopify Store?

Our Shopify experts at OneOnic have helped hundreds of brands launch, optimise, and scale.