Technical SEO

Shopify Site Speed: How to Diagnose and Fix Real Performance Issues

A diagnose-first guide to Shopify site speed — using PageSpeed Insights and the Web Vitals report to find what is actually slowing your store, then fix it in the right order without installing more apps.

By Aman Bedi, Founder, Obsess AIPublished Updated 11 min read

Diagnose first, then fix

Most Shopify speed advice is a list of generic optimizations: compress images, use a fast theme, enable lazy loading. The list is not wrong. It is just the wrong starting point. You will spend an hour optimizing images on a store whose actual bottleneck is a chat widget, and the load time will not change.

The right starting point is diagnosis: figure out specifically what is slowing your store, then fix that. This guide is the diagnostic workflow first, then the targeted fixes for what you find.


Core Web Vitals in 2026: what to measure

Google's ranking algorithm uses three Core Web Vitals as user-experience signals:

  • Largest Contentful Paint (LCP) — when the largest visible element finishes loading. Target: under 2.5 seconds on mobile for 75% of real users.
  • Interaction to Next Paint (INP) — how long the page takes to respond to user interactions like taps and clicks. Target: under 200 ms.
  • Cumulative Layout Shift (CLS) — how much the page jumps around as it loads. Target: under 0.1.
  • Note: First Input Delay (FID) was retired in March 2024 and replaced by INP. If a tool, blog post, or theme description still talks about FID as a Core Web Vital, it is out of date. INP is the metric to track now.

    Full reference at web.dev's Core Web Vitals page.


    The diagnostic workflow (15 minutes)

    This is the workflow I would run on any Shopify store before optimizing anything.

    Step 1: Identify your slowest high-traffic page

    Open Google Search Console → Core Web Vitals (under Experience). This shows which pages are failing Core Web Vitals based on real-user data from Chrome. Pick your highest-traffic failing page — that is the priority target.

    If your store does not have enough Chrome User Experience Report data yet (under 200 monthly visitors), use lab data from PageSpeed Insights on your top traffic page from analytics instead.

    Step 2: Run PageSpeed Insights on that page

    Go to PageSpeed Insights and paste the URL. You get two reports:

  • Field data (top of page): real-user data from CrUX. This is what Google uses for ranking. Trust this.
  • Lab data (below): simulated load. Useful for diagnosing causes, but the numbers will not exactly match field data.
  • Look at the lab-data diagnostic sections, in this order:

    Step 3: "Reduce the impact of third-party code"

    This is the highest-leverage section. It lists every third-party domain loading scripts on the page, with its blocking time. App scripts, analytics, chat widgets, review apps — they all show up here.

    For each third-party entry over 200 ms of blocking time, ask: "do I actually use this?" If not, uninstall the corresponding app. This single workflow accounts for the largest speed improvements I have seen on Shopify stores.

    Step 4: "Reduce unused JavaScript"

    Closely related. If a script is loading but most of its code is unused on this page, the app is injecting more than it needs to. Some apps offer settings to load scripts only on pages where they are used — check the app's settings before assuming you need to uninstall it.

    Step 5: "Properly size images" and "Serve images in next-gen formats"

    If these warnings show up, your source images are too large or the theme is not requesting the CDN-optimized versions. Shopify's CDN handles WebP delivery and responsive sizing automatically on modern themes; if you are seeing these warnings, you either have very large source uploads or an older theme.

    Step 6: "Avoid large layout shifts"

    CLS issues. The diagnostic will name the elements that are shifting. Usually one of: images without explicit dimensions, web fonts without font-display: swap, sticky banners that pop in late, or app-injected content that appears above already-rendered content.

    Step 7: Cross-check with Shopify's built-in speed report

    In your Shopify admin → Online Store → Themes → "View report" under the theme. Shopify's own speed score gives you a directional sense of where your store sits relative to the median, plus app-specific impact estimates. It is rougher than PageSpeed Insights but useful as a sanity check.

    After this 15-minute diagnostic, you should know exactly which one or two issues are costing you the most loading time. That is what to fix first.


    What Shopify ships natively (so you do not optimize what is already handled)

    Before manually optimizing, know what Shopify already does for you:

  • Global CDN with edge caching — your static assets are served from the nearest geographic location automatically
  • Automatic WebP conversion on the CDN for modern browsers, with JPG/PNG fallbacks for older browsers
  • Responsive image sizing — themes request the appropriate image size per device, the CDN serves the right resolution
  • Image lazy loading — modern themes use the native loading="lazy" attribute on below-the-fold images
  • HTTP/3 and connection optimization at the infrastructure level
  • CSS and JavaScript minification on theme assets
  • You do not need an app or a developer for any of this. If you are running a modern Online Store 2.0 theme, you have all of it. The optimization work is for the layers on top.


    Fixing the most common issues

    App bloat (the biggest one)

    This is the cause of most slow Shopify stores. The fix:

  • Audit every installed app. For each, ask: "have I used this in the past 30 days?"
  • Uninstall any app that does not have an active use case
  • After uninstalling, check the app's documentation to confirm there is no residual code in your theme. Some apps inject script tags directly into theme.liquid; uninstalling the app from your admin does not remove those tags. Edit theme code if needed
  • Re-run PageSpeed Insights to verify the improvement
  • Most stores I have audited could remove 2 to 4 apps with no functional impact. The performance improvement is usually significant.

    Source image weight

    The Shopify CDN can only optimize from your source files. If you upload 8 MB photos straight from a DSLR, the CDN does extra work and storage is wasted.

    Targets for source uploads:

  • Product images: 2048px on the longest side, under 500 KB
  • Hero/banner images: 1920px on the longest side, under 300 KB
  • Thumbnails: generated automatically by the CDN; no separate upload needed
  • Free compression: TinyPNG for JPEG/PNG, Squoosh for more control. Or use an app like TinyIMG if you need bulk compression across an existing large catalog.

    Custom fonts

    Custom web fonts can add render-blocking requests. Practical limits:

  • Use at most 2 font families (one for headings, one for body)
  • Use font-display: swap in the @font-face declaration so text shows immediately in a fallback font while the custom font loads
  • Subset fonts to only the character ranges you actually use (Latin only, not full Cyrillic + Arabic + everything)
  • Where the design allows, use the system font stack — it loads instantly because no download is needed
  • Most OS 2.0 themes have font settings in the theme editor. Check those before editing Liquid.

    Third-party scripts that are not apps

    Analytics, advertising pixels, A/B testing tools, customer support widgets — these are often added by pasting script tags into theme code, not through the Shopify App Store. They are easy to forget and easy to leave loading after they are no longer needed.

    Open theme.liquid in your theme code editor and search for . Audit every script tag:

  • Is this still in use?
  • Does it need to load on every page, or only on specific pages?
  • Can it be loaded asynchronously (async or defer attribute)?
  • For Google Analytics, Google Tag Manager, and Facebook Pixel, the official Shopify integrations are usually better than manually pasted scripts because they load with appropriate timing.

    Layout shift on product pages

    Common causes on Shopify:

  • Variant selectors that change page layout when clicked
  • "Add to Cart" or "Buy Now" buttons that appear after JavaScript loads
  • Sticky banners (cookie consent, shipping promotions) that appear late
  • The fix is theme code — explicit dimensions on image containers, reserved space for late-loading UI, and consistent button placement regardless of variant state. If you are not comfortable editing Liquid, this is the place where a few hours of developer help is worth paying for.


    What not to spend time on

    A few things that get recommended in generic speed guides but do not matter much on Shopify:

  • "Enable browser caching." Shopify handles this. You cannot meaningfully change it.
  • "Use a CDN." Shopify's CDN is built in. You do not need to add another.
  • "Minify your CSS and JavaScript." Shopify does this on theme assets. Manual minification at the theme level is unnecessary.
  • "Switch hosting." Shopify hosts your store. You cannot change hosting.
  • "Use AMP for mobile pages." AMP is being deprecated by Google. Do not invest here in 2026.
  • If a speed guide tells you to do any of these things on a Shopify store, the guide is likely repackaged WordPress advice.


    Speed targets by page type

    Realistic targets for a well-optimized Shopify store on a modern theme:

    Page typeLCP targetINP targetCLS target
    HomepageUnder 2.5sUnder 200 msUnder 0.1
    Collection pagesUnder 2.5sUnder 200 msUnder 0.1
    Product pagesUnder 2.5sUnder 200 msUnder 0.1
    Blog postsUnder 2.0sUnder 200 msUnder 0.1
    Cart pageUnder 2.0sUnder 200 msUnder 0.1

    These are not "best case" numbers — they are achievable on Shopify with reasonable app hygiene and a modern theme. If you are well above any of these, the diagnostic workflow above will identify why.


    A reasonable maintenance cadence

    Speed is not a one-time fix. The maintenance cadence I would suggest:

  • Monthly: Run PageSpeed Insights on your homepage and your top product page. Compare to last month. Investigate any meaningful regression.
  • Every app install: Re-run PageSpeed Insights after installing any new app. If the app degraded performance, decide whether the trade-off is worth it.
  • After any theme update or customization: Run a full diagnostic. Theme changes are the most common cause of CLS regressions.
  • Quarterly: Review Core Web Vitals in Google Search Console. Field data trends matter more than lab data snapshots.

  • Where to go next

  • Shopify SEO playbook — the broader optimization context speed work fits inside
  • Best Shopify SEO apps — which apps to install, including image-compression apps that actually help
  • Shopify product page optimization — speed work specific to product pages
  • Shopify Page Speed Checker — a quick first-pass check on your store
  • Frequently Asked Questions

    What is a good Shopify Core Web Vitals score?

    Google's "good" thresholds are: Largest Contentful Paint (LCP) under 2.5 seconds, Cumulative Layout Shift (CLS) under 0.1, and Interaction to Next Paint (INP) under 200 milliseconds. INP replaced First Input Delay (FID) as a Core Web Vital in March 2024 — if a post or tool still references FID, it is out of date. Hitting "good" on all three for 75% of your real users is the bar Google uses for ranking impact. The aggregate PageSpeed Insights score (0–100) is less useful than the underlying Core Web Vitals numbers because it weighs metrics that do not directly map to ranking.

    Do Shopify apps slow down my store?

    Yes, and this is almost always the biggest speed bottleneck on Shopify stores. Every installed app injects JavaScript that runs on page load, often on pages where the app does not provide functionality. The fix is not "use faster apps" — it is "use fewer apps." Audit which apps are active on your product and homepage pages using PageSpeed Insights, identify the heaviest, and uninstall the ones you are not actively using. Many stores see double-digit speed improvements from removing two or three unused apps with no other changes.

    Does Shopify site speed actually affect rankings?

    Yes, but with caveats. Page speed and Core Web Vitals are confirmed ranking signals — Google has stated this publicly. The caveat is that speed is one of many signals. A page with great content and a 3-second LCP usually outranks a page with thin content and a 1-second LCP. Speed is a tiebreaker when other signals are similar, and it has a larger user experience and conversion impact than its direct ranking weight. Both matter, but do not chase a 100 PageSpeed score at the expense of doing the content work.

    Why is my Shopify store slow when Shopify says they have a fast CDN?

    Shopify's infrastructure is fast. The bottleneck is almost always something you added on top: heavy theme customization, third-party app JavaScript, large source images, custom fonts loaded on every page, or third-party scripts (analytics, tracking pixels, chat widgets). The Shopify CDN can deliver your assets quickly, but it cannot prevent app JavaScript from blocking page render. The diagnostic workflow in this guide finds which of these is actually slowing your store.

    Should I switch themes to make my store faster?

    Probably not as a first step. Theme switching is high-risk for SEO (heading hierarchy changes, schema differences, broken internal links) and most slow Shopify stores are not slow because of the theme — they are slow because of apps. Run the diagnostic workflow first. Only consider switching themes if you are on a pre-Online-Store-2.0 theme or a third-party theme that is no longer actively maintained.

    Site SpeedShopifyTechnical SEOPerformanceCore Web Vitals
    Share:

    Sources & references

    Primary documentation referenced for the technical claims on this page. We do not link out to competitor products or affiliate content; these are the standards bodies and platform docs the guidance is built against.

    Ready to Automate Your Content Marketing?

    Let Obsess AI write SEO-optimized blog posts for your Shopify store.