# Shopify technical SEO for the problems Shopify creates itself

Source: https://www.smartecomseo.com/shopify-seo-services/technical-seo/  
Updated: 2026-09-29

Shopify handles the basics well, then quietly adds duplicate paths, thin tag pages and filter URLs as your store grows. We find them in your theme and fix them at the source.

## The technical issues we see on almost every Shopify store

### /collections/*/products/* paths

Many themes link products through the collection they sit in, so every product gets an extra URL per collection. Shopify canonicalizes them to /products/, but Googlebot still crawls them and your internal links point at the wrong address.

### Indexable tag pages

Shopify's default robots.txt blocks combined tags (the + URLs) but not single tags. /collections/sofas/grey is a crawlable page with no unique title, no copy and a near-copy of the parent.

### Filter and sort parameters

Search & Discovery filters create URLs like ?filter.v.option.color=Grey. The default rules only block multi-filter combinations, so single-filter URLs can pile up in the crawl.

### ?variant= URLs

Each variant has its own URL that canonicalizes to the product. Fine for sizes, a lost opportunity when a color or material is what people actually search for.

### App bloat

Uninstalled apps often leave snippets and script tags in the theme. Reviews, upsells and chat widgets each load their own JavaScript on every page.

### Markets hreflang conflicts

Shopify adds hreflang automatically for each market. Problems start when themes hardcode their own tags, or when en-US, en-GB and en-CA storefronts serve identical pages.

## Fixes go into the theme, not into a report

Most Shopify technical SEO problems live in a handful of Liquid files: product card snippets, collection templates, the head of theme.liquid. We edit those directly, test on a duplicate theme, then publish.

## How a technical sprint runs

1. **Crawl and compare** (Week 1): We crawl the store, then compare what we find with the Page indexing and Crawl stats reports in Search Console. The gap between the two tells us where Googlebot wastes time.

2. **Prioritize by revenue** (Week 1): Issues on collections and products that sell come first. A broken canonical on a best seller beats 400 missing alt tags on blog images.

3. **Fix on a duplicate theme** (Weeks 2 to 3): All theme edits are made on a copy, tested on desktop and mobile, then published. Nothing is changed live without a rollback.

4. **Validate and monitor** (Ongoing): We request validation in Search Console, watch indexing and crawl stats, and keep going with 15+ hours of technical work each month.

## What technical SEO covers on our plans

### Internal links pointed at canonical /products/ URLs



### Tag, vendor and type pages set to noindex or turned into real collections



### Custom robots.txt.liquid rules where the defaults fall short



### Pagination that crawlers can follow, with or without infinite scroll



### Product, Offer, BreadcrumbList and Organization schema, deduplicated across apps



### Leftover app code removed and script loading reviewed



### Markets hreflang and translated content checked per storefront



### Redirects for changed handles, deleted products and old platforms



## What you can and cannot change on Shopify

Knowing the platform's limits saves months of wasted recommendations. These are the ones that matter most.

### Fixed by Shopify

The `/products/`, `/collections/`, `/pages/` and `/blogs/` prefixes cannot be removed. The sitemap is generated automatically and cannot be edited directly. Canonical tags are written by the platform through `canonical_url`, and hreflang for Markets is injected through `content_for_header`. Any audit that tells you to "flatten your URL structure" was not written by a Shopify specialist.

### Controlled in the theme

Most of the real wins sit here. Product cards that use the `within: collection` filter create the duplicate collection-product paths, and changing them to plain `product.url` fixes it store-wide. Tag pages can get a conditional noindex. Pagination links can be rendered as real anchor tags so crawlers reach page 2 and beyond, even when shoppers see infinite scroll. Structured data is usually in the theme too, and it often clashes with the JSON-LD a review app injects.

### Controlled in settings and data

Since 2021, `robots.txt.liquid` lets you add rules on top of Shopify's defaults, which already block cart, checkout, sort parameters and multi-filter URLs. Products, pages and blog posts can be hidden from the sitemap and search engines with the `seo.hidden` metafield, or products can be set to Unlisted. Redirects live in the admin, and Shopify offers to create one automatically when you change a handle. Many stores untick that box by accident.

### Where it overlaps

Technical fixes pay off most when the pages behind them are worth crawling. That is why we pair this work with [collection page SEO](/shopify-seo-services/collection-page-seo/), and why stores with thousands of SKUs need a [large catalog plan](/shopify-seo-services/large-catalog-seo/) for filters and variants. If speed is the main complaint, see [speed optimization](/shopify-seo-services/speed-optimization/).

## Shopify technical SEO questions

## Find out what Googlebot is wasting time on

Send us your store and we will point out the biggest crawl and indexing issues for free.

[Get a free audit](/free-audit/)

## Frequently asked questions

### Does Shopify handle duplicate content automatically?

Partly. Shopify adds canonical tags that point collection-product URLs and variant URLs back to the main product URL. But canonicals are hints, not commands. If your theme links to /collections/sofas/products/grey-sectional from every collection page, Google still crawls those URLs and your internal link signals go to the non-canonical version. Fixing the theme links is the real solution.

### Should I edit robots.txt.liquid on my Shopify store?

Only with a specific reason. Shopify's default rules already block checkout, cart, sort parameters, combined tag URLs and multi-filter URLs, and Shopify updates them over time. Useful additions include blocking single-filter parameters you never want indexed or internal search variants. Never block a URL you also want to noindex, because Google cannot see a noindex tag on a page it is not allowed to crawl.

### Are Shopify tag pages bad for SEO?

Usually, as they are built by default. A URL like /collections/sofas/leather reuses the parent collection's title and description and shows a filtered subset of products, so it looks like thin duplicate content. The fix is either a conditional noindex in the theme, or turning the high-demand ones, like leather sofas, into real collections with their own copy, title and internal links.

### Can I change the /products/ and /collections/ URL structure?

No. Shopify fixes those prefixes on every store, including Shopify Plus. It is not a ranking problem. Google ranks Shopify stores with this structure every day. Effort is better spent on handles, internal links and page content. Be careful with apps or proxy setups that promise to remove the prefixes, as they add complexity without a clear SEO benefit.

### How do apps affect Shopify technical SEO?

Three ways. They add JavaScript that slows pages and hurts Core Web Vitals. They leave code behind in the theme after you uninstall them. And some inject their own structured data, so a product page ends up with two conflicting Product schemas. We audit installed and removed apps as part of every technical review.