Skip to content
ShopifyTechnical SEO audit

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
Abdullah Mahmud
Abdullah MahmudInternational SEO consultant
Updated Sep 28, 202613 min read
Shopify technical SEO audit, step by step

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.

The order matters as much as the checklist
  1. Indexation
  2. Duplication
  3. Speed
  4. The machine readable layer
Want a second opinion on your store before you start pulling things apart?
Book a Shopify SEO consultation

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.

URLIssueSeverityEstimated impactOwnerStatus

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.

What Shopify fixes for you
  • HTTPS
  • An auto generated sitemap at /sitemap.xml
  • Canonical tags on every template
  • Image delivery through its own CDN
What it quietly breaks
  • 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.

Write down five numbers and date the row
Date
Organic sessions
Organic revenue
Total indexed pages
Average positiontop ten commercial keywords
Core Web Vitals status
Last 90 days from GA4Search Console performance report, same window

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.

URL InspectionGoogle’s selected canonical
Your top twenty pagesThe 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.

The default already blocks
  • /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
The URL count against what you expect Any listed URL that returns anything other than a 200

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.

Configure the crawler before you run it
  • 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.

  1. 1Canonicals
  2. 2Duplicate title tags and H1s
  3. 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
Theme edits and page builder apps break this regularly, and nothing in the admin warns you.

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.

Google’s own documentation: that guidance is aimed at
400 productsfilter URLs are not eating your rankings Sites over 10,000 pagesthat change daily Sites over a million pages

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.

Query stringRose gold engagement rings
A proper collectionRose gold engagement rings
  • 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.

The old page still loadsYour redirect sits in the admin doing nothing at all
The source URL returns a 404The redirect fires

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.

100,000URL redirects on standard plans. Plus goes far higher.

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.

ABCWastes a hop and slows the page
ACPoint A straight at C and delete the middle rule
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.

Each measured at the 75th percentile of real visits
LCP2.5 sor less
INP200 msor less
CLS0.1or less
First Input Delay Google replaced it with INP in March 2024 LCP cut to 2.0 seconds Google’s published documentation still says 2.5

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.

48%
of mobile origins passed all three Core Web Vitals2025 Web Almanac, Chrome UX Report field dataStores usually sit below that average. 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.

  1. 1Network tab
  2. 2Filter by JS and reload
  3. 3Sort by size
  4. 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?

For every app, ask two questions
Is anyone actually using it?
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.

On product pages you want
nameimagedescriptionskubrand
offerspricepriceCurrencyavailability
aggregateRatingwhere you have genuine reviews
Rich Results TestThree product URLsTwo collection URLs

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.

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.

The agent layer
/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 do

Step 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.

0123+

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.

  1. 1Main navigation
  2. 2Parent collections
  3. 3Related product blocks
  4. 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.

Regional URLself Regional URLself Regional URLself
Return tags to all of its equivalentsPlus a self-referenceValid language and region codes

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.

Sort every row into four buckets and work top down
  1. 1BlockersPages Google cannot crawl or index at all
  2. 2SplittersGoogle can see the page but cannot decide which version to rank
  3. 3PerformanceLCP, INP and CLS failures on your highest revenue templates
  4. 4EnrichmentSchema gaps, title tags, alt text, the agent layer

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 Monday

Four 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.

Twice a yearA full pass. The baseline cadence.
Monthly, thirty minutesThe higher value habit
  • Page indexing
  • The Core Web Vitals report
  • New 404s
  • Sitemap health
A targeted pass after
  • 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.

2 to 4 weeksIndexation fixes
28+ daysCore Web Vitals changes
30 to 90 daysRanking and revenue changes
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.

Ninety minutes of work
  1. 1Pull the baseline
  2. 2Run the Search Console check
  3. 3Read your robots.txt
Rather hand the whole thing over with a prioritised fix list your developer can work from?
Get in touch
Abdullah Mahmud
Written by
Abdullah Mahmud

I have run this Shopify technical SEO audit on stores with forty products and on catalogues past 30,000 URLs. This is the version I actually use with clients, with the exact Shopify admin paths and the numbers you are measuring against.

Shopify technical SEOCore Web VitalsProduct schemaInternal linksShopify Markets
On this page
  1. 01What the audit covers
  2. 02What Shopify fixes and breaks
  3. 03Set a baseline
  4. 04Ask Search Console
  5. 05robots.txt and sitemap
  6. 06Crawl the store
  7. 07Filters, sorting, pagination
  8. 08Redirects, 404s, broken links
  9. 09Core Web Vitals
  10. 10App and script load
  11. 11Schema and the agent layer
  12. 12Architecture and markets
  13. 13Build the fix list
  14. 14Four wrong claims
  15. 15How often to audit
  16. 16FAQ
  17. 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.

The order matters as much as the checklist
  1. Indexation
  2. Duplication
  3. Speed
  4. The machine readable layer
