GigaCommerce

Shopify Speed & Core Web Vitals in the Agentic Era

Slow, script-heavy Shopify PDPs lose humans and fail AI agents. The app audit, image discipline, and script fixes that move Core Web Vitals in 2026.

The GigaCommerce TeamAgentic commerce operators11 min read
SHOPIFYGigaCommerce · Insights

Speed optimization is the oldest discipline in ecommerce and the first one merchants let slide. Every store launches fast. Then two years of app installs, pixel additions, and theme edits later, the PDP takes six seconds to settle on a phone and nobody can say exactly why.

The discipline hasn't changed. The stakes have. In 2026 a slow, script-heavy product page fails two audiences at once: the human on a mid-range Android who bounces before the buy button paints, and the AI assistant that fetches your page on a tight budget, finds an empty shell waiting on JavaScript, and quietly recommends someone else.

Speed now has two audiences

The human case is old news: mobile shoppers abandon slow pages, and every second of delay costs conversions you never see in analytics because the visitor left before the pixel fired. That case was already sufficient reason to care.

The new case is machines. When a shopper asks ChatGPT, Claude, Perplexity, or Gemini to find a product, or Google's AI Overviews assembles an answer, those systems fetch your pages directly. They do it with strict time budgets, and most execute little or no JavaScript. A PDP that spends five seconds assembling itself client-side — price injected by script, reviews hydrated by a widget, specs rendered by an app — hands the agent a skeleton. The agent doesn't wait, doesn't retry, and doesn't tell you it failed.

How an off-site assistant reads your PDP
01Fetch HTMLOne request, tight timebudget, little or no JS02Parse what's thereServer-rendered text andJSON-LD, not hydrated UI03Extract the factsPrice, stock, variants,shipping, returns04Answer the shopperOr it skips you andrecommends a competitor
Every step has a budget. Weight and client-side rendering cause silent failures at steps one and two.

On-site, the same logic holds. Shopify's Brand Agents — shipped in the Spring '26 edition, currently Plus only — read from structured storefront data rather than scraping your rendered theme. But the habits that make a storefront fast are the same habits that make it machine-legible: server-rendered content, structured data, and a ruthless attitude toward scripts. We cover the full stack in our agentic commerce on Shopify guide; this article is about the speed layer specifically.

Why is my Shopify store slow?

Direct answer: it is almost never Shopify's infrastructure. Shopify's hosting and CDN are genuinely fast — your Liquid renders in milliseconds and assets ship from edge nodes. Your store is slow because of what got layered on top: app-injected scripts, oversized images, third-party pixels, and accumulated theme code. In roughly that order.

Where the weight on a slow PDP usually comes from
App-injected scriptsScriptTags, embeds, leftover code from uninstallsThird-party pixelsAnalytics, ads, chat, heatmaps, tag managersOversized imagesFull-size uploads served without srcset sizingTheme JS and CSSOld sections, snippets, page-builder markup
Illustrative shares of fixable weight on a typical script-heavy mid-market PDP. Your waterfall will differ — measure before you cut.

Apps dominate because of how they attach. Most apps inject a ScriptTag or a theme app embed that loads on every page of the store, whether or not the page uses the feature. A review widget loads on your policy pages. A bundle app loads on your blog. And when you uninstall an app, Shopify removes the ScriptTag — but any code the app pasted into your theme during onboarding stays behind, loading forever.

1 in 3

Script tags on a typical mid-market Shopify PDP that belong to apps the merchant no longer actively uses — dead weight on every single page load.

GigaCommerce field framework

How do I speed up my Shopify store? Start with the app audit

Direct answer: run an app audit first. It is the highest-leverage speed work on Shopify because one decision — remove an app — deletes scripts from every page at once. Image work fixes templates one at a time; the app audit fixes the whole store.

  1. 1

    Inventory everything that loads

    List installed apps in the admin, then open your PDP in a browser profiler and list every script domain that actually loads. The second list is always longer than the first — that gap is your leftover code.

  2. 2

    Attribute the cost

    Tag each script to its app and note its transfer size and main-thread time. You are building a ranked hit list, not a vague sense of guilt.

  3. 3

    Cut what isn't earning

    For each app, ask one question: does this demonstrably produce more revenue than its speed cost destroys? Apps that can't answer get uninstalled. Most stores find several they forgot they had.

  4. 4

    Replace with native features

    Shopify has absorbed many app categories: Search & Discovery for filtering and recommendations, metafields for spec tables, native bundles, Shopify Flow for automations. Native features cost zero scripts. The same logic applies to on-site AI search — check what the platform gives you before adding a vendor.

  5. 5

    Clean the residue and set a gate

    Search theme.liquid, snippets, and assets for references to uninstalled apps and delete them. Then set a rule: no new app ships without a before/after performance check on a real mobile device.

