smplx.
Shopify SEO

Technical SEO Audit for Shopify: What Really Matters [Checklist 2026]

Claudio Gerlich··18 minutes

The majority of standard SEO audits lead to wrong conclusions for Shopify. Why? Because Shopify is a specific system with its own rules. As Technical Architect at smplx., we have spent more than 5 years conducting Shopify audits — and learned where standard tools fail.

This guide is based on real audit results and shows you what really matters when it comes to technical SEO for Shopify.

1. What Is Technical SEO? And Why Shopify Is Different

Definition: The Foundations

Technical SEO refers to the infrastructural factors that make a website crawlable and indexable:

  • Crawlability: Can Google bots actually reach and read your pages?
  • Indexability: Are these pages being added to Google's index?
  • Core Web Vitals: Are your pages fast enough (LCP, INP, CLS)?
  • Structured Data: Do search engines truly understand your content?

Why Standard Audits Don't Work for Shopify

Standard SEO tools (like SEMrush or Ahrefs) treat Shopify like any other website. That's a big problem.

Shopify has:

  • Automatically generated URL structures — often with tracking parameters
  • App dependencies that inject messy code
  • Theme limitations that block performance optimizations
  • Standardized meta fields that aren't always ideally filled out
  • Canonical tags that incorrectly point to the main domain

An example from our work: At Bekateq, we removed 23 apps that together added 340 KB of unnecessary JavaScript. A standard audit would never have caught these details.

