Shopify Technical SEO Audit, Step by Step
A Shopify technical SEO audit checks whether search engines and AI crawlers can reach your pages, read them correctly and pick the right version to rank. On Shopify the order matters as much as the checklist. Fix indexation first, then duplication, then speed, then the machine readable layer.
- Ten steps
- Roughly seven hours
- Real admin paths
- Exact thresholds
I have run this sequence on stores with forty products and on catalogues past 30,000 URLs. The pattern repeats. Most owners open a crawler, export 900 issues, feel sick, and close the laptop. That is a data dump, not an audit.
So here is the version I actually use with clients. Ten steps, roughly seven hours for a mid sized store, with the exact Shopify admin paths and the numbers you are measuring against.
- Indexation
- Duplication
- Speed
- The machine readable layer
What a Shopify Technical SEO Audit Actually Covers
Six questions decide whether a page ranks.
- Can Google crawl it?
- Can it index it?
- Does it pick the URL you wanted?
- Does the page load fast enough?
- Can a machine parse the product data?
- Can anything find the page through internal links?
Every step below answers one of those six. You need three tools, and only one of them costs money:
- Google Search Console verified on your primary domain
- A crawler such as Screaming Frog
- Your Shopify admin with the Reports staff permission enabled
Open a spreadsheet with six columns before you start.
| URL | Issue | Severity | Estimated impact | Owner | Status |
|---|---|---|---|---|---|
Every finding goes in there, or it gets forgotten by Thursday.
What Shopify Fixes for You, and What It Quietly Breaks
Shopify gives you HTTPS, an auto generated sitemap at /sitemap.xml, canonical tags on every template, and image delivery through its own CDN. That is a better starting position than most platforms, and it is exactly why merchants assume the technical side is handled.
It is not. The same architecture creates three problems on its own. Every product sits at two crawlable URLs. Filters generate near-identical pages at scale. And every app you install can inject JavaScript onto pages that never use it.
- HTTPS
- An auto generated sitemap at
/sitemap.xml - Canonical tags on every template
- Image delivery through its own CDN
- Every product sits at two crawlable URLs
- Filters generate near-identical pages at scale
- Every app you install can inject JavaScript onto pages that never use it
A generic audit catches none of that cleanly, because most tools are not calibrated for Liquid templates or Shopify’s fixed URL prefixes. That is the whole case for running a Shopify technical SEO audit rather than a general one.
Step 1: Set a Baseline Before You Touch Anything
Record where you are now, or you will never prove the work paid off. Pull organic sessions and organic revenue for the last 90 days from GA4, then export the Search Console performance report for the same window.
Write down five numbers and date the row: organic sessions, organic revenue, total indexed pages, average position for your top ten commercial keywords, and your current Core Web Vitals status. That is your before.
One more job at this stage. List your top twenty pages by revenue, products and collections together. You will use that list at every later step to separate what matters from what is merely broken.
Step 2: Ask Search Console What It Has Indexed
Open the Page indexing report. Ignore the green number for a minute and read the reasons under “Not indexed”, because that is where Shopify stores leak.
Four reasons come up again and again:
- Alternate page with proper canonical tag.
Usually fine. This is Shopify folding collection path duplicates back into the main product URL.
- Duplicate without user selected canonical.
Not fine. Google found two versions and picked one for you.
- Discovered, currently not indexed.
Google knows the URL exists and has not bothered. Common on filter URLs and empty collections.
- Crawled, currently not indexed.
Google looked and decided it was not worth keeping. Usually a quality signal rather than a technical one.
Now spot check ten of your top twenty pages with the URL Inspection tool. You are looking for one thing. Does Google’s selected canonical match the URL you want ranking? If it does not, you have found your first real problem.
Step 3: Read Your robots.txt and Sitemap
Type yourstore.com/robots.txt into a browser. Shopify writes this file for you, and the default already blocks /cart, /checkout, /account, internal search results and a set of filter and sort parameters. For most stores that default is correct and you should leave it alone.
/cart/checkout/account- Internal search results
- A set of filter and sort parameters
You can change it if you genuinely need to. Shopify lets any theme add a robots.txt.liquid template under Online Store › Themes › Edit code, on every plan, not only on Plus. Several 2026 guides still repeat the Plus only claim. It has been wrong since 2021.
When you do edit it, loop through the robots.default_groups object and add your rule rather than replacing the file with plain text. Shopify keeps improving those default rules, and that method lets you keep the updates.
Then the sitemap. Shopify publishes a sitemap index at /sitemap.xml pointing to child files for products, collections, pages and blog posts. Open each child file and check two things: the URL count against what you expect, and whether any listed URL returns anything other than a 200.
/sitemap.xmlSitemap index- Products
- Collections
- Pages
- Blog posts
Step 4: Crawl the Store and Chase the Collection Path Duplicates
Configure the crawler before you run it. Set the user agent to Googlebot Smartphone, enable JavaScript rendering if your theme depends on it, turn on near duplicate detection, and connect the Search Console API so traffic data sits beside every row.
- User agentGooglebot Smartphone
- JavaScript renderingIf your theme depends on it
- Near duplicate detection
- Search Console API
Start the crawl and go and do something else for an hour.
- 1Canonicals
- 2Duplicate title tags and H1s
- 3Thin pages
When it finishes, canonicals come first. Filter for missing and non indexable canonical tags. On a healthy store, every /collections/x/products/y URL carries a canonical pointing back to /products/y. Theme edits and page builder apps break this regularly, and nothing in the admin warns you.
/collections/x/products/y
canonical
/products/y
Next, duplicate title tags and H1s. Shopify themes often print the collection name as the H1 on a collection page and drop the product name into an H2. Check one page of each template type rather than reading four thousand rows.
Then thin pages. Sort by word count and look at collection pages with no description at all. Those are the pages that turn up later as “Discovered, currently not indexed”.
Step 5: Deal With Filters, Sorting and Pagination
This is where a lot of Shopify technical SEO audit advice goes wrong. Nearly every guide tells you to panic about crawl budget. Google’s own documentation says that guidance is aimed at sites over a million pages, or sites over 10,000 pages that change daily.
If your store has 400 products, filter URLs are not eating your rankings. Fix the duplication because it splits ranking signals and muddies the index, not because Googlebot is running out of time.
What to check on filtered and paginated URLs:
- Filtered and sorted URLscanonicalise to the base collection page
- Page two and beyondcanonicalise to themselves, never back to page one
- No parameter URLappears anywhere in the sitemap
Where a filter has real search demand, treat it differently. “Rose gold engagement rings” gets searched every day. Build that as a proper collection with its own title, description and internal links instead of leaving it as a query string.
- Its own title
- Description
- Internal links
Step 6: Clean Up Redirects, 404s and Broken Links
Two Shopify specifics catch people out here.
First, a Shopify redirect only fires when the source URL returns a 404. If the old page still loads, your redirect sits in the admin doing nothing at all. Merchants set these up, see no change, and assume the platform is broken.
Second, there is a ceiling. Standard plans allow 100,000 URL redirects, and Plus goes far higher. Most stores never get close, though a store that has survived two migrations and a catalogue cleanup can.
In the crawler, export every 3xx response and look for chains. A redirecting to B redirecting to C wastes a hop and slows the page. Point A straight at C and delete the middle rule. You manage all of this under Content › Menus › View URL redirects.
For 404s, cross reference the Search Console “Not found” report with your crawler’s 4xx export. Redirect the URLs that had traffic or backlinks. Let the rest 404 honestly, because sending every dead product to the homepage just builds a soft 404 farm.
- URLs that had traffic or backlinksRedirect
- The restLet them 404 honestly
- Every dead productHomepage builds a soft 404 farm
Step 7: Measure Core Web Vitals With Real User Data
Get the thresholds right first. LCP at 2.5 seconds or less, INP at 200 milliseconds or less, CLS at 0.1 or less, each measured at the 75th percentile of real visits.
Two corrections are worth making here. First Input Delay is gone. Google replaced it with INP in March 2024, so any checklist still listing FID was written before that and never updated. You will also see posts claiming Google cut the LCP threshold to 2.0 seconds in 2026. Google’s published documentation still says 2.5.
For measurement, Shopify gives you something better than a single PageSpeed test. The Web Performance dashboard in your admin reports real user data from the last 28 days at the 75th percentile, split by device, with annotations for theme updates and app installs. You will find it under Online Store › Themes.
- Real user data
- Last 28 days
- 75th percentile
- Split by device
- Annotations for theme updates and app installs
That annotation feature is the useful part. When LCP jumps on a Tuesday, you can see which app was installed that morning.
For context, 48% of mobile origins passed all three Core Web Vitals in the 2025 Web Almanac analysis of Chrome UX Report field data. Stores usually sit below that average, and the metric they fail is almost always INP on mobile.
Step 8: Audit the App and Script Load
Open your storefront in Chrome, open DevTools, go to the Network tab, filter by JS and reload. Sort by size. Then open the Coverage tab and reload again, which shows how much of each file never executes.
- 1Network tab
- 2Filter by JS and reload
- 3Sort by size
- 4Coverage tab, reload again
Match the external domains against your installed apps list. For every app, ask two questions. Is anyone actually using it? And does it load on pages where its feature does not even appear?
A reviews widget firing on your About page is free damage. A live chat script blocking the main thread on mobile is your INP score.
This is the step that usually needs a developer, and it is usually worth the money. Uninstalling an app does not always remove its code, because theme edits the app made stay in your Liquid files until someone deletes them by hand.
Step 9: Validate Product Schema and the Agent Layer
Run three product URLs and two collection URLs through Google’s Rich Results Test. On product pages you want name, image, description, sku, brand, and offers with price, priceCurrency and availability, plus aggregateRating where you have genuine reviews.
nameimagedescriptionskubrand
offerspricepriceCurrencyavailabilityaggregateRatingwhere you have genuine reviews
The common failure is a review app that injects ratings client side after Google has already parsed the page. The stars show up for shoppers and never show up in search.
Then check something almost nobody audits yet. Shopify now serves an /agents.md file on every store and mirrors it at /llms.txt and /llms-full.txt. It tells AI shopping agents where your product data lives, which commerce protocol versions you support, and where your sitemap sits.
Open yourstore.com/agents.md and read it. Shopify manages that file by default, and for most stores the managed version is the right answer. You can override it with an agents.md.liquid template, though you then own keeping it accurate.
While you are there, load yourstore.com/.well-known/ucp. That is the discovery endpoint agents use to work out what your store can do. If it returns nothing, that is worth a conversation with your developer.
/agents.mdServed on every store
Mirrored at /llms.txt and /llms-full.txt
- Where your product data lives
- Which commerce protocol versions you support
- Where your sitemap sits
/.well-known/ucpThe discovery endpoint agents use to work out what your store can doStep 10: Check Architecture, Internal Links and Markets
Pull the inlinks column from your crawl. Any collection page on your top twenty revenue list with fewer than three internal links pointing at it is underpowered, and fixing that is often the cheapest ranking gain in the entire audit.
Fewer than three internal links pointing at a collection page on your top twenty revenue list is underpowered.
Then hunt orphans. Cross-reference the sitemap against crawled URLs. Products that exist in the sitemap with zero inbound links get crawled rarely and rank badly, and there are usually more of them than you expect.
Fix it from the top down. Main navigation, then parent collections, then related product blocks, then blog posts. Blog content linking into collection pages is underused on most Shopify stores, and it costs nothing to add.
- 1Main navigation
- 2Parent collections
- 3Related product blocks
- 4Blog posts
If you sell in more than one country through Shopify Markets, add an hreflang pass. Every regional URL needs return tags to all of its equivalents plus a self-reference, with valid language and region codes. Getting multilingual setups wrong is expensive, and the damage is slow to show up.
Turn the Findings Into a Fix List Someone Will Actually Ship
An audit that ends in a ninety-page PDF changes nothing. Sort every row in your spreadsheet into four buckets and work top down.
Blockers
Pages Google cannot crawl or index at all. An accidental noindex, a broken robots rule, canonicals pointing at dead URLs. Nothing else matters until these are cleared.
Splitters
Google can see the page but cannot decide which version to rank. Duplicate collection path URLs, missing canonicals, filter pages sitting in the index.
Performance
LCP, INP and CLS failures on your highest revenue templates. Home, collection, product. Ignore the long tail at this stage.
Enrichment
Schema gaps, title tags, alt text, the agent layer. Real gains, but they compound on a clean foundation rather than replacing one.
Attach a revenue figure to each row wherever you can. “Fix canonicals on 1,200 product URLs” gets approved slowly. “Fix canonicals on 1,200 product URLs carrying $40,000 in monthly organic revenue” gets approved on Monday. Sizing that impact honestly is most of what you pay an SEO consultant for.
“Fix canonicals on 1,200 product URLs”
Gets approved slowly“Fix canonicals on 1,200 product URLs carrying $40,000 in monthly organic revenue”
Gets approved on MondayFour Claims in Shopify Audit Guides That Are Wrong
I read the top ranking guides for this topic before writing. Four errors repeat across them, and each one costs real time.
Robots.txt editing is Plus only.It is not, and has not been since 2021. Any theme on any plan can add a robots.txt.liquid template.
FID is a Core Web Vital.INP replaced it in March 2024. If a checklist still mentions First Input Delay, check the publish date on everything else it tells you.
Crawl budget is your problem.For a store under 10,000 URLs it almost certainly is not, by Google’s own published guidance.
Noindex your filter pages.Canonicalise them instead. A noindex tag on a page that also carries a canonical sends Google two conflicting instructions, and it will follow whichever one it prefers.
How Often to Run a Shopify Technical SEO Audit
A full pass twice a year fits most catalogues. That is the baseline cadence.
The thirty minute monthly check is the higher value habit though. Page indexing, the Core Web Vitals report, new 404s, sitemap health. Most problems are cheap to fix in week one and expensive by month six.
Then run a targeted pass after any of these: a theme update, an app install, a URL restructure, a migration, or an unexplained drop in impressions. The post app install check is the one everybody skips.
- Page indexing
- The Core Web Vitals report
- New 404s
- Sitemap health
- A theme update
- An app install
- A URL restructure
- A migration
- An unexplained drop in impressions
Frequently Asked Questions
How long does a Shopify technical SEO audit take?
Around six to eight hours for a store under 1,000 URLs, spread across the ten steps above. Larger catalogues with heavy faceted navigation and multiple markets take two to three days, and most of that time goes into crawl analysis.
Can I audit my Shopify store for free?
Yes, for the diagnosis. Search Console, PageSpeed Insights, the Rich Results Test and your Shopify Web Performance dashboard cost nothing, and Screaming Frog crawls 500 URLs free. The budget goes on fixing what you find.
Does Shopify handle technical SEO automatically?
It handles the infrastructure. HTTPS, sitemaps, canonical defaults and image delivery are done for you. It does not stop duplicate collection path URLs, app script bloat, broken theme canonicals or incomplete product schema.
How soon do rankings move after the fixes go live?
Indexation fixes show first, usually within two to four weeks as Google recrawls. Core Web Vitals changes need at least 28 days because the field data uses a rolling window. Ranking and revenue changes normally land between 30 and 90 days.
What is the most common issue you find on Shopify stores?
Broken or missing canonical tags on product pages after a theme or app change. It is invisible in the admin, it splits ranking signals across two URLs, and it usually sits there for months before anyone notices.
Should I fix everything the crawler reports?
No. A crawl of a 5,000 URL store returns thousands of rows and most of them do not touch revenue. Filter against your top twenty pages first, then work outward from there.
Start With the First Ninety Minutes
Do step one this week. Pull the baseline, run the Search Console check, and read your robots.txt. That is ninety minutes of work, and it tells you whether the rest of this audit is urgent or routine.
On this page
- 01What the audit covers
- 02What Shopify fixes and breaks
- 03Set a baseline
- 04Ask Search Console
- 05robots.txt and sitemap
- 06Crawl the store
- 07Filters, sorting, pagination
- 08Redirects, 404s, broken links
- 09Core Web Vitals
- 10App and script load
- 11Schema and the agent layer
- 12Architecture and markets
- 13Build the fix list
- 14Four wrong claims
- 15How often to audit
- 16FAQ
- 17The first ninety minutes
I have run this sequence on stores with forty products and on catalogues past 30,000 URLs. The pattern repeats. Most owners open a crawler, export 900 issues, feel sick, and close the laptop. That is a data dump, not an audit.
So here is the version I actually use with clients. Ten steps, roughly seven hours for a mid sized store, with the exact Shopify admin paths and the numbers you are measuring against.
- Indexation
- Duplication
- Speed
- The machine readable layer
What a Shopify Technical SEO Audit Actually Covers
Six questions decide whether a page ranks.
- Can Google crawl it?
- Can it index it?
- Does it pick the URL you wanted?
- Does the page load fast enough?
- Can a machine parse the product data?
- Can anything find the page through internal links?
Every step below answers one of those six. You need three tools, and only one of them costs money:
- Google Search Console verified on your primary domain
- A crawler such as Screaming Frog
- Your Shopify admin with the Reports staff permission enabled
Open a spreadsheet with six columns before you start.
| URL | Issue | Severity | Estimated impact | Owner | Status |
|---|---|---|---|---|---|
Every finding goes in there, or it gets forgotten by Thursday.
What Shopify Fixes for You, and What It Quietly Breaks
Shopify gives you HTTPS, an auto generated sitemap at /sitemap.xml, canonical tags on every template, and image delivery through its own CDN. That is a better starting position than most platforms, and it is exactly why merchants assume the technical side is handled.
It is not. The same architecture creates three problems on its own. Every product sits at two crawlable URLs. Filters generate near-identical pages at scale. And every app you install can inject JavaScript onto pages that never use it.
- HTTPS
- An auto generated sitemap at
/sitemap.xml - Canonical tags on every template
- Image delivery through its own CDN
- Every product sits at two crawlable URLs
- Filters generate near-identical pages at scale
- Every app you install can inject JavaScript onto pages that never use it
A generic audit catches none of that cleanly, because most tools are not calibrated for Liquid templates or Shopify’s fixed URL prefixes. That is the whole case for running a Shopify technical SEO audit rather than a general one.
Step 1: Set a Baseline Before You Touch Anything
Record where you are now, or you will never prove the work paid off. Pull organic sessions and organic revenue for the last 90 days from GA4, then export the Search Console performance report for the same window.
Write down five numbers and date the row: organic sessions, organic revenue, total indexed pages, average position for your top ten commercial keywords, and your current Core Web Vitals status. That is your before.
One more job at this stage. List your top twenty pages by revenue, products and collections together. You will use that list at every later step to separate what matters from what is merely broken.
Step 2: Ask Search Console What It Has Indexed
Open the Page indexing report. Ignore the green number for a minute and read the reasons under “Not indexed”, because that is where Shopify stores leak.
Four reasons come up again and again:
- Alternate page with proper canonical tag.
Usually fine. This is Shopify folding collection path duplicates back into the main product URL.
- Duplicate without user selected canonical.
Not fine. Google found two versions and picked one for you.
- Discovered, currently not indexed.
Google knows the URL exists and has not bothered. Common on filter URLs and empty collections.
- Crawled, currently not indexed.
Google looked and decided it was not worth keeping. Usually a quality signal rather than a technical one.
Now spot check ten of your top twenty pages with the URL Inspection tool. You are looking for one thing. Does Google’s selected canonical match the URL you want ranking? If it does not, you have found your first real problem.
Step 3: Read Your robots.txt and Sitemap
Type yourstore.com/robots.txt into a browser. Shopify writes this file for you, and the default already blocks /cart, /checkout, /account, internal search results and a set of filter and sort parameters. For most stores that default is correct and you should leave it alone.
/cart/checkout/account- Internal search results
- A set of filter and sort parameters
You can change it if you genuinely need to. Shopify lets any theme add a robots.txt.liquid template under Online Store › Themes › Edit code, on every plan, not only on Plus. Several 2026 guides still repeat the Plus only claim. It has been wrong since 2021.
When you do edit it, loop through the robots.default_groups object and add your rule rather than replacing the file with plain text. Shopify keeps improving those default rules, and that method lets you keep the updates.
Then the sitemap. Shopify publishes a sitemap index at /sitemap.xml pointing to child files for products, collections, pages and blog posts. Open each child file and check two things: the URL count against what you expect, and whether any listed URL returns anything other than a 200.
/sitemap.xmlSitemap index- Products
- Collections
- Pages
- Blog posts
Step 4: Crawl the Store and Chase the Collection Path Duplicates
Configure the crawler before you run it. Set the user agent to Googlebot Smartphone, enable JavaScript rendering if your theme depends on it, turn on near duplicate detection, and connect the Search Console API so traffic data sits beside every row.
- User agentGooglebot Smartphone
- JavaScript renderingIf your theme depends on it
- Near duplicate detection
- Search Console API
Start the crawl and go and do something else for an hour.
- 1Canonicals
- 2Duplicate title tags and H1s
- 3Thin pages
When it finishes, canonicals come first. Filter for missing and non indexable canonical tags. On a healthy store, every /collections/x/products/y URL carries a canonical pointing back to /products/y. Theme edits and page builder apps break this regularly, and nothing in the admin warns you.
/collections/x/products/y
canonical
/products/y
Next, duplicate title tags and H1s. Shopify themes often print the collection name as the H1 on a collection page and drop the product name into an H2. Check one page of each template type rather than reading four thousand rows.
Then thin pages. Sort by word count and look at collection pages with no description at all. Those are the pages that turn up later as “Discovered, currently not indexed”.
Step 5: Deal With Filters, Sorting and Pagination
This is where a lot of Shopify technical SEO audit advice goes wrong. Nearly every guide tells you to panic about crawl budget. Google’s own documentation says that guidance is aimed at sites over a million pages, or sites over 10,000 pages that change daily.
If your store has 400 products, filter URLs are not eating your rankings. Fix the duplication because it splits ranking signals and muddies the index, not because Googlebot is running out of time.
What to check on filtered and paginated URLs:
- Filtered and sorted URLscanonicalise to the base collection page
- Page two and beyondcanonicalise to themselves, never back to page one
- No parameter URLappears anywhere in the sitemap
Where a filter has real search demand, treat it differently. “Rose gold engagement rings” gets searched every day. Build that as a proper collection with its own title, description and internal links instead of leaving it as a query string.
- Its own title
- Description
- Internal links
Step 6: Clean Up Redirects, 404s and Broken Links
Two Shopify specifics catch people out here.
First, a Shopify redirect only fires when the source URL returns a 404. If the old page still loads, your redirect sits in the admin doing nothing at all. Merchants set these up, see no change, and assume the platform is broken.
Second, there is a ceiling. Standard plans allow 100,000 URL redirects, and Plus goes far higher. Most stores never get close, though a store that has survived two migrations and a catalogue cleanup can.
In the crawler, export every 3xx response and look for chains. A redirecting to B redirecting to C wastes a hop and slows the page. Point A straight at C and delete the middle rule. You manage all of this under Content › Menus › View URL redirects.
For 404s, cross reference the Search Console “Not found” report with your crawler’s 4xx export. Redirect the URLs that had traffic or backlinks. Let the rest 404 honestly, because sending every dead product to the homepage just builds a soft 404 farm.
- URLs that had traffic or backlinksRedirect
- The restLet them 404 honestly
- Every dead productHomepage builds a soft 404 farm
Step 7: Measure Core Web Vitals With Real User Data
Get the thresholds right first. LCP at 2.5 seconds or less, INP at 200 milliseconds or less, CLS at 0.1 or less, each measured at the 75th percentile of real visits.
Two corrections are worth making here. First Input Delay is gone. Google replaced it with INP in March 2024, so any checklist still listing FID was written before that and never updated. You will also see posts claiming Google cut the LCP threshold to 2.0 seconds in 2026. Google’s published documentation still says 2.5.
For measurement, Shopify gives you something better than a single PageSpeed test. The Web Performance dashboard in your admin reports real user data from the last 28 days at the 75th percentile, split by device, with annotations for theme updates and app installs. You will find it under Online Store › Themes.
- Real user data
- Last 28 days
- 75th percentile
- Split by device
- Annotations for theme updates and app installs
That annotation feature is the useful part. When LCP jumps on a Tuesday, you can see which app was installed that morning.
For context, 48% of mobile origins passed all three Core Web Vitals in the 2025 Web Almanac analysis of Chrome UX Report field data. Stores usually sit below that average, and the metric they fail is almost always INP on mobile.
Step 8: Audit the App and Script Load
Open your storefront in Chrome, open DevTools, go to the Network tab, filter by JS and reload. Sort by size. Then open the Coverage tab and reload again, which shows how much of each file never executes.
- 1Network tab
- 2Filter by JS and reload
- 3Sort by size
- 4Coverage tab, reload again
Match the external domains against your installed apps list. For every app, ask two questions. Is anyone actually using it? And does it load on pages where its feature does not even appear?
A reviews widget firing on your About page is free damage. A live chat script blocking the main thread on mobile is your INP score.
This is the step that usually needs a developer, and it is usually worth the money. Uninstalling an app does not always remove its code, because theme edits the app made stay in your Liquid files until someone deletes them by hand.
Step 9: Validate Product Schema and the Agent Layer
Run three product URLs and two collection URLs through Google’s Rich Results Test. On product pages you want name, image, description, sku, brand, and offers with price, priceCurrency and availability, plus aggregateRating where you have genuine reviews.
nameimagedescriptionskubrand
offerspricepriceCurrencyavailabilityaggregateRatingwhere you have genuine reviews
The common failure is a review app that injects ratings client side after Google has already parsed the page. The stars show up for shoppers and never show up in search.
Then check something almost nobody audits yet. Shopify now serves an /agents.md file on every store and mirrors it at /llms.txt and /llms-full.txt. It tells AI shopping agents where your product data lives, which commerce protocol versions you support, and where your sitemap sits.
Open yourstore.com/agents.md and read it. Shopify manages that file by default, and for most stores the managed version is the right answer. You can override it with an agents.md.liquid template, though you then own keeping it accurate.
While you are there, load yourstore.com/.well-known/ucp. That is the discovery endpoint agents use to work out what your store can do. If it returns nothing, that is worth a conversation with your developer.
/agents.mdServed on every store
Mirrored at /llms.txt and /llms-full.txt
- Where your product data lives
- Which commerce protocol versions you support
- Where your sitemap sits
/.well-known/ucpThe discovery endpoint agents use to work out what your store can doStep 10: Check Architecture, Internal Links and Markets
Pull the inlinks column from your crawl. Any collection page on your top twenty revenue list with fewer than three internal links pointing at it is underpowered, and fixing that is often the cheapest ranking gain in the entire audit.
Fewer than three internal links pointing at a collection page on your top twenty revenue list is underpowered.
Then hunt orphans. Cross-reference the sitemap against crawled URLs. Products that exist in the sitemap with zero inbound links get crawled rarely and rank badly, and there are usually more of them than you expect.
Fix it from the top down. Main navigation, then parent collections, then related product blocks, then blog posts. Blog content linking into collection pages is underused on most Shopify stores, and it costs nothing to add.
- 1Main navigation
- 2Parent collections
- 3Related product blocks
- 4Blog posts
If you sell in more than one country through Shopify Markets, add an hreflang pass. Every regional URL needs return tags to all of its equivalents plus a self-reference, with valid language and region codes. Getting multilingual setups wrong is expensive, and the damage is slow to show up.
Turn the Findings Into a Fix List Someone Will Actually Ship
An audit that ends in a ninety-page PDF changes nothing. Sort every row in your spreadsheet into four buckets and work top down.
Blockers
Pages Google cannot crawl or index at all. An accidental noindex, a broken robots rule, canonicals pointing at dead URLs. Nothing else matters until these are cleared.
Splitters
Google can see the page but cannot decide which version to rank. Duplicate collection path URLs, missing canonicals, filter pages sitting in the index.
Performance
LCP, INP and CLS failures on your highest revenue templates. Home, collection, product. Ignore the long tail at this stage.
Enrichment
Schema gaps, title tags, alt text, the agent layer. Real gains, but they compound on a clean foundation rather than replacing one.
Attach a revenue figure to each row wherever you can. “Fix canonicals on 1,200 product URLs” gets approved slowly. “Fix canonicals on 1,200 product URLs carrying $40,000 in monthly organic revenue” gets approved on Monday. Sizing that impact honestly is most of what you pay an SEO consultant for.
“Fix canonicals on 1,200 product URLs”
Gets approved slowly“Fix canonicals on 1,200 product URLs carrying $40,000 in monthly organic revenue”
Gets approved on MondayFour Claims in Shopify Audit Guides That Are Wrong
I read the top ranking guides for this topic before writing. Four errors repeat across them, and each one costs real time.
Robots.txt editing is Plus only.It is not, and has not been since 2021. Any theme on any plan can add a robots.txt.liquid template.
FID is a Core Web Vital.INP replaced it in March 2024. If a checklist still mentions First Input Delay, check the publish date on everything else it tells you.
Crawl budget is your problem.For a store under 10,000 URLs it almost certainly is not, by Google’s own published guidance.
Noindex your filter pages.Canonicalise them instead. A noindex tag on a page that also carries a canonical sends Google two conflicting instructions, and it will follow whichever one it prefers.
How Often to Run a Shopify Technical SEO Audit
A full pass twice a year fits most catalogues. That is the baseline cadence.
The thirty minute monthly check is the higher value habit though. Page indexing, the Core Web Vitals report, new 404s, sitemap health. Most problems are cheap to fix in week one and expensive by month six.
Then run a targeted pass after any of these: a theme update, an app install, a URL restructure, a migration, or an unexplained drop in impressions. The post app install check is the one everybody skips.
- Page indexing
- The Core Web Vitals report
- New 404s
- Sitemap health
- A theme update
- An app install
- A URL restructure
- A migration
- An unexplained drop in impressions
Frequently Asked Questions
How long does a Shopify technical SEO audit take?
Around six to eight hours for a store under 1,000 URLs, spread across the ten steps above. Larger catalogues with heavy faceted navigation and multiple markets take two to three days, and most of that time goes into crawl analysis.
Can I audit my Shopify store for free?
Yes, for the diagnosis. Search Console, PageSpeed Insights, the Rich Results Test and your Shopify Web Performance dashboard cost nothing, and Screaming Frog crawls 500 URLs free. The budget goes on fixing what you find.
Does Shopify handle technical SEO automatically?
It handles the infrastructure. HTTPS, sitemaps, canonical defaults and image delivery are done for you. It does not stop duplicate collection path URLs, app script bloat, broken theme canonicals or incomplete product schema.
How soon do rankings move after the fixes go live?
Indexation fixes show first, usually within two to four weeks as Google recrawls. Core Web Vitals changes need at least 28 days because the field data uses a rolling window. Ranking and revenue changes normally land between 30 and 90 days.
What is the most common issue you find on Shopify stores?
Broken or missing canonical tags on product pages after a theme or app change. It is invisible in the admin, it splits ranking signals across two URLs, and it usually sits there for months before anyone notices.
Should I fix everything the crawler reports?
No. A crawl of a 5,000 URL store returns thousands of rows and most of them do not touch revenue. Filter against your top twenty pages first, then work outward from there.
Start With the First Ninety Minutes
Do step one this week. Pull the baseline, run the Search Console check, and read your robots.txt. That is ninety minutes of work, and it tells you whether the rest of this audit is urgent or routine.
More SEO guides
27 On-Page SEO Checklist With Free Template
An on-page SEO checklist is a must for any website. This guide covers all the steps to ensure your website is properly optimized and visible, so you can work through each page and make sure the parts you control are ready to rank.
On-Page SEO vs Off-Page SEO
How on-page and off-page SEO differ, what each one covers, and where each one fits in your wider SEO work. See which parts you fix on the page itself, which come from signals outside your site, and how the two connect.
50-Step Off-Page SEO Checklist to Be a BackLink Guru
This checklist provides 50 actionable off-page SEO tactics that will help you dominate your competitors and become a backlink guru in 2024.
More SEO guides
27 On-Page SEO Checklist With Free Template
An on-page SEO checklist is a must for any website. This guide covers all the steps to ensure your website is properly optimized and visible, so you can work through each page and make sure the parts you control are ready to rank.
On-Page SEO vs Off-Page SEO
How on-page and off-page SEO differ, what each one covers, and where each one fits in your wider SEO work. See which parts you fix on the page itself, which come from signals outside your site, and how the two connect.
50-Step Off-Page SEO Checklist to Be a BackLink Guru
This checklist provides 50 actionable off-page SEO tactics that will help you dominate your competitors and become a backlink guru in 2024.
Is the rest of your audit urgent or routine?
Ninety minutes of work tells you. Or hand the whole thing over and get a prioritised fix list your developer can work from.
Is the rest of your audit urgent or routine?
Ninety minutes of work tells you. Or hand the whole thing over and get a prioritised fix list your developer can work from.

I’m an awarded SEO expert and seo consultant with 9 years of experience. I have generated over 0 to 100M sales by SEO for my clients like you 👉 See Case Study