Skip to main content
StackraStackra
E-commerce Platform
~5% of all websites

Shopify Performance and SEO: What's Fixed vs. What You Control

Shopify gives merchants a strong technical foundation. Stackra audits speed, SEO, security, and AI visibility across your store -- and tells you which gaps are fixable and which are platform ceilings.

Free to sign up · Results in ~3 minutes

What Stackra audits

Your Growth Score is built from three pillars. Here is what each one covers and why it matters for your business.

Technical Confidence

How fast your store loads and how securely it's served. Shopify handles CDN delivery and image format conversion automatically. What varies between stores is your theme generation (OS 1.0 vs 2.0) and how many app scripts load on each page.

Search Visibility

Whether search engines can find, read, and understand your store. Product and Organization schema are generated automatically. Gaps typically appear on blog content, custom landing pages, and review schema -- which require apps or theme code.

Growth Readiness

Whether your store is built to convert shoppers. Measured through CTAs, trust signals (reviews, certifications, guarantees), and how clearly your value proposition is communicated above the fold.

What Shopify controls vs. what you control

Shopify manages more of the stack than WordPress, but less than Wix or Squarespace. The split matters for which recommendations are actionable.

Platform handles
  • CDN delivery and edge caching for all storefronts
  • Image format conversion (WebP, AVIF) on all plans
  • Three security headers: X-Frame-Options, HSTS, X-Content-Type-Options
  • Product, Organization, and BreadcrumbList schema injection
  • robots.txt (unless you override with robots.txt.liquid)
You control
  • Theme selection and customization -- OS 2.0 vs legacy OS 1.0
  • App selection -- each app can add render-blocking scripts
  • Product images -- format is handled by Shopify, file weight is yours
  • Blog content -- the primary lever for adding Article schema
  • robots.txt.liquid -- editable on all plans
  • Custom JSON-LD via theme code for additional schema types
  • Third-party script load order via Tag Manager or theme code

The key insight: Custom HTTP security headers (Referrer-Policy, Permissions-Policy, CSP beyond what Shopify provides) are not available on standard plans. Stackra does not flag these as owner failures -- they are platform ceilings.

Why Shopify stores are sometimes slow

In order of how often each is the root cause. Fix from the top down.

1

Legacy OS 1.0 theme