Shopify-Specific Error Sources

  1. Apps are your biggest risk: Many popular apps (reviews, wishlist, upsell popups) load tracking code, custom CSS, and JavaScript. This slows your site by 20-40%.

  2. Liquid templates generate uncontrolled HTML: Shopify developers often can't optimize well when the theme structure is poor.

  3. Pagination and URL parameters: Shopify automatically generates URL parameters for filters and sorting — often without appropriate noindex tags.

  4. Multilingual is complex: Hreflang tags are frequently implemented incorrectly (we had hreflang errors on 100% of our own pages — that's normal and shows the complexity).


2. Crawlability Audit: The First Step

Before your pages can rank, they must actually be crawled.

Step 1: Check Robots.txt and Disallow Rules

Your robots.txt should be located at https://yourshop.com/robots.txt.

Common Mistakes:

User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /collections/*?*  # <- Wrong wildcard syntax

It should optimally look like this:

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /cart/
Disallow: /checkout/
Disallow: /orders/
Disallow: /account/
Disallow: /collections/*?*
Disallow: /pages/*?*

Sitemap: https://yourshop.com/sitemap.xml

Robots.txt Checklist:

  • Sitemap URL is correctly added
  • /admin/ is blocked
  • /cart/, /checkout/, /orders/ are blocked
  • /account/ is blocked
  • URL parameter pages are blocked (e.g. *?*)
  • No important pages are accidentally blocked

Step 2: Check Sitemap.xml Structure

Shopify automatically generates sitemaps. That's convenient, but not always perfect.

What you should check:

  1. Sitemap index present?

    • https://yourshop.com/sitemap.xml should be an index sitemap
    • It links to: product.xml, collection.xml, page.xml, blog.xml
  2. URLs with session IDs removed?

    • Shopify can include URLs with query strings in the sitemap
    • These should be removed
  3. Hreflang entries correct?

    • In multilingual shops, each language should have a separate sitemap
    • Each should be linked in the sitemap index

Practical Test:

# Enter sitemap URL in Search Console
# Or manually open https://yourshop.com/sitemap.xml
# -> Should be XML, not HTML

Step 3: Check Internal Linking Structure

The internal link structure determines how Google navigates through your website.

Common Shopify Mistakes:

  • Collections have no or poor links to products
  • Blog articles are not linked to products
  • Footer links are too generic
  • Breadcrumbs are wrong or missing

Internal Links Checklist:

  • Every collection has contextual links (to products, related categories)
  • Breadcrumbs are visible on all pages
  • Important pages are no more than 3 clicks from the homepage
  • Anchor text is meaningful (not "here" or "click")
  • No broken internal links (404 errors)

Example from our work: At Tramontina (outdoor furniture), we restructured the collection pages:

  • Each category links to 3-5 related categories
  • Each product links to 2-3 similar products
  • Blog articles link to relevant product categories
  • Result: Internal linking improved by 45%, average session duration +22%

Step 4: Noindex Tags on Wrong Pages?

Shopify automatically sets noindex on certain pages. That's usually correct, but not always.

Check in the Theme Code section:

{% if page.class contains 'giftcard' %}
  <meta name="robots" content="noindex">
{% endif %}

These pages should have noindex:

  • /cart/ — Shopping cart
  • /checkout/ — Checkout process
  • /orders/ — Order confirmations
  • /account/ — Login/account pages
  • Admin pages
  • Gift card pages

These pages should NOT have noindex:

  • Product pages
  • Categories
  • Blog articles
  • About us page
  • Contact page

3. Indexation Audit: Is Your Website Being Indexed?

A crawlable website is not automatically indexed. Here we check the actual status.

Step 1: Google Search Console Coverage Report

This is the most important source of truth.

  1. Go to Google Search Console -> Coverage
  2. Check the following metrics:

What the statuses mean:

Status Meaning Action
Valid Indexed Good!
Valid with warning Indexed, but with issue Review
Not indexed Intentionally noindex OK for /cart/, /checkout/
Error Not reachable Must be fixed
Excluded Blocked by robots.txt Review

Red Flags:

  • More than 50% "Error" -> robots.txt problem
  • Many "Not indexed" without reason -> Check noindex tags
  • "Excluded" for product pages -> Check robots.txt

Step 2: Duplicate Content and URL Parameters

Shopify often generates multiple versions of the same page:

/products/tshirt
/products/tshirt?variant=red
/products/tshirt?variant=red&utm_source=facebook
/products/tshirt/?variant=red

This is a big problem.

Solution 1: Canonical Tags

Shopify sets canonical tags automatically, but often incorrectly:

<!-- Wrong: Points to wrong domain -->
<link rel="canonical" href="http://yourshop.com/products/tshirt" />

<!-- Correct: HTTPS and no query string -->
<link rel="canonical" href="https://yourshop.com/products/tshirt" />

Check in Search Console:

  • Open "Link Element" report
  • Review canonical tags
  • Search for faulty canonicals

Solution 2: Parameter Handling in GSC

  1. Google Search Console -> Settings -> URL Parameters
  2. Mark these parameters as "not relevant":
    • utm_* (Tracking)
    • fbclid (Facebook)
    • gclid (Google Ads)
    • Sorting parameters

Step 3: Hreflang for Multilingual Shops

If your shop exists in multiple languages, hreflang is essential.

Common Mistakes (from our own experience):

  1. Wrong domain structure

    <!-- Wrong -->
    <link rel="alternate" hreflang="de" href="https://en.example.com/de/" />
    
    <!-- Correct (for subdomains) -->
    <link rel="alternate" hreflang="de" href="https://de.example.com/" />
    <!-- or -->
    <link rel="alternate" hreflang="de" href="https://example.com/de/" />
    
  2. Missing self-reference

    <!-- Must be on the page itself -->
    <link rel="alternate" hreflang="de" href="https://de.example.com/" />
    <link rel="alternate" hreflang="en" href="https://en.example.com/" />
    <link rel="alternate" hreflang="x-default" href="https://en.example.com/" />
    
  3. Wrong language codes

    <!-- Wrong -->
    <link rel="alternate" hreflang="deutsch" ... />
    
    <!-- Correct: ISO 639-1 code -->
    <link rel="alternate" hreflang="de" ... />
    

Check with:

  • Screaming Frog (Hreflang tab)
  • Google Search Console (International Targeting report)

4. Core Web Vitals & Performance: The New Ranking Factors

Google has officially confirmed Core Web Vitals as a ranking factor. For Shopify, this is one of the biggest challenges.

The Three Metrics

1. LCP (Largest Contentful Paint) — Loading Speed

  • What's measured: How long until the largest content element is visible?
  • Target: < 2.5 seconds
  • Often a problem on Shopify because: Apps load JavaScript, hero images are unoptimized

2. INP (Interaction to Next Paint) — Responsiveness

  • What's measured: How quickly does the page respond to user input?
  • Target: < 200 milliseconds
  • Often a problem on Shopify because: Too much JavaScript, add-to-cart animations

3. CLS (Cumulative Layout Shift) — Visual Stability

  • What's measured: Does the page layout shift during loading?
  • Target: < 0.1
  • Often a problem on Shopify because: Dynamically loaded app elements, images without height attributes

Shopify-Specific Performance Bottlenecks

Problem 1: Apps Are the Biggest Enemy

An average Shopify app:

  • 15-50 KB JavaScript
  • 2-5 KB CSS
  • 1-2 external API calls

With 10 apps = 200+ KB extra JavaScript. That slows your site by 30-40%.

Audit Questions:

  • Which apps are truly necessary?
  • Can apps be combined?
  • Do apps load blocking JavaScript (synchronous)?
  • Do apps have analytics/tracking enabled?

Our Bekateq Case Study: We reduced a client from 15 apps to 7 apps:

  • Removed: Review app (Google Reviews instead), wishlist (theme feature), popup app (Shopify popup instead)
  • Result: LCP from 4.2s to 2.1s, performance score from 28 to 72

Problem 2: Theme and Liquid Code

Shopify themes can be very poorly optimized.

Check:

{%- render 'product-image' -%}
<!-- Often 10+ images loaded as <img> here -->
<!-- Better: <picture> or <img srcset> with sizes -->

{%- render 'big-javascript-component' -%}
<!-- Inline JavaScript can block the main thread -->
<!-- Better: defer or async attributes -->

Performance Checklist for Themes:

  • Images use srcset and sizes
  • Large JavaScript files have async or defer
  • CSS is minimized and critical CSS is inline
  • Fonts are preloaded (not from CDN)
  • No render-blocking resources in the head

Problem 3: Image Optimization

90% of Shopify stores have unoptimized images.

What you should check:

  1. Image Format

    <!-- PNG/JPG are large -->
    <img src="product.jpg" alt="Product" />
    
    <!-- WebP is 25-35% smaller -->
    <picture>
      <source srcset="product.webp" type="image/webp" />
      <img src="product.jpg" alt="Product" />
    </picture>
    
  2. Image Size

    <!-- 2000x2000px image for 300x300px display -->
    <img src="product-2000.jpg" width="300" />
    
    <!-- Correct size with srcset -->
    <img
      src="product-300.jpg"
      srcset="product-300.jpg 300w, product-600.jpg 600w"
      sizes="(max-width: 768px) 100vw, 300px"
    />
    
  3. Lazy Loading

    <!-- Images below the fold can be lazy loaded -->
    <img src="product.jpg" loading="lazy" />
    

Tools for checking:

  • Google PageSpeed Insights -> Opportunities -> "Serve images in modern formats"
  • WebP Converter: cwebp or online tools

Problem 4: JavaScript Loading Strategy

Many Shopify stores load JavaScript synchronously, which blocks the main thread.

Check the theme code:

<!-- Synchronous loading (blocks everything) -->
<script src="https://cdn.example.com/big-library.js"></script>

<!-- Async (loads in parallel, executes immediately) -->
<script src="https://cdn.example.com/big-library.js" async></script>

<!-- Defer (loads in parallel, executes after HTML) -->
<script src="https://cdn.example.com/big-library.js" defer></script>

Rule of Thumb:

  • async for analytics (Google Analytics, Facebook Pixel)
  • defer for functionality (menus, forms)
  • Synchronous only for critical JavaScript (under 10 KB)

5. On-Page Signals & Structured Data: The Details

Technical SEO is not just server-side. On-page factors are equally important.

Meta Titles and Meta Descriptions

Meta Title (50-60 characters):

<!-- Too long and not meaningful -->
<title>Shop | Great Products | Best Prices | Welcome</title>

<!-- Short and with keywords -->
<title>Premium Organic Cotton T-Shirts | EcoWear</title>

Meta Description (150-160 characters):

<!-- Auto-generated, not compelling -->
<meta name="description" content="Product page. Buy online. Free shipping." />

<!-- With call-to-action and unique selling proposition -->
<meta name="description" content="Sustainable t-shirts made from 100% organic cotton. Free shipping on orders over 50 EUR. Shop now!" />

Shopify-specific:

  • Use the "SEO Title" and "Meta Description" fields in Shopify Admin
  • Don't rely on auto-generation
  • For collections: Each should have a unique description

Heading Structure

A correct heading structure helps Google understand what the page is about.

<!-- Wrong: No H1, too many H2 -->
<h2>Product Name</h2>
<h2>Specifications</h2>
<h2>Reviews</h2>

<!-- Correct: One H1, then H2 with H3 -->
<h1>Premium Leather Sneakers</h1>
<h2>Specifications</h2>
<h3>Materials</h3>
<h3>Sizes</h3>
<h2>Customer Reviews</h2>
<h3>Recent Reviews</h3>

Check with:

  • Lighthouse Accessibility Report
  • SEO Chrome extensions (e.g. Headings Map)

Schema.org Structured Data

Structured data helps Google understand content and can lead to rich snippets in the SERPs.

The most important schemas for Shopify:

1. Product Schema

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Premium Leather Sneakers",
  "image": "https://example.com/photo.jpg",
  "description": "High-quality leather sneakers with...",
  "brand": {
    "@type": "Brand",
    "name": "EcoWear"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/product/sneakers",
    "priceCurrency": "EUR",
    "price": "89.99",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "127"
  }
}

Shopify generates this automatically, but check:

  • price is correct
  • availability is current
  • aggregateRating is present (if you have reviews)
  • image is present

2. Organization Schema

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "smplx.",
  "url": "https://smplx.media",
  "logo": "https://smplx.media/logo.png",
  "sameAs": [
    "https://www.linkedin.com/company/smplx",
    "https://www.instagram.com/smplx_media"
  ],
  "address": {
    "@type": "PostalAddress",
    "addressRegion": "Muensterland, NRW",
    "addressCountry": "DE"
  }
}

3. LocalBusiness Schema (for physical shops)

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "My Store",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Hauptstrasse 1",
    "addressLocality": "Muensterland",
    "postalCode": "48143",
    "addressCountry": "DE"
  },
  "telephone": "+49 2541 123456",
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Monday",
    "opens": "09:00",
    "closes": "17:00"
  }
}

4. Review/AggregateRating Schema

{
  "@context": "https://schema.org/",
  "@type": "Review",
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "5",
    "bestRating": "5"
  },
  "author": {
    "@type": "Person",
    "name": "John Smith"
  },
  "reviewBody": "Great product, fast shipping!",
  "datePublished": "2026-02-19"
}

5. FAQPage Schema

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is the delivery time?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Within Germany, 1-3 business days."
      }
    }
  ]
}

Tools for checking:


6. Practical Audit Workflow & Checklist

Now to the practice: How do you conduct a technical SEO audit yourself?

Phase 1: Preparation (30 Minutes)

What you need:

  • Google Search Console access (full access to property)
  • Google PageSpeed Insights
  • Screaming Frog SEO Spider (free version)
  • Browser DevTools (Ctrl+Shift+I or F12)

Gather information:

Shop Name: ________________
Domain: ________________
Founded/Launch: ________________
Primary Languages: ________________
Current Traffic (monthly): ________________

Phase 2: Crawl & Index Audit (2-3 Hours)

2.1 Run Screaming Frog Crawl

  1. Open Screaming Frog
  2. Enter your domain
  3. Click "Start" and wait for completion
  4. Export a report as CSV

What you should check:

  • Column "Status Code": How many 404s are there?
  • Column "Meta Description": Are all filled in?
  • Column "Title 1": Are all meaningful?
  • Column "Robots": Are noindex tags correct?
  • Column "Canonical": Do all point to the correct URL?

Red Flags:

- Status Code 404 on main pages (products, collections)
- Duplicated Meta Titles (copy-paste)
- Empty Meta Descriptions
- Wrong canonical tags (other domains, old URLs)

2.2 Google Search Console Analysis

  1. Open GSC -> Coverage

  2. Note the numbers:

    Valid: _____ pages
    With warnings: _____ pages
    Excluded: _____ pages
    Errors: _____ pages
    
  3. Click on "Errors" and review the top errors

  4. Click on "Excluded" and review why these are excluded

Example from a real audit:

Errors: 1,245 pages
Reason: Server error (5xx)
Next steps: Check with hosting, verify Shopify status

Phase 3: Performance Audit (1 Hour)

3.1 PageSpeed Insights

  1. Go to https://pagespeed.web.dev/
  2. Enter your product page
  3. Check both "Mobile" and "Desktop"

Expected Values:

Performance Score: > 50 (Target: > 75)
LCP: < 3.0s (Target: < 2.5s)
INP: < 300ms (Target: < 200ms)
CLS: < 0.25 (Target: < 0.1)

Common Recommendations:

  • "Serve images in next-gen formats" -> Convert to WebP
  • "Render-blocking resources" -> Load JavaScript with async/defer
  • "Unused CSS/JS" -> Check installed apps
  • "Large layout shifts" -> Check dynamically loaded elements

3.2 Lighthouse Audit

  1. Open your page in the browser
  2. Press F12 -> Lighthouse
  3. Click "Analyze page load"

Check the categories:

  • Performance
  • Accessibility
  • Best Practices
  • SEO

Common Problems:

LCP Candidate < 2.5s
-> Image optimization, app reduction

Has a viewport meta tag
-> Mobile view not configured (rare for Shopify)

Document does not have a valid hreflang
-> Check multilingual setup

Phase 4: On-Page Audit (1 Hour)

4.1 Check Meta Tags

Use Chrome DevTools -> Elements and search for:

<title>...</title>
<meta name="description" content="..." />
<meta name="robots" content="..." />
<link rel="canonical" href="..." />
<link rel="alternate" hreflang="..." />

Checklist:

  • Title: 50-60 characters, with primary keyword
  • Description: 150-160 characters, with call-to-action
  • Canonical: Points to HTTPS and without parameters
  • Hreflang: All language versions present

4.2 Check Structured Data

<!-- In DevTools search: "application/ld+json" -->
<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  ...
}
</script>

Check with Rich Result Test:

  1. Copy the URL
  2. Go to https://search.google.com/test/rich-results
  3. Check for errors

4.3 Check Heading Structure

Use the browser extension "Headings Map":

H1: Premium Organic Cotton T-Shirts
  H2: Materials
    H3: 100% Organic Cotton
  H2: Sizes
  H2: Customer Reviews
    H3: Write a Review

Check:

  • Exactly one H1 on the page
  • H2s are subtopics of H1
  • H3s are subtopics of H2
  • No heading levels skipped (H1 -> H3)

Phase 5: Report & Priority Matrix

After you've gathered everything, create a priority matrix:

Priority Problem Impact Effort Action
Critical Server errors (5xx) High Medium Check with host
Critical Robots.txt blocks main pages High Low Adjust robots.txt
High Core Web Vitals > 3.0s Medium Medium Reduce apps
High Missing meta descriptions Medium Low Fill in via Shopify Admin
Medium Missing hreflang Low Medium Adjust theme code

Phase 6: Documented Case Studies

Tramontina (Outdoor Furniture Manufacturer):

  • Problem: No internal linking strategy
  • Solution: Collection pages relinked, 45% more internal links
  • Result: +22% session duration, +35% pages per session

Bekateq (B2B Supplier):

  • Problem: 15 apps installed, only 3 active
  • Solution: 8 apps removed, code reduced
  • Result: LCP 4.2s -> 2.1s, Performance Score 28 -> 72

smplx. itself (this website):

  • Problem: Hreflang tags wrong on 100% of pages
  • Why does this happen? Complexity of Shopify's multilingual structure
  • Solution: Manual hreflang implementation in the theme
  • Learning: This is normal — Technical SEO is an iterative process

Audit Checklist for Download

Crawlability Checklist

  • Robots.txt exists and is correct
  • Sitemap.xml is valid and linked
  • No main pages are blocked in robots.txt
  • Internal linking is logically structured
  • Breadcrumbs are present
  • Noindex tags only on correct pages

Indexation Checklist

  • GSC: < 5% error rate
  • Duplicate content is minimal
  • Canonical tags are correct
  • Hreflang setup is correct (if multilingual)
  • URL parameters are configured in GSC

Performance Checklist

  • LCP: < 2.5s (Mobile)
  • INP: < 200ms
  • CLS: < 0.1
  • Apps are necessary and optimized
  • Images are in WebP format
  • JavaScript has async/defer
  • Fonts are preloaded

On-Page Checklist

  • Meta Title: 50-60 characters, with keyword
  • Meta Description: 150-160 characters, unique
  • H1: Exactly one, meaningful
  • H2-H3: Logically structured
  • Product Schema: Present and correct
  • Organization Schema: On homepage
  • Review Schema: If reviews are present
  • FAQ Schema: If FAQs are present

Frequently Asked Questions

Q: How often should I perform a Technical SEO audit? A: After every major update (theme change, app installation) and at least every 6 months as a routine check.

Q: Should I hire an SEO agency or do it myself? A: That depends on your technical level. For the basic check, you can start yourself. For deeper analyses (crawl structure, performance optimization), we recommend specialists.

Q: What is the #1 cause of poor Shopify SEO? A: Too many apps. An average app collection slows a store by 40-60%. That's worse than any other problem.

Q: Can I compare Shopify with other platforms? A: No. Shopify has its own rules and limitations. Comparisons to WordPress or self-hosted sites are irrelevant.

Q: How long until SEO improvements become visible? A: 4-12 weeks for ranking improvements. Performance improvements are immediately measurable in Google Analytics.


Next Steps

  1. Start with the checklist: Begin with the Crawlability Audit
  2. Use free tools: GSC, PageSpeed Insights, Lighthouse
  3. Prioritize by impact: Not everything is equally important
  4. Track improvements: Google Search Console Coverage Report is your friend

If you get stuck on certain steps or need a more comprehensive analysis, check out our SEO services or contact us for a free audit assessment.


About the Author

Claudio Gerlich is Technical Architect at smplx. and specializes in Technical SEO for Shopify. With more than 5 years of experience in Shopify audits, performance optimization, and implementing complex SEO strategies, he has helped dozens of Shopify stores improve their visibility and performance.

Notable projects:

  • Tramontina: Complete Technical SEO Audit + Internal Linking Restructuring
  • Bekateq: App reduction and Performance Optimization (LCP 4.2s -> 2.1s)
  • smplx. itself: Continuous SEO improvements and learning from mistakes

smplx. is a specialized Shopify technical agency based in Muensterland, NRW, Germany. We focus on Technical SEO, Performance Optimization, and Shopify architecture.

Contact: smplx.media