Technical SEO Audit Process for Shopify Websites

A practical, repeatable framework: what to review, which tools to use, how to prioritize findings, and a sample audit report.

Quick summary A Shopify technical SEO audit covers six areas: crawlability & indexation, site architecture & URLs, on-page/template SEO, page speed & Core Web Vitals, structured data, and platform-specific Shopify constraints (themes, apps, liquid templates, checkout/cart limitations). Findings are prioritized using an Impact × Effort matrix, scored P0–P3, and tied to revenue-driving page templates (collection, product, blog) first. Tools: Google Search Console, Screaming Frog, Shopify’s own Online Store 2.0 settings, PageSpeed Insights/Lighthouse, Ahrefs/Semrush, and Shopify’s robots.txt/sitemap.xml editors.

1. Pre-Audit Setup

Before crawling anything, confirm access and establish a baseline. Skipping this step is the most common cause of incomplete audits.

  • Get admin access to the Shopify backend (Online Store → Themes, Preferences, Navigation) and read access to Google Search Console + Google Analytics (GA4).
  • Identify the theme (OS 2.0 vs. legacy/vintage) — this determines which technical limitations apply.
  • Note installed apps, especially SEO apps, page builders, and currency/language apps — these frequently inject duplicate code, extra scripts, or rogue redirects.
  • Record baseline metrics: indexed page count (GSC Pages report), organic sessions, average position, and Core Web Vitals pass rate.
  • Export the current sitemap.xml and a full URL list (Screaming Frog crawl or GSC) to compare against later.

2. What to Review

2.1 Crawlability & Indexation

  • robots.txt — Shopify auto-generates this and only allows edits via a robots.txt.liquid template; check it isn’t blocking /collections, /products, or important assets.
  • XML sitemap (sitemap.xml) — Shopify generates this automatically and it cannot be manually edited; verify it’s submitted in GSC and free of 404s or redirect chains.
  • Index coverage in GSC — review Excluded categories: “Crawled – currently not indexed,” “Duplicate without user-selected canonical,” and “Page with redirect.”
  • Orphan pages and pages with no internal links (common with old collections or seasonal product pages).
  • Pagination handling on collection pages (?page=2, etc.) and whether it creates thin, duplicate, or non-canonical content.

2.2 Site Architecture & URL Structure

  • URL structure: Shopify forces /products/, /collections/, /pages/, /blogs/ prefixes that cannot be removed without app-level workarounds — confirm this is understood and accounted for, not “fixed” with broken redirects.
  • Duplicate URL paths from a product appearing in multiple collections (e.g., /collections/sale/products/x and /collections/new/products/x) — Shopify canonicalizes these by default, but theme customizations can break this.
  • Navigation depth — can every product be reached within 3 clicks from the homepage?
  • Faceted/filtered navigation (collection filters) — check whether filter URLs are indexable, noindexed, or blocked, and whether they’re generating crawl budget waste.
  • Internal linking from blog content to collection/product pages.

2.3 On-Page & Template-Level SEO

  • Title tags and meta descriptions at the template level (product, collection, blog, page) — Shopify uses Liquid variables, so a single broken template can affect thousands of URLs at once.
  • H1 usage — many themes hardcode the H1 to the product/collection title; check for duplicates or missing H1s on custom pages.
  • Canonical tags — Shopify sets these automatically; verify theme.liquid hasn’t been edited in a way that overrides or duplicates the canonical tag.
  • Image alt text — particularly on product images, which are frequently left blank by default product feeds.
  • Duplicate content from default “vendor” or “tag” auto-generated collection pages.

2.4 Page Speed & Core Web Vitals

  • LCP, INP (replaced FID), and CLS scores for the homepage, a representative collection page, and a representative product page (mobile and desktop).
  • Theme app bloat — count third-party app scripts injected into theme.liquid; each one is a common cause of slow Time to Interactive.
  • Image optimization — Shopify auto-serves responsive images via srcset, but oversized source uploads and unoptimized hero banners still hurt LCP.
  • Render-blocking JavaScript and CSS from the theme or apps.
  • Font loading strategy and use of Shopify’s CDN for static assets.

2.5 Structured Data (Schema Markup)

  • Product schema (Product, Offer, AggregateRating) — required for price/availability rich results.
  • BreadcrumbList schema on collection and product pages.
  • Organization/LocalBusiness schema on the homepage.
  • FAQ/Article schema on blog content where applicable.
  • Validate with Google’s Rich Results Test — Shopify themes often include partial or outdated schema by default.

2.6 Shopify-Specific Constraints

  • URL handle changes — changing a product/collection handle breaks the URL with no automatic 301; this must be done manually under Online Store → Navigation → URL Redirects.
  • Checkout and cart pages are not crawlable/indexable by design — confirm no resources are being wasted trying to “optimize” them.
  • Variant URLs (?variant=12345678) — check these aren’t creating indexed duplicates.
  • Multi-currency/multi-language (Shopify Markets) — verify hreflang implementation and that market-specific subfolders/subdomains are set up correctly.
  • Theme switching history — a prior theme change is a common, overlooked cause of sudden ranking drops from lost redirects or altered markup.

3. Tools Used and What Each One Is For

