A Shopify SEO audit checks what your store actually sends to Google, and separates what Shopify does by default from what your catalogue, theme and apps have added. I review the live storefront, explain each finding in plain terms, and give you a prioritised list of fixes with a retest for each one.

Discuss your projectSee selected work

This page covers Shopify only. If you run another platform, or want the general method, see my ecommerce SEO audit. For ongoing work after the audit, see Shopify SEO services. I am an independent designer-developer based in Manchester, working across the UK, and you work with me directly. To compare audit suppliers, see how to choose an SEO consultant.

What Shopify handles, and what it does not

Shopify does a lot of technical SEO for you. It generates a sitemap, adds canonical tags in most themes, serves a robots.txt file and runs on a fast hosted platform. That is why many Shopify audits find fewer basic faults than audits of other platforms.

The problems come from the layer on top. Collections, tags, filters, apps, markets and theme edits all change what a crawler sees. A generic checklist often misses these, or tells you to fix things Shopify already handles. I check the final page, not the assumption.

What I check on a Shopify store

Product URLs and canonical tags

Every product on Shopify can be reached at /products/handle. If the product sits in a collection, it can also be reached at /collections/name/products/handle. That is two URLs for one page.

Most themes handle this by pointing the canonical tag at the /products/ version. I check that yours does. Then I check the part people forget: do your collection pages, menus and related-product blocks link to the canonical URL, or to the collection-scoped one? Mixed internal links send Google conflicting signals. Google treats a canonical tag as a hint, not an order, so the links should agree with it. Google explains this in its guide to consolidating duplicate URLs.

Robots.txt and robots.txt.liquid

Shopify serves a default robots.txt for every store. It already blocks areas such as the cart, checkout and internal search. You can customise it with a robots.txt.liquid template, which Shopify describes in its guide to editing robots.txt.liquid.

I read the live file first. If nobody has customised it, I leave it alone. If someone has, I check for rules that block products, collections or theme files by mistake, and for copied rules that no longer match the store. A wrong line here can hide whole ranges, so I treat any custom file as a risk until it is checked.

The sitemap index

The Shopify sitemap lives at /sitemap.xml. It is an index that links to separate sitemaps for products, collections, pages and blog posts. You cannot edit it directly, so I do not ask you to. I check that it is submitted in Search Console, that the child sitemaps load, and that the URLs inside match the pages you want indexed. Shopify explains the file in its sitemap documentation.

If a page you care about is missing from the sitemap, the cause is usually a product status, a sales channel setting or a noindex tag. I trace which one.

Collections, tags and filters

This is where Shopify stores most often create near-duplicate pages. Tag filtering can produce URLs like /collections/shoes/red. Storefront filters add parameters such as ?filter. to the address, and sorting adds more. Each combination is a new URL.

I list which of these exist on your store, what canonical each one outputs, and whether internal links lead crawlers into them. Some filtered pages are worth indexing, such as a real range people search for. Most are not. The decision should be deliberate, and the page should be a proper collection if it matters.

I also check pagination. Products deep in a collection must be reachable through ordinary links, not only a “load more” button that needs JavaScript. Collections with the same products under two names compete with each other, so I check for those too.

Online Store 2.0 templates

Online Store 2.0 themes use JSON templates, so every page type can be built from sections. That is useful, but it also means content can arrive through blocks that a template change may remove. I check which templates your products, collections and pages use, whether old Liquid templates are still in play, and whether headings and key text are in the rendered page. If your theme is old, the audit says whether a theme update is worth planning.

Apps and leftover code

Apps are the other regular finding. Many add scripts to every page. Some older apps also write code into theme files. When the app is uninstalled, that code can stay behind, still loading scripts from a service you no longer use.

I compare the installed apps with the scripts and snippets in the live page. I flag code with no owner, duplicated features and anything that loads on pages that do not need it. This links directly to speed, so see my notes on Core Web Vitals where performance is the main concern.

Theme-generated structured data

Most themes output Product markup automatically. Apps for reviews, subscriptions or SEO often add their own. The result can be two sets of product data on one page, with different prices or ratings. I check the rendered markup against the visible page and decide which component should own it. Google’s product structured data documentation sets out the fields that matter. A page can pass a validator and still describe the wrong price, so I compare the values by eye.

Images, alt text and file sizes

Shopify serves images from its own CDN, but it cannot stop you uploading a 6MB photo. I check the largest images on key templates, the sizes the theme requests, and whether alt text is present and accurate on product and collection images. Alt text should describe the picture. It should not be a keyword list.

Shopify Markets and hreflang

If you sell in more than one country or language, Markets controls how those versions are served. I check each version has its own URL, that the hreflang annotations in the page agree with your market setup, and that currency, language and availability are deliberate. Stores that sell in one market skip this section.

URL redirects

This catches people out. A Shopify URL redirect only takes effect when the old URL does not exist, so the old address must return a 404. If a live product, page or collection still uses that handle, the redirect will not fire. Shopify describes this in its redirect documentation.

I test a sample of old URLs and make sure each reaches a relevant page in one step, with no chain or loop. I also check what happens when someone changes a handle, because the redirect option is easy to untick. After a rebuild or platform move, I use the migration SEO checklist instead.

Blog and page handles