The single biggest performance gap on Shopify. OS 1.0 themes (Dawn's predecessor era) were built before Sections Everywhere and often load jQuery, legacy carousel libraries, and monolithic CSS files. A legacy theme scores 15-30 Lighthouse points lower than an equivalent OS 2.0 theme. jQuery presence is the most reliable proxy -- Stackra flags this in the CTO review as an OS 2.0 migration opportunity.

Migrate to a free OS 2.0 theme (Dawn, Sense, Craft, Crave are all free and well-optimized) or a premium OS 2.0 theme. This is the highest-impact structural change available to most Shopify merchants and the first recommendation we make when legacy theme signals appear. Important: theme migration is a structural change -- use Shopify's built-in theme preview mode to test your new theme fully before publishing. Verify all checkout flows, third-party tracking pixels, and any app integrations work correctly in preview before going live.

2

App scripts on every page

Most Shopify apps inject JavaScript into the storefront without page-type awareness. An app used only at checkout still loads its script on the homepage, collection pages, and blog. With 5-10 apps installed, the cumulative script weight is substantial.

Audit your apps annually. Remove apps that are no longer actively used -- their scripts persist in your theme until you uninstall and re-save the theme. For apps you keep, check whether they support app blocks (OS 2.0 feature) -- app blocks can be conditionally placed on specific page templates instead of loading everywhere.

3

Heavy product images

Shopify's CDN converts images to WebP and AVIF automatically and generates responsive srcset variants. What it does not do is compress your source files. A 6MB JPEG uploaded as a product image is stored as 6MB and served (converted to WebP) at that weight. Large source files are the primary LCP driver on product-heavy stores.

Compress product images before uploading. Target under 200KB for hero images, under 100KB for secondary product images. Tools: TinyPNG, Squoosh, or bulk optimization via an image app (Crush Pics, TinyIMG). The goal is reducing source file weight -- Shopify handles everything else.

4

App-injected third-party scripts

Klaviyo, Yotpo, Klarna, Afterpay, and similar apps each add an external script. Review scripts and chat scripts often load synchronously and block rendering. The script cost is per-app, not per-category.

Consolidate via Tag Manager where possible. For marketing pixels (Meta, TikTok, Google Ads), load through GTM rather than individual app scripts. For revenue-generating integrations (BNPL, reviews), evaluate whether conversion lift justifies the load time cost.

Schema and structured data on Shopify

Shopify auto-generates schema for core commerce objects. Content and custom schema require theme code or an app.

Automatic: product pages

Shopify injects Product schema on all product pages -- name, price, availability, images, SKU, and currency. This is generated from your product data and cannot be disabled on standard themes. Product schema is complete and accurate by default.

Automatic: organization

Organization schema is generated at the storefront level from your Shopify admin settings (store name, URL, social links). Complete your store information in Settings > Store Details and connect social accounts to improve this output.

Reviews schema via apps

Aggregate ratings and AggregateRating schema require a reviews app. Judge.me, Yotpo, and Okendo all generate AggregateRating schema as part of their review widgets. Without a reviews app, no review schema is present.

Custom JSON-LD via theme code

Shopify gives you full access to Liquid theme files. You can add any schema type via JSON-LD in theme.liquid or page-specific Liquid templates. HowTo schema for guides, BlogPosting for blog posts, and FAQPage can all be added this way. Requires basic Liquid familiarity.

The apps that move the needle

One recommended pick per category with alternatives below. Ranked by install base and Stackra's observed usage in scanned stores.

Platform quirks Stackra checks for

Shopify-specific signals that affect your score -- and the reasoning behind how we handle each one.

App scripts are named, not aggregated

When Stackra detects Klaviyo, Yotpo, Klarna, or Afterpay scripts, we surface them by name in the CTO review. Generic 'reduce third-party scripts' advice is not useful on Shopify -- specific app attribution tells you which apps to investigate.

Three security headers come free

Shopify injects X-Frame-Options: DENY, HSTS, and X-Content-Type-Options on all storefronts automatically. Stackra credits these as platform positives. We do not flag missing Referrer-Policy or Permissions-Policy as owner failures -- there is no server access to add them.

WebP and AVIF are automatic

Shopify's CDN converts and serves WebP and AVIF to supported browsers on all plans. Stackra does not flag image format as an action item on Shopify stores. The right guidance is compressing source files before upload -- format delivery is handled by the platform.

jQuery signals a legacy theme

jQuery presence on a Shopify storefront is a reliable proxy for a legacy OS 1.0 theme. Stackra surfaces this in the CTO review as an OS 2.0 migration opportunity -- the highest-impact structural change available to most Shopify merchants.

robots.txt is editable

Unlike most fully managed platforms, Shopify allows robots.txt.liquid editing on all plans. If Stackra detects a robots.txt issue, there is a real fix: Online Store > Themes > Edit code > robots.txt.liquid.

Variant URLs are not duplicate content

Product variant URLs (?variant=XXXXX) are automatically canonicalized to the base product URL by Shopify. Stackra does not flag this as a duplicate content issue -- it is correct platform behavior, not an SEO error.

Score context: how Shopify compares

Real-user Core Web Vitals pass rate by platform, mobile. Source: HTTP Archive CrUX Technology Report, February 2026.

Core Web Vitals -- quick reference

Core Web Vitals refers to three real-user speed and stability metrics Google uses to grade every website. The pass rate above is the share of real visits where all three are in the "good" range.

LCP

Largest Contentful Paint

How fast your main content loads. Good: under 2.5s.

INP

Interaction to Next Paint

How fast your page responds to taps and clicks. Good: under 200ms.

CLS

Cumulative Layout Shift

Whether your layout jumps while loading. Good: under 0.1.

Shopify(you)
78%
Duda
85%
Wix
79%
Squarespace
70%
Drupal
59%
WordPress
48%
Web average
48%
Reading this number: Shopify's 78% CWV pass rate is the highest of any major ecommerce platform. OS 2.0 stores on modern themes perform significantly above this average; legacy OS 1.0 stores drag the average down. A well-optimized Shopify store with a modern theme routinely exceeds 85%.

See how your Shopify store scores

Stackra scans your storefront and gives you a Growth Readiness score with AI-powered reviews from CMO, SEO, and CTO perspectives. Free to sign up.

~5 minutes · Free to sign up.