If you run a Shopify store, there is a good chance Google is indexing multiple versions of the same product or collection page without you knowing. It is one of the most common technical SEO issues we find in eCommerce audits, and it is almost always caused by the same few things.
Shopify generates URLs in ways that create duplicate pages by default. The three main culprits are:
/collections/shirts/mens. These pages often contain the same products as the
parent collection, just with a different URL./products/blue-shirt and /collections/shirts/products/blue-shirt. Both resolve and
both can be indexed.
?page=2) can sometimes be treated as a
separate page without proper signals telling Google how to handle it.The problem is not just duplicate content in the traditional sense. It is that Google has to split its crawl budget across all these URLs, and the ranking signal gets diluted across versions of the same page.
The fastest way is to run a crawl with Screaming Frog or a similar tool and filter for pages with duplicate or near-duplicate title tags and meta descriptions. You can also check Google Search Console under Pages to see which URLs are getting indexed that you did not expect.
In SEMrush, run a Site Audit and look at the duplicate content report. It will usually surface collection and tag pages that have very similar content scores.
Add a canonical tag on every tag and filter page pointing back to the parent collection. Shopify does some of this automatically, but it is worth verifying through a crawl that the canonical is actually being set correctly and not overridden by your theme.
Shopify's canonical for product pages should point to /products/handle rather than the
collection-scoped version. This is set automatically in most themes but can be broken by certain apps or custom
code. Check it by viewing the source on a product page and searching for rel="canonical".
Use your robots.txt to block low-value tag and filter pages that do not serve an SEO purpose. If a tag page does not target a keyword anyone searches for, there is no reason for it to be in the index.
One thing to avoid: blocking pages in robots.txt that already have inbound links or ranking signals. Disallow only prevents crawling, not indexing, if the URL has been discovered through links.
When we fixed this for one of our Shopify clients in the fashion space, indexed pages dropped from around 4,200 to 1,800 within six weeks. Organic sessions to the remaining pages went up by 34% over the following three months as ranking signal consolidated on the right URLs.
It is one of the highest-leverage technical fixes available to Shopify stores. Most of the work is in the audit phase, not the implementation.
We audit Shopify sites regularly. Drop your URL and we will take a look.
Talk to us