Blog posts live under /blogs/blog-handle/post-handle and pages under /pages/handle. Those paths are fixed. I check that handles are clean, that a default blog name has not left you with an odd URL, that tagged blog views are not creating thin duplicates, and that useful guides link to the right collections.

Password page and preview leaks

If your store was ever locked behind a password, or you test themes in preview, I check that nothing odd is left open. That means the live store is not password-protected by accident, and that old test or development addresses do not serve a copy of your catalogue.

Search Console and Shopify Analytics

I check that Search Console is verified for the right property and that the sitemap is submitted. Search Console shows which pages have search exposure and which are excluded, and why. I read its page indexing report alongside Shopify Analytics, so I can see which collections and products receive visits and orders, rather than guessing from a crawl. Shopify’s SEO overview covers the basics.

An original Shopify finding worksheet

I record each observation with a question and an acceptance test written before any fix. This is the template I use.

Observation Question Acceptance test
Collection contains important products. Can they be reached through normal links? Agreed priority products are discoverable through the relevant catalogue path.
Product appears through several routes. Which URL is intended as the canonical? Rendered canonical and internal links agree with that decision.
Old product route changed. Does the redirect reach a relevant destination? The old URL reaches the intended final page without a loop or broken target.
App adds product markup. Does another component also own that output? Required structured data agrees with the visible product and has clear ownership.
Market page differs. Are language, availability and routes deliberate? Each sampled market matches the approved content and URL matrix.

Common Shopify SEO problems

These are the patterns I look for. They are illustrative, not drawn from any client, and not every store has them.

Choose the app after the diagnosis: Find the limitation, Test the output, Keep or remove.
Problem Why it matters Where I look
Internal links use collection-scoped product URLs Links disagree with the canonical tag Collection grids, menus, related products
Tag and filter URLs are crawlable Many near-duplicate pages Crawl, canonical output, Search Console
Custom robots.txt.liquid blocks live pages Products or collections hidden from search Live robots.txt file
Uninstalled app code remains Slower pages, dead requests theme.liquid, snippets, network requests
Two sources of Product markup Conflicting price or rating data Rendered JSON-LD on product pages
Redirect set for a URL that still exists Redirect never fires Old URL response, URL redirects list
Oversized images, missing alt text Slow templates, weak image context Largest images on key templates

What the Shopify SEO audit includes

  • A dated scope and a sample register of collections, products, pages and markets.
  • Findings with reproducible examples, evidence and priorities.
  • A plan that separates catalogue, theme, app and content work.
  • Agreed implementation support, where you want it.
  • A retest of each completed fix on the live store.

Each finding records what I saw, what I expected, the likely effect and who owns the fix. I cannot guarantee rankings. I can show what blocks discovery, what weakens pages and which fixes are worth your time. Where fixes need theme code, see Shopify development. I have also built a Shopify configurator integration example with 33 offline checks, so I am used to testing carefully before anything goes live.

How a project runs

  1. Scope. You send the store URL, approximate catalogue size, markets and the reason for the review. I confirm what is in and out of scope.
  2. Access. Usually read-only access to Search Console and analytics, plus a list of your apps and theme. I rarely need full admin access.
  3. Review. I crawl the store, sample each template and check the live pages against the areas above.
  4. Report. You get the findings, priorities and plan, and I walk through them with you.
  5. Retest. As fixes go live, I test the production result against the agreed acceptance tests.

If you are planning a move, my migrate to Shopify and SEO migration pages cover that work. For a wider site review, see the technical SEO audit.

Checklist or audit?

A Shopify SEO checklist is a good start for a new store. It tells you what to set up. An audit tells you what your store actually does today, which is a different question. A checklist cannot see the app you forgot about. If you want ongoing improvement after the audit, see ecommerce SEO.

Frequently asked questions

What is a Shopify SEO audit?

It is a review of how your Shopify store appears to search engines, covering crawling, indexing, URLs, content, speed and markup. A good audit also tells you who should fix each issue.

Does Shopify handle SEO automatically?

Partly. It generates a sitemap and canonical tags and serves a robots.txt file. It does not write good titles, choose which filters to index, remove old app code or fix weak internal links. That is what the audit looks at.

What is the duplicate product URL problem?

A product can load at /products/handle and at /collections/name/products/handle. Canonical tags usually point to the first. The risk is internal links that use the second.

Can I edit robots.txt on Shopify?

Yes, through a robots.txt.liquid template. Most stores do not need to. If you do edit it, test the result, because a wrong rule can block live pages.

Do you need admin access to my store?

Usually not. Read-only Search Console and analytics access, plus a list of your theme and apps, covers most audits. I ask before needing anything more.

Where speed is the main concern, the Shopify speed optimisation service goes deeper on images, apps and interactions.

Next step

To scope a Shopify SEO audit, send the store URL, approximate catalogue size, active markets and what you are trying to solve. Mention any planned redesign or peak trading date so I can sequence the work. Contact me to discuss your Shopify SEO audit.

Shopify forces its own URL patterns, so a move onto it needs a careful redirect map. The website migration case study shows how to build and test one.

If the audit shows more work than your team can take on, an SEO consultant can do the fixes with you.

Several common audit findings have their own step-by-step guides: faceted navigation SEO, canonical tags on collection URLs, app bloat and Markets and hreflang.