Uninstalling is not removing

Shopify apps cannot delete theme code they added once you uninstall them — the platform revokes their access first. Every store that has churned through apps carries this sediment. If you have never manually cleaned your theme after uninstalls, assume dead code is loading right now.

Image discipline that actually moves LCP

On most PDPs the Largest Contentful Paint element is the hero product image, which makes image handling the most direct LCP lever you have. The good news: Shopify's CDN does the hard part — automatic format conversion and on-the-fly resizing — if your theme asks for it correctly.

  • Use image_tag with explicit widths. Modern themes generate a proper srcset so a phone downloads a 400-pixel image, not your 4000-pixel studio upload. If your theme hardcodes img src straight to the original file, that is the bug.
  • Set width and height on every image. Reserved space is what prevents the page from jumping as images arrive — that jump is your CLS score.
  • Lazy-load below the fold only. Galleries, recommendations, and footer logos should be loading="lazy". The hero must not be.
  • Avoid apps that re-serve images from their own domains. Extra DNS lookups, no Shopify CDN optimization, and one more vendor between the shopper and your product.

Never lazy-load your LCP image

The most common self-inflicted LCP wound we see: a theme or app blanket-applies lazy loading to all images, including the hero. The browser then deprioritizes the one image the page is scored on. The hero should load eagerly with fetchpriority="high"; everything below the fold can wait.

Third-party scripts: the pixel tax

Every pixel, chat widget, heatmap, popup, and A/B tool takes main-thread time on your shopper's phone — and main-thread contention is what wrecks INP, the responsiveness metric. The pattern we see repeatedly: each script was added for a defensible reason, nobody owns the total, and the sum is a PDP that ignores taps for half a second.

  • Move pixels into Shopify Customer Events. Web pixels run in a sandbox off your critical path instead of pasted into theme.liquid where they block rendering. Migrate every pixel that offers it.
  • One tag manager, audited quarterly. Tag managers make adding scripts free, which is exactly the problem. Someone must own the container and delete tags for tools nobody checks.
  • Load chat on interaction. Show a static chat button and load the multi-hundred-kilobyte vendor bundle only when someone taps it. Most sessions never do.
  • Kill zombie experiments. A/B testing scripts left running with no active tests are pure tax — they block rendering to decide nothing.

Theme bloat and page-builder debt

Themes accumulate the same way app lists do. Sections built for a campaign two Black Fridays ago, snippets from deleted apps, CSS for layouts nothing renders anymore — all of it ships to every visitor. Page builders add their own layer: they trade speed for convenience by generating deep, div-heavy markup and loading their own runtime on every templated page.

The fixes are unglamorous. Stay on a current Online Store 2.0 theme with JSON templates. Audit sections and snippets yearly and delete what nothing references. Keep page builders on landing pages if you must use them, and keep PDPs native — the PDP is the page both shoppers and agents hit hardest, and it deserves the leanest template in your store. And when a theme has absorbed years of layered edits, a rebuild on a fresh reference theme is often cheaper than another year of archaeology — that call is a regular part of our Shopify Build & Growth work.

Measure on mobile, on field data

Core Web Vitals
Google's three user-experience metrics, measured on real visits: Largest Contentful Paint (LCP, loading — good is 2.5s or under), Interaction to Next Paint (INP, responsiveness — 200ms or under), and Cumulative Layout Shift (CLS, visual stability — 0.1 or under).
Field data vs lab data
Field data is collected from real visitors' devices and connections (the CrUX dataset). Lab data is a single simulated run on synthetic hardware. Google evaluates your store on field data — so a lab score can flatter you while real shoppers suffer.

