Shopify SEO audit: what to check and what you can't change
A Shopify SEO audit that separates what you control from what Shopify fixes: URLs, robots.txt.liquid, sitemaps, redirects, apps, theme speed and JSON-LD.
By Seouch TeamUpdated comparison
Most of a Shopify SEO audit is the same as any other site: titles, content, internal links, speed. The difference is that some of the usual fixes are off the table, because Shopify controls the server, the URL scheme and the sitemap. Knowing which findings you can act on saves hours of chasing problems that only Shopify could change.
Start with the split.
| Area | What you control | What Shopify controls |
|---|---|---|
| URL structure | The handle after the prefix | The /products/, /collections/, /pages/ and /blogs/ prefixes |
| robots.txt | Extra rules through a robots.txt.liquid template |
The default rules and the file’s location |
| XML sitemap | What is published or hidden | Generation, structure and location at /sitemap.xml |
| Canonical tags | How the theme outputs them | The default canonical logic for products |
| Redirects | Redirects from URLs that return 404 | The rule that live URLs cannot be redirected; the redirect limit |
| Structured data | Theme and app JSON-LD | Nothing; it is entirely theme-driven |
| Speed | Theme code, apps, images, fonts, scripts | Hosting, CDN and server configuration |
| AI channels | Robots rules for open-web crawlers; agentic storefront settings | Product data syndication through Shopify Catalog; network-level bot management |
URLs: the prefixes stay, the handles are yours
You cannot remove /products/ or /collections/ from Shopify URLs. Our view: there is no good evidence these prefixes hold rankings back, and apps that hide them add redirects or proxies that cause more problems than they solve. Spend the effort on handles instead.
- Handles are short, readable and describe the product, without leftover import IDs or
-copysuffixes. - When you change a handle, Shopify’s admin offers to create a redirect from the old URL; keep that option ticked.
- Handles have not changed so often that redirects now chain through several old addresses.
Collection-aware product URLs
Many themes link to products through the collection the visitor is browsing, producing URLs such as /collections/shoes/products/runner alongside /products/runner. View the source of one of those collection-path URLs: the canonical tag should point to /products/runner. Check a few with the canonical checker.
If the canonical is right, the remaining cost is crawling: search engines fetch the same product under every collection it belongs to. Our view: if your catalogue is large, change the product card links in the theme so they point to /products/ URLs directly. On a theme that uses the within: collection URL filter, that means removing the filter from product links in collection templates.
robots.txt.liquid: what is worth editing
Shopify’s documentation says every store gets a default robots.txt that blocks admin, cart, checkout, account and order pages plus filtered and sorted collection URLs; that you can customise it by adding a robots.txt.liquid template; that this is an unsupported customisation its support team cannot help with; and that incorrect use can result in the loss of all traffic (editing robots.txt).
Reasons to edit it:
- Blocking internal search result pages if your theme’s template does not already disallow
/search. - Blocking app-generated URL patterns that create thin or duplicate pages.
- Setting rules for specific AI crawlers.
On AI crawlers, the same page notes that blocking them in robots.txt affects only open-web discovery. If you sell through agentic storefronts such as ChatGPT or Microsoft Copilot, Shopify Catalog sends your product data to them regardless of robots.txt; those channels are controlled in your agentic storefront settings. Decide crawler by crawler with the AI crawlers guide, then test the live file with the robots.txt tester.
Sitemap: automatic, so audit what goes into it
Shopify generates the XML sitemap at /sitemap.xml automatically, with child sitemaps for products, collections, pages and blog posts. Shopify’s documentation says each international domain gets its own sitemap that must be submitted separately, and that search engines cannot read it while the store is password protected (finding your sitemap).
- The sitemap is submitted in Search Console for every domain the store uses.
- Test, sample and placeholder products are deleted or unpublished, so they drop out.
- Collections that exist only for internal merchandising are hidden from the online store.
- The sitemap checker reports a valid file with a URL count close to what you expect.
Redirects: only from broken URLs
Shopify’s documentation says URL redirects work only from URLs that return a 404, so you cannot redirect a page that still loads, and stores outside the Plus plan can create up to 100,000 redirects (URL redirects).
What that means in practice:
- To redirect a product that still exists, unpublish or delete it first, then add the redirect.
- After several handle changes, edit the older redirects so each points to the current URL, removing the intermediate hops. Redirect chains explains how to find them.
- Large migrations into Shopify can be imported as a CSV of redirects; check them against the limit before launch.
Theme speed and app weight
Shopify’s web performance reports track loading speed, interactivity and visual stability, and Shopify’s documentation says every feature you add to a store can affect its performance (web performance). Theme code and apps are the parts you control.
- Every installed app is still in use. Remove the rest.
- App embeds in the theme editor are switched off for apps you have removed.
- Theme files do not still contain snippets from uninstalled apps; search the theme code for the app’s name.
- The main product image is not lazy-loaded and is served at the size it displays.
- Review, chat and upsell widgets load after the main content.
Test a product page and a collection page with the Core Web Vitals checker before and after each change, so you know which app cost what.
Structured data in themes
Shopify’s developer documentation says the Liquid structured_data filter outputs a schema.org Product for products without variants, a ProductGroup for products with variants, and an Article for blog articles (structured_data filter). Not every theme uses it, and many apps add their own markup.
- Each product page has exactly one
ProductorProductGroupblock. Review apps often add a second. - Price, currency and availability in the markup match the page.
- The home page has Organization markup with your logo and
sameAslinks to official profiles. - The schema markup validator shows no errors on a product, a collection and an article.
Reading an automated audit on Shopify
Some findings in a generic audit cannot be fixed from a Shopify theme. HTTP response headers, such as Content-Security-Policy and other security headers, are set by Shopify’s servers rather than your theme. Our view: note them, but do not spend time on them; put the effort into the items in the left-hand column of the table at the top. For the wider store checklist that applies on any platform, see the ecommerce SEO audit checklist.
What to do next
- Run the free audit on your home page, one collection and one product to see which findings belong to the theme.
- Confirm canonicals on collection-path product URLs, and switch product links to
/products/URLs on large catalogues. - Remove unused apps and their leftover code, then re-test speed.
- Check that there is one product markup block per page.
- Only then consider robots.txt.liquid, with a specific reason and a test plan.
Frequently asked questions
- Can I remove /products/ or /collections/ from Shopify URLs?
- No. Shopify sets those path prefixes for every store. You control only the handle that follows them. Apps that claim to remove the prefixes work by redirecting or proxying, which adds complexity without a clear benefit.
- Does Shopify create duplicate content?
- Themes can link to products through collection paths, such as /collections/shoes/products/runner, as well as the main /products/runner URL. Shopify's themes normally output a canonical tag pointing to the main product URL, so the issue is wasted crawling more than duplicate indexing.
- Is editing robots.txt.liquid safe?
- Shopify calls it an unsupported customisation, its support team cannot help with edits, and it warns that mistakes can cost all your search traffic. Edit it only for a specific reason, keep Shopify's default rules in place and test the result.
- Do I need an SEO app on Shopify?
- Not necessarily. Shopify handles sitemaps, canonical tags and basic metadata, and most themes output product structured data. Add an app for a specific gap, and check that it does not duplicate markup the theme already prints.