Want a second opinion on your store before you start pulling things apart?
Book a Shopify SEO consultation

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.

URLIssueSeverityEstimated impactOwnerStatus

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.

What Shopify fixes for you
  • HTTPS
  • An auto generated sitemap at /sitemap.xml
  • Canonical tags on every template
  • Image delivery through its own CDN
What it quietly breaks
  • 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.

Write down five numbers and date the row
Date
Organic sessions
Organic revenue
Total indexed pages
Average positiontop ten commercial keywords
Core Web Vitals status
Last 90 days from GA4Search Console performance report, same window

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.

URL InspectionGoogle’s selected canonical
Your top twenty pagesThe 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.

The default already blocks
  • /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
The URL count against what you expect Any listed URL that returns anything other than a 200

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.

Configure the crawler before you run it
  • 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.

  1. 1Canonicals
  2. 2Duplicate title tags and H1s
  3. 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
Theme edits and page builder apps break this regularly, and nothing in the admin warns you.

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.

Google’s own documentation: that guidance is aimed at
400 productsfilter URLs are not eating your rankings Sites over 10,000 pagesthat change daily Sites over a million pages

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.

Query stringRose gold engagement rings
A proper collectionRose gold engagement rings
  • 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.

The old page still loadsYour redirect sits in the admin doing nothing at all
The source URL returns a 404The redirect fires

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.

100,000URL redirects on standard plans. Plus goes far higher.

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.

ABCWastes a hop and slows the page
ACPoint A straight at C and delete the middle rule
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.

Each measured at the 75th percentile of real visits
LCP2.5 sor less
INP200 msor less
CLS0.1or less
First Input Delay Google replaced it with INP in March 2024 LCP cut to 2.0 seconds Google’s published documentation still says 2.5

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.

48%
of mobile origins passed all three Core Web Vitals2025 Web Almanac, Chrome UX Report field dataStores usually sit below that average. 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.

  1. 1Network tab
  2. 2Filter by JS and reload
  3. 3Sort by size
  4. 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?

For every app, ask two questions
Is anyone actually using it?
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.

On product pages you want
nameimagedescriptionskubrand
offerspricepriceCurrencyavailability
aggregateRatingwhere you have genuine reviews
Rich Results TestThree product URLsTwo collection URLs

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.

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.

The agent layer
/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 do

Step 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.

0123+

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.

  1. 1Main navigation
  2. 2Parent collections
  3. 3Related product blocks
  4. 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.

Regional URLself Regional URLself Regional URLself
Return tags to all of its equivalentsPlus a self-referenceValid language and region codes

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.

Sort every row into four buckets and work top down
  1. 1BlockersPages Google cannot crawl or index at all
  2. 2SplittersGoogle can see the page but cannot decide which version to rank
  3. 3PerformanceLCP, INP and CLS failures on your highest revenue templates
  4. 4EnrichmentSchema gaps, title tags, alt text, the agent layer

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 Monday

Four 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.

Twice a yearA full pass. The baseline cadence.
Monthly, thirty minutesThe higher value habit
  • Page indexing
  • The Core Web Vitals report
  • New 404s
  • Sitemap health
A targeted pass after
  • 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.

2 to 4 weeksIndexation fixes
28+ daysCore Web Vitals changes
30 to 90 daysRanking and revenue changes
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.

Ninety minutes of work
  1. 1Pull the baseline
  2. 2Run the Search Console check
  3. 3Read your robots.txt
Rather hand the whole thing over with a prioritised fix list your developer can work from?
Get in touch
Abdullah Mahmud
Written by
Abdullah Mahmud

I have run this Shopify technical SEO audit on stores with forty products and on catalogues past 30,000 URLs. This is the version I actually use with clients, with the exact Shopify admin paths and the numbers you are measuring against.

Shopify technical SEOCore Web VitalsProduct schemaInternal linksShopify Markets
Keep reading

More SEO guides

All SEO guides
On-page SEO checklist
ChecklistUpdated Feb 19, 2025

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.

Abdullah Mahmud Abdullah MahmudRead
On-page SEO vs off-page SEO
SEO basicsUpdated Feb 19, 2025

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.

Abdullah Mahmud Abdullah MahmudRead
Keep reading

More SEO guides

On-page SEO checklist
ChecklistUpdated Feb 19, 2025

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.

Abdullah Mahmud Abdullah MahmudRead
On-page SEO vs off-page SEO
SEO basicsUpdated Feb 19, 2025

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.

Abdullah Mahmud Abdullah MahmudRead
All SEO guides
Shopify technical SEO audit

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.

Abdullah Mahmud, international SEO consultant
10 stepsroughly seven hours
30,000+URL catalogues audited
Shopify technical SEO audit

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.

Abdullah Mahmud, international SEO consultant
10 stepsroughly seven hours
30,000+URL catalogues audited

Leave a Reply

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