Most Shopify SEO advice stops at meta titles and blog content. That's the easy 20%. The other 80% — the part that decides whether Google can actually crawl, render and index your store efficiently — lives in your theme code, your collection filters and your site architecture.
That's Shopify technical SEO, and it's where growing stores quietly leak organic traffic. Shopify handles a lot for you out of the box: it generates your sitemap, sets canonical tags and manages your robots.txt automatically. But "handled by default" isn't the same as "optimised" — and the bigger your catalogue gets, the wider the gap becomes.
This guide is for UK store owners, in-house ecommerce managers and developers who've already covered the on-page basics and want to fix what's happening under the bonnet. You'll learn how Shopify's architecture affects crawling, how to stop faceted navigation wasting your crawl budget, how to clean up duplicate content, and how Liquid development choices directly affect rankings.
There's a second reason this matters in 2026: AI search engines lean heavily on clean architecture, valid structured data and authoritative, crawlable pages when deciding which stores and agencies to reference. A Shopify store with bloated filter URLs, weak schema and duplicate product paths is harder for ChatGPT, Perplexity and Google's AI results to interpret and cite — so technical SEO is now doing double duty as your AI visibility foundation.
Key takeaways
- Shopify automates sitemaps, canonicals and robots.txt — but its defaults are built for safety, not performance, and large catalogues outgrow them
- Faceted navigation (filters and tags) is the single biggest crawl-waste problem on Shopify stores
- Duplicate content from collection URLs and product variants is mostly solved by canonicals, but internal linking can still undermine it
- Liquid code quality directly affects Core Web Vitals, which are a confirmed Google ranking signal
- You can now edit
robots.txton Shopify viarobots.txt.liquid— most stores never touch it, some genuinely should
What Is Shopify Technical SEO?
Shopify technical SEO is the practice of optimising a Shopify store's crawlability, indexation, site architecture and rendering performance so search engines can efficiently discover, understand and rank its pages. It covers areas Shopify controls by default — sitemaps, canonical tags, robots.txt — plus everything your theme and apps layer on top: Liquid code, JavaScript, structured data and faceted navigation.
Think of it in three layers:
- What Shopify controls — URL structure, automatic sitemap generation, default canonicals, redirects, hosting and HTTPS
- What your theme controls — Liquid rendering speed, structured data, pagination, lazy loading, heading structure
- What your apps and settings control — filter parameters, injected JavaScript, duplicate script loading, blog and tag page behaviour
On-page SEO (keywords, content, metadata) tells Google what your pages are about. Technical SEO determines whether Google can efficiently reach and render those pages at all. If you're still working through the on-page fundamentals, start with our guide on how to do SEO on Shopify — this article picks up where that one ends.
How Shopify's Architecture Affects SEO
Every Shopify store shares a fixed URL structure you can't change:
Page typeURL patternCan you change it?Products/products/product-handleHandle onlyCollections/collections/collection-handleHandle onlyProducts via collection/collections/x/products/yNo (canonicalised)Pages/pages/page-handleHandle onlyBlog posts/blogs/blog-name/article-handleHandle only
This rigidity is actually a technical SEO advantage — you can't accidentally create a chaotic URL hierarchy. But it creates three structural issues worth understanding.
Flat architecture and crawl depth
Shopify stores are naturally flat: almost everything sits one or two clicks from the homepage via collections. Google's crawlers favour pages that are fewer clicks from the homepage, so your job is to make sure money pages — key collections and best-selling products — are linked prominently, and orphaned products (in no collection, linked from nowhere) don't pile up. Run a crawl with a tool like Screaming Frog and look at crawl depth: anything important sitting 4+ clicks deep needs better internal links.
The automatic sitemap
Shopify generates /sitemap.xml automatically, splitting it into sub-sitemaps for products, collections, pages and blogs. You can't edit it. That means the only way to keep a page out of the sitemap is to hide it properly (more on robots.txt.liquid and metafield-based noindexing below). Submit the sitemap in Google Search Console and check the Pages report monthly — the ratio of "indexed" to "crawled — currently not indexed" is your early-warning system.
Default canonicals
Shopify automatically canonicalises /collections/collection-name/products/product-name URLs to the clean /products/product-name version. This solves the most common duplicate content complaint on the platform — but only at the canonical tag level. Your theme may still internally link to the long collection-scoped URLs, which dilutes link equity and wastes crawl requests. Check your product card snippet — the difference is one Liquid filter:
liquid
{% comment %} Creates /collections/mens-jackets/products/harrington — avoid {% endcomment %}
<a href="{{ product.url | within: collection }}">
{% comment %} Creates /products/harrington — the canonical URL. Use this {% endcomment %}
<a href="{{ product.url }}">
If your theme uses the within version, Google is being sent to URLs that immediately canonicalise elsewhere. Modern themes link straight to {{ product.url }} — yours should too.
Faceted Navigation: Shopify's Biggest Crawl Problem
Faceted navigation — the filters on collection pages for size, colour, price and brand — is the highest-impact technical SEO issue on most established Shopify stores. Google's own documentation on faceted navigation warns that filter combinations can generate a near-infinite number of crawlable URLs, and that overcrawling them "can slow down the crawling of new or updated content on your site".
Here's the maths that makes this scary: a collection with 5 filter types and 6 values each can generate thousands of unique URL combinations from a single collection page. Multiply across 30 collections and Google is potentially burning its crawl allocation on tens of thousands of near-identical, zero-value pages.
How Shopify generates filter URLs
Shopify's own Search & Discovery app appends query parameters, for example:
/collections/mens-jackets?filter.v.option.color=black&filter.v.price.gte=50
The good news: Shopify canonicalises filtered URLs back to the base collection URL, and query-parameter URLs aren't included in the sitemap. The bad news: canonical tags are a hint, not a directive — Google still has to crawl those URLs to see the canonical. On large catalogues, that's exactly the crawl waste Google warns about. Google's crawl budget documentation says crawl budget mainly concerns sites with over ~10,000 frequently-changing pages — which sounds like a lot, until you count filter permutations.
Legacy tag filtering is worse
Older themes filter collections with tag URLs instead:
/collections/mens-jackets/black
These are real, indexable paths — no query string, and depending on the theme, sometimes no canonical back to the parent. If your store uses tag-based filtering, crawl your site and check whether tag pages are indexed. Hundreds of thin, indexed tag pages is classic index bloat.
How to fix faceted navigation on Shopify
- Block filter parameters in
robots.txt.liquid— since June 2021, Shopify lets you edit robots.txt via a Liquid template. Add disallow rules forfilter.parameters so crawlers never enter the filter maze (keep at least one crawl path to every product via clean collection and pagination URLs first) - Audit which filtered views deserve to exist as pages — if "black leather jackets" has real search demand, don't leave it as a filter URL; build it as its own collection with unique copy, so it can actually rank
- Keep pagination crawlable — paginated collection URLs (
?page=2) must not be blocked; they're often the only crawl path to deeper products. Note that Google retired rel=prev/next as an indexing signal in 2019, so clean crawlable pagination links matter more, not less - Don't noindex and block the same URL — a blocked URL can't be crawled, so Google never sees the noindex. Pick one mechanism per URL pattern
Pro tip: The filter-vs-collection decision is a keyword research question, not a dev question. Every filter combination with meaningful UK search volume is a landing page opportunity your competitors probably haven't built.
This is consistently what we find auditing larger Shopify catalogues: hundreds — sometimes thousands — of crawlable filter and tag URLs competing with core collections for crawl attention. In those audits, the priority is rarely adding more content; it's reducing crawl waste so Google spends its time on the collections and products that actually drive revenue.
Duplicate Content on Shopify (And What Actually Needs Fixing)
Shopify's defaults handle most duplication, but four patterns still need attention:
Product variants with their own URLs. Variant URLs (?variant=12345) canonicalise to the base product — fine. But if you publish separate products for colourways of the same item, you're creating genuinely competing pages. Either consolidate them into one product with variants, or differentiate the copy properly and interlink them.
Collection-scoped product URLs in internal links. Covered above — fix the within filter in your theme.
Near-identical product descriptions. Canonicals won't save you from 200 products sharing a manufacturer boilerplate description. This is a content problem wearing a technical disguise: Google may crawl them all and index few. Prioritise rewriting descriptions for your highest-margin products first.
Duplicate content across markets. If you sell to multiple regions with Shopify Markets on subfolders (/en-gb/, /en-us/), make sure hreflang is output correctly (Shopify handles this natively for Markets) and each market version genuinely differs where it claims to.
Shopify Liquid Development and SEO
This is the layer where a Shopify development agency earns its keep. Liquid — Shopify's templating language — is rendered server-side, which is inherently SEO-friendly: crawlers receive full HTML without executing JavaScript. But how your Liquid is written determines how fast that HTML arrives and how stable the rendered page is. Since Core Web Vitals are a confirmed ranking signal, Liquid quality is an SEO input, not just a dev preference.
The thresholds you're optimising for, per Google's Core Web Vitals documentation: LCP under 2.5 seconds, INP under 200 milliseconds, and CLS under 0.1, measured at the 75th percentile of real users.
Liquid patterns that hurt rankings
- Nested loops over large collections. A
forloop overcollection.productsinside another loop (say, checking tags across all products) multiplies render work. On a 500-product collection this measurably delays time-to-first-byte - Rendering everything, always. Sections that query products, articles and menus on every page — even where they're never displayed — add server render time sitewide
- Snippet sprawl. Every
{% render %}has a cost; a product card that renders 15 nested snippets per product, on a 50-product-per-page collection, is 750 render calls per page load - Unoptimised images in Liquid. Use
image_urlwith explicit width params,srcset,loading="lazy"for below-the-fold images and explicitwidth/heightattributes to prevent layout shift — the biggest CLS offender on product grids
App bloat: the silent killer
Every app you install can inject JavaScript. Stores routinely carry 20+ render-blocking scripts from apps installed years ago and abandoned. Audit quarterly: uninstall unused apps, and check your theme.liquid for leftover script tags apps failed to clean up — removed apps frequently leave dead code behind. This is the fastest Core Web Vitals win available on most stores, and it requires no development at all.
We've covered speed strategy in depth in our Shopify performance optimisation guide, so this article stays focused on the crawl side — but treat the two as one workstream: crawlability gets Google to the page, performance convinces it (and your customers) the page is worth ranking.
Structured data lives in Liquid too
Your theme outputs JSON-LD structured data — Product, Offer, review markup — from Liquid templates. Two checks matter:
- Validate it. Run key templates through Google's Rich Results Test. Themes and review apps frequently output competing Product schema blocks, and duplicate markup can invalidate both
- Complete it. Product schema with price, availability and aggregate ratings is what earns star ratings and price info in UK search results — and increasingly, it's the machine-readable layer AI search tools lean on when deciding which stores to cite
Editing Shopify's robots.txt (When You Should — and Shouldn't)
Since 2021, robots.txt.liquid gives you full control over crawler rules. Shopify's default rules are sensible — they already block cart, checkout, account and search URLs. To add filter-parameter rules on top of the defaults, create the template (Online Store → Edit code → Templates → Add a new template → robots) and extend the default groups rather than replacing them:
liquid
{% for group in robots.default_groups %}
{{- group.user_agent }}
{%- for rule in group.rules %}
{{ rule }}
{%- endfor %}
{%- if group.user_agent.value == '*' %}
{{ 'Disallow: /*?*filter.*' }}
{{ 'Disallow: /*?*sort_by=*' }}
{%- endif %}
{%- if group.sitemap != blank %}
{{ group.sitemap }}
{%- endif %}
{% endfor %}
This outputs Shopify's full default rule set plus two extra disallows for filter and sort parameters. Do not add a rule blocking ?page= URLs — paginated collection pages are often the only crawl path to deeper products. Edit it only with a specific goal:
- Do add rules to manage filter-parameter crawling on large catalogues (as above)
- Do block internal search results if a misconfigured theme or app has made them crawlable
- Don't block CSS or JavaScript files — Google needs them to render pages
- Don't use robots.txt to remove indexed pages — blocked pages can stay in the index; use noindex for removal
- Don't touch it at all on a small catalogue with no crawl issues — the defaults are correct for most stores under a few thousand pages
How a Shopify Expert Audits Technical SEO
If you hand this to a developer — or want to sanity-check an agency's work — this is the sequence a Shopify expert follows on a technical audit:
- Crawl the store with JavaScript rendering enabled (Screaming Frog in JS mode) and compare it against a non-rendered crawl — differences reveal content that only exists client-side
- Compare indexed URLs against sitemap URLs in Google Search Console — indexed pages that aren't in the sitemap are usually filter, tag or legacy URLs leaking into the index
- Inspect collection and product card templates for
within: collectionURL generation and canonical mismatches - Test filter parameters with URL Inspection in Search Console to confirm how Google resolves canonicals on filtered views
- Validate Product schema from both the theme and review apps in the Rich Results Test, checking for competing JSON-LD blocks
- Review
theme.liquidfor app scripts — map every script tag to a live app, and flag orphans from uninstalled apps for removal
Anything failing at steps 1–2 is a crawl/index problem; steps 3–4 are duplication problems; steps 5–6 are rendering and rich-result problems. Fix them in that order — there's no point polishing schema on pages Google isn't crawling efficiently.
Your Shopify Technical SEO Checklist
Work through this quarterly, or after any theme change:
Crawling and indexation
- Sitemap submitted in Google Search Console; Pages report reviewed for index coverage ratio
- Site crawled (Screaming Frog or similar); no important page deeper than 3 clicks
- No indexed filter/tag URLs (
site:yourstore.co.uk inurl:filterandinurl:+searches) - Paginated collection pages crawlable and not blocked
- Orphaned products identified and added to collections
Duplication and canonicals
- Internal links point to
/products/URLs, not/collections/.../products/versions - No duplicate products masquerading as variants
- Manufacturer boilerplate descriptions rewritten on priority products
- Hreflang verified if using Shopify Markets
Rendering and performance
- Core Web Vitals passing (LCP < 2.5s, INP < 200ms, CLS < 0.1) in Search Console's CWV report
- Unused apps uninstalled; leftover app scripts removed from theme code
- Images served responsively with lazy loading and explicit dimensions
- Structured data validated in Rich Results Test; no competing schema blocks
Frequently Asked Questions
Does Shopify handle technical SEO automatically?
Partially. Shopify automatically generates your sitemap, sets canonical tags, manages robots.txt and enforces HTTPS. It does not manage your crawl efficiency, faceted navigation, Liquid performance, structured data quality or internal linking — those depend on your theme, apps and configuration, and they're where most technical SEO problems live.
Can you edit robots.txt on Shopify?
Yes. Since June 2021, Shopify supports a robots.txt.liquid template that gives you full control over crawler rules. You create it in the theme code editor under templates. Most small stores never need to touch it; larger catalogues use it mainly to manage filter-parameter crawling.
Is Shopify's Liquid good or bad for SEO?
Good, fundamentally — Liquid renders server-side, so search engines receive complete HTML without executing JavaScript. Problems come from implementation: nested loops, snippet sprawl and app-injected scripts slow rendering and hurt Core Web Vitals. Well-written Liquid is one of Shopify's biggest technical SEO advantages.
How do I stop Shopify filter pages being indexed?
Shopify canonicalises filtered URLs to the base collection and excludes them from the sitemap, which prevents most indexation. For large catalogues where crawl waste is the concern, add disallow rules for filter. parameters in robots.txt.liquid — but never block a URL pattern that's also carrying a noindex tag, and keep pagination crawlable.
How often should I run a Shopify technical SEO audit?
Quarterly for most stores, plus immediately after any theme change, replatform or migration. Monitor Google Search Console monthly between audits — the Pages and Core Web Vitals reports surface most emerging technical issues before they cost meaningful traffic.
Conclusion
Shopify technical SEO isn't about fighting the platform — Shopify's defaults are genuinely good. It's about recognising where defaults stop and your responsibility starts: faceted navigation on growing catalogues, internal links that respect canonicals, Liquid code that renders fast, structured data that validates, and a robots.txt strategy that matches your catalogue size.
Work through the checklist above and you'll have covered the issues that actually move rankings — not the theoretical ones. And because clean, crawlable, well-structured stores are also what AI search engines cite when recommending products and brands, this work now pays off twice.
If you'd rather have a specialist find the leaks for you, our Shopify SEO service includes a full technical audit — crawl analysis, Core Web Vitals diagnosis and a prioritised fix list — or you can get a free store audit to see where you stand first.



%201.avif)