Two mistakes corrupt most merchants' view of their own speed. First, testing on desktop: your traffic is mostly phones, often mid-range ones on cellular, and mobile is where the field data comes from. Second, trusting the lab score: a Lighthouse 85 on your office fiber says little about the 4-second LCP your actual customers experience. Check the field data section of PageSpeed Insights, the Core Web Vitals report in Search Console, and Shopify's own web performance dashboard — and treat the 75th percentile of real mobile visits as the number that counts.

LeverTypical effortHuman payoffAgent payoff
App auditA focused weekFewer blocking scripts; faster LCP and INP everywhereCleaner HTML with less JS between the agent and your content
Image disciplineDaysFaster LCP, stable layout, smaller mobile downloadsLighter fetches; hero content present in the initial HTML
Third-party scriptsDays, then an ongoing policyBetter INP; the page responds to taps againFewer timeouts and parser failures on assistant fetches
Theme bloatA week — or a rebuildSmaller bundles on every templateSimpler DOM that extraction handles reliably
The four levers, in the order we pull them.

Do Core Web Vitals matter for AI shopping?

Direct answer: not as a scored input — no assistant checks your CLS before deciding whether to recommend you. But the question misses the mechanism. The root causes of bad Core Web Vitals and the root causes of agent-illegible pages are the same causes. A PDP that renders its price, specs, and availability with client-side JavaScript fails LCP for humans and serves an empty shell to agents that don't execute scripts. A page drowning in third-party tags responds slowly to shoppers and risks timing out an assistant's fetch budget.

So the work converges. Server-render the facts that matter. Put them in structured data AI systems parse — Product JSON-LD with price, availability, and identifiers. Keep the template lean enough that what arrives in the initial HTML response is the whole story. That is the same checklist we walk through in product pages built for AI agents, because speed work and agent-readiness work are two views of one discipline. When merchants want it done end to end — speed layer, structured data, catalog, the lot — that is the scope of our Agentic Commerce Setup.

The merchants who win the agentic era are not doing anything exotic. They are doing the boring work — fewer scripts, honest images, lean templates — for one audience that has always rewarded it and a second one that just arrived.

Find out what agents see when they fetch your store.

The Agentic Commerce Readiness Score grades your PDP weight, structured data, and machine-readability in about three minutes — with the specific fixes ranked.

Frequently asked questions

How do I speed up my Shopify store?
Run an app audit first: profile your PDP, attribute every script to its app, uninstall what isn't earning revenue, and delete leftover code from past uninstalls. Then fix images (srcset via image_tag, width/height attributes, no lazy-loading the hero), move pixels into Shopify Customer Events, and trim theme bloat. That order matters — the app audit fixes every page at once, so it pays back fastest.
Why is my Shopify store slow?
Almost never because of Shopify itself — the platform's hosting and CDN are fast. Stores get slow from what accumulates on top: app-injected scripts that load on every page (including leftovers from uninstalled apps), full-resolution images served without responsive sizing, a pile of third-party pixels and widgets, and years of theme edits nobody cleaned up. Profile the page and the culprits attribute themselves.
Do Core Web Vitals matter for AI shopping?
Not as a direct ranking input — assistants don't score your LCP. But the same problems that fail Core Web Vitals also break agent legibility: client-side rendering hides your price and specs from fetchers that don't run JavaScript, and script-heavy pages risk timing out an assistant's fetch budget. Fixing speed with server-rendered content and structured data improves both human conversion and agent reliability in one pass.
Do AI agents run JavaScript when they visit my store?
Some can, but you should build as if none do. Most assistant fetchers work from the initial HTML response under strict time budgets, and even the ones that render JavaScript do it inconsistently. If your price, availability, and specs are server-rendered and duplicated in Product JSON-LD, you are legible to all of them. If they only exist after hydration, you are gambling on each fetcher's mood.
Will switching to a new theme fix my speed problems?
Only if you fix the habits that made the old one slow. A fresh Online Store 2.0 theme ships fast, but the app scripts and pixels that weighed down the old theme carry straight over — and without an install gate, the new theme is back where the old one was within a couple of quarters. Do the app audit first; then a theme change (or rebuild) locks in the gains.
TG

The GigaCommerce Team

Agentic commerce operators

Operators who install Shopify Brand Agents, Copilot Checkout, and AI-ready catalogs for mid-market merchants. We publish the frameworks we actually use with clients.

Get the weekly DTC + Agentic Commerce brief.

One email a week on what shipped in agentic commerce and the move to make. No fluff.