Ayo is the founder of Why Matters, a Shopify agency based in Brighton. With over 20 years of experience in ecommerce, digital marketing, and ROI-driven growth, he has helped hundreds of Shopify brands build, launch, and scale their online stores. Why Matters is a certified Shopify, Klaviyo, and Recharge partner.
A Shopify technical SEO audit runs in eleven checks: crawl the store, compare what exists against what is indexed, verify canonicals across duplicate product routes, inspect robots.txt and the sitemap, audit redirects and 404s, test page speed with both lab and field data, validate structured data, test mobile on real devices, review internal navigation and orphan products, check international setup if you sell across markets, and test what a machine can actually read. Then turn the findings into a prioritised plan with an owner for each item. Fixing what you find is a separate job, covered in our Shopify SEO guide.
Most Shopify SEO advice tells you what to change. This article is about how to find out what is wrong, which is a different discipline and the one that should come first. It is written for a store you already run, using tools that are mostly free, and it assumes nothing about the theme except that somebody has probably changed something in it since launch.
An audit is diagnosis. It establishes what exists, what search engines can reach, what they have chosen to index, and where the store is working against itself. It is not a content strategy, a keyword plan or a list of optimisation tactics, and it should not turn into one halfway through. Keeping the jobs separate is what makes the output usable: the audit produces a prioritised list, and our SEO guide covers what to do about the items on it.
You need Google Search Console with the property verified, ideally with a year of history, and analytics to see what organic traffic actually does once it arrives. Add a crawler, and the free tiers of the common ones are enough for most catalogues. Then PageSpeed Insights for lab and field data, the Rich Results Test for structured data, and Chrome DevTools or Lighthouse for rendering checks. Finally, Shopify admin and theme access, because several checks require looking at the code rather than the rendered page.
Crawl the store as a search engine would, then compare the total against what you actually sell. A 400 product store returning 40,000 URLs is not a catalogue problem, it is a crawl surface problem. The usual culprits on Shopify are filter and tag combinations, search result URLs, vendor and product type pages, paginated collections, collection context product URLs and anything carrying tracking parameters.
Export the URL list with status codes, canonical tags, titles and meta descriptions, indexability, crawl depth, internal link counts and redirect targets. What good looks like: a crawl roughly proportional to the catalogue, most URLs returning 200, canonical tags present and sensible, no unexplained clusters of near identical pages, and no important products buried five levels deep.
Search Console answers the question the crawl cannot: what has Google actually chosen to keep. Compare indexed pages against the products, collections, pages and posts you expect, then read the exclusion reasons rather than the totals. Crawled but not indexed, discovered but not crawled, duplicate without user selected canonical and alternate page with proper canonical tag all mean different things, and only one of them is usually a problem.
On Shopify the noise is predictable: filter and tag URLs, internal search results, vendor and type pages, collection context product URLs and paginated collection pages. What good looks like is that the pages you want found are indexed, the pages you do not care about are excluded for a reason you understand, and nothing important is sitting in discovered but not crawled.
This is the Shopify specific check we would never skip. A product can be reached at the plain product URL and, in collection context, at a longer one, and Shopify handles this with canonical tags rather than by removing the duplicate route.
Do not assume it works. Open several products, view the source, and check the canonical on the plain URL, the collection context version, a variant URL and a URL carrying tracking parameters, then confirm in Search Console that Google selects the same one. Custom themes, SEO apps and old developer changes all override this behaviour more often than merchants expect.
Internal linking matters alongside it. A canonical states a preference, but if every collection card links to the collection context version while the canonical points elsewhere, you are repeatedly asking crawlers to resolve a contradiction you created. What good looks like: the plain product URL is indexable, duplicate routes canonicalise to it, internal links mostly use it, Google agrees, and there are no competing canonical tags. Do not rebuild Shopify’s canonical system because duplicate routes exist. Fix it when the output is wrong.
Shopify generates both the robots file and the sitemap automatically, which is helpful and makes merchants far less likely to inspect them. The default robots file blocks areas including admin, cart, checkout, internal search, filtered collection URLs and policy pages, and Shopify describes it as suitable for most stores.
You can customise it with a robots.txt.liquid file in the theme, and Shopify warns that doing this incorrectly can cost search traffic. We have seen robots files used to tidy up a crawler report, which blocked URLs Google needed. Remember too that robots.txt controls crawling rather than indexation: Google can still index a URL it knows about without crawling it. What good looks like is the standard rules substantially intact, valuable pages crawlable, no blocked CSS or JavaScript, no broad accidental rules, and a documented reason for any customisation.
On sitemaps, Shopify generates an index at /sitemap.xml linking to separate sitemaps for products, collections, blog content and pages, updated as content changes. Submit the root sitemap in Search Console, then check that it loads, is accepted, contains canonical indexable pages, reflects current products and does not expose old domains or market configurations. Treat it as an inventory of what you want found rather than proof of what has been indexed.
Shopify makes redirects easy to create in admin, which is not the same as making them correct. Look for chains where one URL redirects to another and then a third, migration leftovers pointing at pages that no longer exist, and loops. If the store has been through a replatform, this is where the debris lives, and our migration checklist covers what should have happened at the time.
Then find the useful 404s: URLs with inbound links, URLs that still receive traffic, and old product URLs that ranked. Those deserve redirects to the closest equivalent rather than the homepage. What good looks like is redirects resolving in one hop, no loops, valuable old URLs preserved, and 404s that are genuinely dead ends rather than abandoned equity.
Test the templates rather than the homepage alone, because product and collection pages carry the traffic that converts. Use both lab and field data, since a good lab score with poor field data usually means real users on real devices are having a worse time than your test environment suggests.
Theme age is the pattern we see most. Of the 265 Shopify stores we have audited, 196 were still running legacy themes predating Online Store 2.0, and across stores we moved, mobile PageSpeed improved by an average of 23 points (our speed research). That does not mean a migration is always the answer, but it does mean an audit should establish whether the theme is the constraint before recommending a dozen small fixes, which our theme guide covers.
Validate product, offer, price, availability, breadcrumb and review markup with the Rich Results Test, on several page types rather than one. Two Shopify specific failures account for most problems.
What good looks like: one product entity per product page, values matching the visible page, no validation errors on the templates that matter, and review markup that reflects reviews you actually have.
Test on real devices rather than a resized desktop browser. Check tap targets, readability without zooming, sticky elements covering content, variant selection, filters, the cart drawer and the checkout entry point. Then compare mobile against desktop conversion in your own analytics, because that gap is usually where the commercial cost of a mobile problem shows up, as our mobile first guide argues and our conversion rate guide explains how to measure.
Find orphan products first, meaning products with no internal links pointing at them, which happens constantly when collections are curated manually. Then check whether related product systems create real links or inject them with JavaScript that crawlers may not see, and review crawl depth so that important products are not four or five clicks from the homepage. What good looks like: every sellable product reachable through navigation, important products shallow, collections that reflect how customers actually browse, and no orphaned bestsellers.
If you sell across markets, check every market format, since domains, subfolders and subdomains behave differently. Verify hreflang is present, reciprocal and pointing at live URLs, and confirm canonicals do not contradict it by pointing every market at one version. Currency and language switching should not produce additional crawlable duplicates. Our Shopify Markets guide covers how the setup should work before you audit it.
This is the newest check and the one most audits skip. Assistants and AI shopping surfaces read text, so a page can be perfectly indexable while hiding the information that matters inside images, interactive components or scripts. Adobe scored the average retail product page at 66% machine readable in April 2026, the worst of any page type it measured (our AI shopping statistics).
Check that specifications, ingredients, dimensions, compatibility, sizing, delivery and returns exist as selectable text rather than only in graphics, and that important content is present without JavaScript rendering where possible. Structured data helps, but it corroborates a page rather than replacing one, so it cannot rescue a product page that tells a customer almost nothing, which our product page guide covers in detail.
Do not end an audit with a count of issues. Every finding should answer what is wrong, why it matters, how many URLs are affected, the likely impact, the difficulty of the fix and who owns it.
| Issue | Impact and effort | Owner |
|---|---|---|
| Product template outputs wrong canonical | High impact, low effort | Developer |
| Important products not indexed | High impact, medium effort | SEO and developer |
| Legacy theme failing mobile vitals | High impact, high effort | Developer |
| Orphan bestselling products | High impact, low effort | Merchant |
| Redirect chains after migration | Medium impact, low effort | SEO |
| App contradicts theme markup | Medium impact, medium effort | Developer and app owner |
| Specifications not machine readable | Medium impact, medium effort | Content and developer |
Separating merchant fixes from developer fixes is what makes the output actionable. A merchant can usually fix navigation, collection membership, broken content links, titles, descriptions, redirects and obsolete content. A developer is needed for canonical logic, theme structured data, performance architecture, robots.txt.liquid, conflicting app code, complex hreflang and rendering problems. A prioritised one page plan is worth more than a 90 page report nobody opens twice.
For a stable store, once a year is a sensible baseline. Run one immediately after a replatform, a theme change or a migration, because those are the three events that break canonical, redirect and structured data behaviour most often. Also audit after a sudden organic traffic drop, before and after launching a new market, and when a significant app is installed or removed, since apps are a common source of injected markup and additional URLs.
The most common thing we find is not an exotic technical fault. It is a store where somebody changed something sensible three years ago, nobody documented it, and it has quietly been costing traffic since. Canonical logic edited to solve a problem that no longer exists. A robots file tidied to clean up a report. An SEO app installed, forgotten, and still injecting markup that contradicts the theme.
That is why we would rather run a short audit annually than a heroic one every five years. It also explains why the output matters as much as the analysis: findings without owners, counts and priorities do not get fixed, they get filed. If an audit does not change what somebody does next week, it has not finished.
Why Matters is a Shopify Select partner with Verified Skills across development and marketing. Our pricing is published, retainer clients are billed one month in arrears and never tied into long contracts, and every development project carries a 3 month guarantee. See our Shopify packages or email us to talk through your store.
How do I check my Shopify SEO?
Start with a crawl and Search Console. Compare what exists against what is indexed, then work through canonicals, robots and sitemaps, redirects, speed, structured data, mobile, internal links and, if relevant, international setup.
Does Shopify have duplicate content?
Shopify can serve a product at more than one URL, including the plain product URL and a collection context version, and it handles this with canonical tags. The audit job is verifying that the canonical output is actually correct on your theme rather than assuming it.
What should a Shopify product canonical look like?
For a normal product, the collection context and variant versions should declare the plain product URL as canonical. Check the page source on several products and confirm in Search Console that Google selects the same one.
Can you edit robots.txt on Shopify?
Yes, by creating a robots.txt.liquid file in the theme. Shopify warns that incorrect editing can cost search traffic, and that warning is justified, so change it only with a documented reason.
Do I need to create a Shopify sitemap manually?
No. Shopify generates a sitemap index at /sitemap.xml with separate sitemaps for products, collections, blog content and pages, and updates them as content changes. Submit the root sitemap in Search Console.
Should I noindex Shopify filter pages?
Usually the answer is to stop them being crawled and linked rather than reaching for noindex. Decide deliberately, because filter and tag URLs are the most common cause of a crawl that looks far larger than the catalogue.
How often should I audit Shopify SEO?
At least once a year for a stable store, and immediately after a replatform, theme change, migration, sudden traffic drop, new market launch or a significant app change.
Does technical SEO help AI search?
It helps, but it is not the same job. Assistants need information available as readable text, so a page can be technically sound and still give an AI system very little to work with, which is why machine readability is now part of the audit.
A technical audit is not about finding as many problems as possible. It is about finding the few that are costing you something, proving how many URLs they affect, and putting them in front of the person who can fix them. Work through the eleven checks in order, write down what good looks like for each, and finish with a prioritised page rather than a report. Then fix things one at a time, so you can tell what worked.