Technical SEO for Shopify is constrained differently from technical SEO on a self-hosted platform. There is no server configuration to edit, no database to query, and no control over several URL patterns Shopify generates. The work is therefore concentrated in the theme, the app stack and the settings Shopify does expose.
That constraint is not automatically a disadvantage. Shopify handles hosting, SSL and much of the crawl infrastructure competently. The faults that do appear tend to be the same handful, repeated across stores.
Duplicate product URLs, the recurring Shopify fault
Shopify can serve one product at two paths: the canonical /products/handle, and a collection-scoped /collections/name/products/handle. Both are reachable and both can be linked internally by the theme.
- Verify the collection-scoped variant carries a canonical pointing at the bare /products/ URL.
- Check whether theme templates link products using the scoped form, which reinforces the duplicate.
- Crawl for the pattern directly rather than assuming the default canonical behaviour is intact, since themes and apps can override it.
- Background on the mechanism is under Shopify duplicate content.
What you can and cannot control
Controllable
robots.txt.liquid, which is editable and can express custom crawl rules.- Title, meta description and canonical output through theme templates.
- Structured data emitted by the theme.
- Internal linking, collection content and navigation.
- Handles, which form the final segment of product and collection URLs.
Not controllable
- The
/products/,/collections/,/pages/and/blogs/prefixes. - Checkout and cart paths.
- Server-level redirect rules, which must go through Shopify’s redirect system instead.
- Response headers beyond what Shopify exposes.
Planning around the fixed prefixes rather than trying to defeat them is the practical stance, and it is why Shopify migrations lean so heavily on redirect mapping.
Collections, filters and index bloat
Collection pages carry most commercial demand, and filtering is where their URL footprint escalates.
- Decide which filtered collection URLs, if any, should be indexable. The safe default is none.
- Watch for search and filter apps generating parameter URLs that are crawlable by default.
- Check tag-based collection URLs, which can multiply quickly on stores that tag heavily.
- Keep pagination crawlable so deeper products stay reachable, without treating paginated URLs as ranking targets.
- Monitor for index bloat as the leading indicator that filter handling has drifted.
Apps and rendering
Apps are the most common source of technical regression on Shopify, because each one injects front-end code that the theme did not anticipate.
- Review apps that render in JavaScript may leave product pages thin in the rendered HTML.
- Multiple apps emitting product structured data produce conflicting or duplicated markup.
- Front-end weight accumulates app by app and shows up in Core Web Vitals on collection templates first.
- Removing an app often leaves its script tags behind in the theme, so audit after uninstalling.
A practical audit order
- Crawl the store and check for collection-scoped product URLs in the indexable set.
- Confirm canonicals on products, collections and paginated views.
- Review robots.txt.liquid against what is actually being crawled.
- Check structured data for duplication across theme and apps.
- Compare rendered HTML against raw HTML on product pages to catch JavaScript-dependent content.
- Measure collection template performance rather than only the homepage.
A structured version of this is covered by a Shopify SEO audit.
Frequently asked questions
Can I edit robots.txt on Shopify?
Yes. Shopify exposes robots.txt.liquid in the theme, so custom rules are possible. It is more capable than commonly assumed, though it does not give you the full control of a server configuration file.
Why do my products appear at two URLs?
Shopify serves products both at /products/handle and, when reached through a collection, at /collections/name/products/handle. Canonical tags should resolve this, but themes and apps can override them, so verify rather than assume.
Do Shopify apps hurt SEO?
Not inherently, but they add front-end weight and can duplicate structured data or render content in JavaScript. Audit the app stack periodically, and check that uninstalled apps have not left scripts behind in the theme.
Should filtered collection URLs be indexed?
Usually not. Index a filtered URL only where the combination has genuine standalone demand and you will treat it as a real collection with its own content. Indexing filters by default is the fastest route to index bloat on Shopify.
Consulting CTA
If your Shopify store has duplicate product URLs, growing index bloat, or collection pages that will not rank, book an SEO consultation for a technical review of the theme, app stack and crawl footprint.