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.
- 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)
- 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.
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.
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.
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.
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.
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.