ToolPrimary use in this auditAudit area
Google Search ConsoleIndex coverage, sitemap errors, query/page performance, manual actions, Core Web Vitals reportIndexation, CWV
Screaming Frog SEO SpiderFull site crawl: titles, headings, status codes, canonicals, redirect chains, duplicate contentArchitecture, on-page
PageSpeed Insights / LighthouseField and lab Core Web Vitals data for key templates, mobile and desktopPage speed
Shopify Admin (Themes, Navigation, Markets)Theme code review (theme.liquid, robots.txt.liquid), redirect manager, Markets/hreflang setupPlatform constraints
Ahrefs or SemrushBacklink profile, keyword rankings, site audit cross-check, organic traffic trendsStrategy, validation
Google Rich Results Test / Schema Markup ValidatorValidate Product, Breadcrumb, and Organization schemaStructured data
Chrome DevTools (Network/Coverage tabs)Identify render-blocking scripts and unused CSS/JS injected by appsPage speed
Google Analytics 4Landing page behavior, bounce/engagement rate by template, organic conversion baselineBusiness impact context

4. How Findings Are Prioritized

Every finding is scored on two axes — SEO/revenue impact and implementation effort — then assigned a priority tier. This keeps the audit from becoming a long, unranked checklist that nobody actions.

4.1 Impact × Effort Matrix

  • High impact: affects indexation, crawl budget, or Core Web Vitals at the template level (i.e., touches hundreds/thousands of pages at once).
  • Medium impact: affects a specific page type or a moderate subset of high-traffic pages.
  • Low impact: affects individual pages or is a minor best-practice gap with limited ranking influence.
  • Effort is scored separately as Low / Medium / High based on whether the fix is a Shopify admin setting, a theme code change, an app reconfiguration, or a structural/migration-level change.

4.2 Priority Tiers

TierDefinitionExample
P0 — CriticalBlocking indexation or actively losing rankings/traffic nowCollection pages accidentally noindexed after a theme update
P1 — HighHigh impact, fixable within days; template-level on-page or speed issuesMissing canonical handling on filtered collection URLs
P2 — MediumModerate impact or higher effort; improves rankings/CTR over weeksThin/duplicate meta descriptions on 200 product pages
P3 — LowBest-practice cleanup with limited standalone impactMissing alt text on a handful of legacy blog images
  • Tie-break rule: when two findings have equal impact, prioritize whichever touches the highest-traffic or highest-converting template (product and collection pages before blog or static pages).
  • Quick wins (high impact, low effort) are always surfaced at the top of the report regardless of tier, since they’re typically Shopify admin-level settings rather than code changes.

5. Sample Audit Report

Below is a condensed example of how findings are documented in the final deliverable. A real report typically runs 15–40 findings depending on site size.

5.1 Executive Summary (example)

Site: example-store.myshopify.com (custom domain) — Theme: Dawn (OS 2.0) Indexed pages: 1,240 of 1,850 known URLs (67%) — below expected for site size. Core Web Vitals: Mobile LCP fails on 78% of product pages (field data, GSC). 3 critical (P0) issues found, all template-level and fixable without a developer. Estimated organic traffic recovery potential: 15–25% within 60–90 days after P0/P1 fixes.

5.2 Findings Table (example excerpt)

#AreaFindingPriorityOwner
1IndexationCollection filter URLs (?color=red) are indexed and competing with parent collection pages for the same keywordsP0Dev / Theme
2Page speedHero banner images on homepage and top 10 collections are unoptimized, adding ~1.8s to LCPP0Marketing
3On-pageProduct title tag template duplicates brand name twice (Liquid template error)P0Dev / Theme
4Structured dataProduct schema missing “availability” field, blocking price/stock rich resultsP1Dev / App
5Architecture42 discontinued products return 404 instead of 301 redirecting to nearest categoryP1SEO / Admin
6On-page180 product images missing descriptive alt textP2Content
7SpeedThree installed apps inject render-blocking scripts site-wide (chat widget, reviews, upsell)P1Dev / Apps audit

5.3 Recommended Next Steps (example)

  1. Noindex or canonicalize faceted/filtered collection URLs (P0) — 1–2 days.
  2. Compress and resize hero/banner images; enable Shopify’s automatic image CDN sizing (P0) — 1 day.
  3. Fix the product title tag Liquid template to remove duplicate brand string (P0) — same day, single template edit.
  4. Add availability and price fields to Product schema, either via theme edit or a schema app (P1) — 2–3 days.
  5. Set up bulk 301 redirects for discontinued products via Shopify’s URL Redirects tool (P1) — 1 day.
  6. Audit installed apps; remove or defer-load non-essential scripts (P1) — 3–5 days, requires dev testing.
  7. Backfill alt text on product images, prioritizing top 100 best-sellers first (P2) — ongoing, content team.

6. Recurring Shopify Pitfalls to Flag

  • Theme updates silently resetting custom canonical or meta tag edits made directly in theme.liquid.
  • SEO apps writing conflicting meta tags alongside manually-set ones, creating duplicate <title> or <meta description> tags in the rendered HTML.
  • Collection sorting/filter apps generating infinite crawlable URL combinations (faceted navigation crawl traps).
  • Out-of-stock products being unpublished entirely instead of kept live with clear messaging, losing accumulated link equity and rankings.
  • Blog URLs nested under /blogs/news/ by default with no way to flatten the structure without a migration.

This framework is template-driven by design: because Shopify renders pages from a small set of Liquid templates, most high-value fixes apply once and resolve issues across hundreds or thousands of URLs simultaneously — which is also why template-level findings are weighted highest in prioritization.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *