SEO

Shopify Duplicate Product URLs: Do Collections Paths Hurt SEO?

Talha Aslan 18 min read 2 views

Do Shopify duplicate product URLs hurt SEO?

A Shopify duplicate product URL is the same product opening under both its main product path and a collection path. Shopify points the canonical tag to the main product address, so the duplicates rarely cause a penalty. However, if your theme links use the collection path, signals split and Google may pick a different address.

This article covers one situation only: a product reachable at two addresses. We do not repeat the general duplicate content story here. For that, see our duplicate content guide. Below, we show what happens in your store, what actually causes damage, and what you should check.

In short, the canonical tag helps a lot, but it cannot work alone. Internal links, your sitemap and filter pages must point the same way.

Why does the same product open under both products and collections paths?

Shopify can serve a product in two ways. The first is the product's own address, where the path starts with the products section. The second is the address used when a shopper arrives from a collection. There, the path has the collection name first and the products section after it. In practice, both show the same product page.

There is a reason for this. The theme wants to know which collection the shopper came from. As a result, features such as "previous product" and "next product" can work inside that collection. Shopify's Liquid documentation describes this behavior: the within filter generates a product URL in the context of a given collection.

For example, on example.com the main address begins with the products section. The collection address begins with the collections section, then the collection name, then the same product handle. A crawler sees two separate pages.

So nothing is broken. However, it is a platform design choice. The trouble starts with how those two addresses are presented to search engines.

Source: Shopify Liquid: within filter.

What does the Shopify canonical tag do in this case?

Shopify generates the canonical address of product pages automatically. In Shopify's own words, for products and variants the canonical URL is the default product page with no collection or variant selected. So even a page opened through a collection path declares the main product address as canonical.

A canonical tag says, "this is the address I prefer for this content." According to Google, it is a strong signal. A redirect is stronger, and adding a URL to a sitemap is a weak signal.

One detail matters here. Also, Google states that none of these methods is required. A canonical is a preference, not an order. If Google finds another address more suitable, it can choose that one.

Therefore your first line of defense is Shopify's own tag. You do not need a separate setting for it. Still, do not assume it works. Open a few product pages and confirm that the tag shows the main address.

Sources: Shopify Partners: canonical URLs and Google Search Central: consolidate duplicate URLs.

Why can you still have problems when the canonical tag exists?

Because Google does not look at the tag alone. It also looks at which addresses your site links to most. If your theme uses the collection path on every product card, hundreds of internal links point to the collection address. Meanwhile, the tag points to the main address.

In this conflict, Google makes its own call. Sometimes it follows your tag, and sometimes it does not. Moreover, the decision can differ per product. In one part of your catalog the main address may stay in the index, while in another the collection address does.

There is also a crawling side. When every product has two addresses, Google can visit the same page twice. In a small store this is trivial. In a store with thousands of products and many collections, crawl effort is wasted.

This is why the goal is to support the tag with your internal links.

The conflict looks small, but it grows. Google decides product by product, so results are uneven. Visitors land on different addresses, and that makes reporting and measurement harder.

How do collection links split your internal link signal?

An internal link signal shows how much importance your site gives to a page. Also, the home page, menus, collection pages and related product blocks all create it. If the theme writes all of these links with the collection path, the signal flows to collection addresses and not to the main product address.

Here is an example scenario. A product sits in three collections. Each collection page links to it with its own path. As a result, one product has three collection addresses plus one main address in circulation, and the main address may receive the fewest links.

Google's documentation gives a clear recommendation. When you link inside your site, link to the canonical URL. Consistent linking helps Google understand your preference.

We covered the general logic in our internal linking strategy guide. Here, we focus only on product addresses.

What is the logic of pointing Shopify duplicate product URLs to the canonical address in your theme?

The logic is simple. When the theme links to a product, it should not add the collection context. Instead, it should use the main product address directly. Then the product card, the menu and the related product blocks all show the same address. We explain the concept only and we do not write code.

This change has a cost. Without the collection context, the "previous and next product" navigation on the product page may stop working. In addition, some themes depend on that context. Therefore you should test the change for user experience too.

Practical steps look like this:

  1. Back up the theme files or duplicate the theme.
  2. Find the product card, related products and search results blocks one by one.
  3. Check which address each block generates for its link.
  4. Change the link to the main product address where needed.
  5. Test navigation, cart and checkout on the duplicate theme.
  6. Publish the duplicate theme if everything works.

If editing the theme feels risky, our ecommerce consulting service can run this check with you.

Which link types generate which address?

Links to products come from several places in a store. The default behavior of each place depends on the theme. So the table below is a checklist, not a fixed rule, and you must verify each row in your own theme.

Link sourceAddress it may generateCheck question
Product card on a collection pageOften the collection pathWas the card link changed to the main address?
Related products blockDepends on the themeWhich address does the block output?
Main menu and sub menusThe address you typedIs the menu link the main product address?
SitemapMain product addressDoes any collection path appear?
Product links in blog postsThe address you pastedDid the post use a collection path?
Search resultsDepends on the themeWhich address does the result card use?

After you fill in the table, list the conflicts. Often the problem comes from one product card template, so the fix is cheap, and a single fix then solves hundreds of links at once.

Are variant parameters Shopify duplicate product URLs too?

Yes, technically they are. When a shopper picks a color or a size, a variant parameter can appear at the end of the address. The page content stays largely the same, and only the selected option changes. This address is also a duplicate candidate.

The good news is this. According to Shopify's own explanation, the canonical output for a product URL with a selected variant is the main product page without the variant. So variants merge into one address thanks to the canonical tag.

Two points deserve attention. First, using variant addresses in ads and shares is fine, but keep the main address in your sitemap and internal links. Second, if a variant has a truly separate search intent, such as a completely different model, consider listing it as its own product.

Do not create separate pages for variant addresses. That does not solve duplication, and it makes it bigger.

How do tag filter pages multiply product addresses?

Shopify collections can be filtered by product tags. A tag filtered collection page is a sub view of the collection, and it has its own address. In many themes, the product cards in that view also carry the collection path.

As a result, several addresses can circulate for one product: the main address, the collection path address and an address reached from a tag filtered page. The filter pages themselves also look like copies of the collection.

Filter pages are a separate topic. We explained canonical and robots.txt decisions in our faceted navigation guide. A practical rule is enough here: product cards on filter pages should link to the main product address too.

Google's URL structure documentation suggests reducing unnecessary parameters that do not change content. It also suggests considering crawl limits when filters create excessive variations.

Source: Google Search Central: URL structure.

How do Shopify duplicate product URLs look in Search Console?

In Search Console, duplicate addresses mostly show up in the page indexing report. The report lists addresses that were not indexed because they are duplicates, together with status names. Three statuses stand out for duplicate product addresses.

The first is an alternate page with a correct canonical tag. In Google's documentation, it appears as "Alternate page with proper canonical tag". This is usually not a problem. In addition, it is a merge that works.

The second is a duplicate without a user-selected canonical ("Duplicate without user-selected canonical"). Here the page declares no preference, so Google chooses on its own.

The third is the case where Google chooses a different canonical than the one you declared ("Duplicate, Google chose different canonical than user"). The internal link conflict shows itself most clearly here.

Interface names can change over time. So if you cannot find a status, search for the English name and check the current version on Google's help page.

Source: Search Console Help: Page indexing report.

Which Search Console status is a real warning?

However, not every duplicate status is a problem. A picture where the main product address is indexed and the collection addresses appear as alternate pages is healthy. The real warning is the collection address entering the index in place of the main address.

Check in this order:

  1. Pick a few indexed product addresses.
  2. Inspect each address with the URL Inspection tool.
  3. Compare the user-declared canonical with the Google-selected canonical.
  4. If they differ, check internal links and the sitemap entry for that product.
  5. After the fix, allow time instead of asking for repeated crawls, because Google processes updates on its own schedule.

Seeing a collection address in search results is not a disaster by itself. However, if title and link signals split, your ranking may stay weak. So inspect the conflict first and the result second.

Which product addresses belong in your sitemap?

Keep only canonical addresses in the sitemap. So Shopify lists products with their main addresses, which already matches your canonical preference. The real risk is apps or hand-made lists adding addresses with the collection path.

According to Google, adding a URL to a sitemap is a weak canonical signal. Weak does not mean unimportant, because a wrong signal still creates conflict. So the sitemap and your internal links should show the same address.

We explained sitemaps in our guide on what an XML sitemap is. If Search Console cannot read your file, see the sitemap couldn't fetch error guide.

In short, if you see a collection path in the sitemap, treat it as a warning and find the source.

Should you solve duplicate product addresses with redirects?

In most stores this is not necessary. The collection context serves shopper navigation, and Shopify already generates the canonical tag. A redirect is a strong signal. However, if you redirect the collection path, you may break the theme navigation.

Redirects make sense in a few cases: you came from an older address structure, you changed a product address, or a deleted product page still receives traffic. In those cases a 301 redirect is the right tool. For duplicate product addresses, fix internal links first.

Keep one rule in mind while deciding about Shopify duplicate product URLs: do not build redirect chains. However, each address should reach its target in one step. To map old addresses in bulk, use our redirect mapping tool, and to verify the result, use the redirect checker.

The choice between 404, 410 and 301 for out-of-stock products is a separate decision. We covered it in our out-of-stock product pages guide.

Is blocking collection paths in robots.txt a good idea?

In most cases, no. Robots.txt stops Google from crawling a page. A blocked page also cannot show its canonical tag. So if you block the collection path, Google cannot see that these addresses point to the main one.

Moreover, a blocked address can still enter the index when it receives external links. Because Google cannot read the content, you may end up with an empty looking entry. Also, that is a worse picture than the duplicate problem itself.

A healthier path keeps the addresses crawlable, lets the canonical tag be read and returns internal links to the main address. Use robots.txt only for filter patterns that create real crawl load, and test carefully.

When you prepare the file, our robots.txt generator reduces typing mistakes. Still, try a few addresses before you publish.

Can third party apps break the canonical tag?

They can. So some SEO, filter and theme apps add their own canonical logic. As a result, a page may carry two canonical tags, or the tag may point to a different address instead of the main one. This quietly breaks Shopify's default behavior.

After installing an app, run these checks:

  • Open a product page through a collection path and read the canonical address.
  • Open the same page with a variant selected and confirm that the canonical address does not change.
  • Check that the page has only one canonical tag.
  • See which canonical address the app gives on filter pages.
  • After you remove an app, look for leftover code.

You can use our SEO checker for this. In addition to the tool result, read the page source by hand, because apps sometimes add the tag after the page loads.

For general diagnosis of canonical errors, see our canonical issues guide.

How do you audit duplicate product addresses?

You do not need an expensive tool. Five simple methods are enough for most stores. Applying them in order helps you find the problem and confirm the fix afterwards.

  • The Search Console page indexing report gives the general picture of duplicate statuses.
  • URL Inspection shows the declared and the selected canonical for a single address.
  • The page source lets you read the canonical tag by hand in your browser.
  • The sitemap file shows whether any non-canonical address is listed.
  • A crawl of your own store lists which internal links carry a collection path.

Whichever method you choose, move the result into a table. Columns for product, link source and target address are enough to see the conflicts.

This problem is not unique to Shopify, but each platform creates a different kind of duplicate. For example, cart parameters produce another type, which we examined in our WooCommerce add to cart URLs guide. Media files with their own pages are another topic, covered in our WordPress attachment pages guide.

The shared lesson is the same. Know the addresses your platform generates, set your canonical preference and align your internal links to it.

How much crawl effort do duplicate product URLs use?

Google does not give every site unlimited crawl effort, so Shopify duplicate product URLs matter more in big catalogs. When you offer one product at several addresses, the crawler visits some of them too. In addition, these visits can delay the discovery of new products or updated prices.

In a small store you will not notice. As the number of products and collections grows, the number of addresses multiplies. For example, if each product sits in several collections, the addresses a crawler can meet become several times the product count. Also, this is an example calculation, not a measured value.

So fixing internal links is a good investment for crawl efficiency as well, not only for ranking. If your store is large, watch crawl behavior in server logs or in the Search Console crawl stats. You can also see which addresses get visited with our log file analyzer.

Which product address should you use in blog, ad and share links?

Internal links are not only inside the theme. Blog posts, newsletters, ads and social posts also carry product addresses. When you paste links by hand, you copy the address from the browser bar, and that address is often a collection path.

Change the habit: when you share a product, use the main product address. Then the internal link signal from your blog flows to the right address too. UTM parameters for campaign tracking create another kind of duplicate, but the canonical tag ties them to the main address as well. To build parameters consistently, use our UTM builder.

In addition, scan your old blog posts once. If they carry product links with a collection path, replace them with the main address. In the long run, this is one of the cheapest improvements.

What should you recheck after a theme update?

Theme updates can undo your link fixes. Especially when you move a ready-made theme to a new version, your customized product card template may return to its default. So run a short check after every update.

First, open a collection page and click a product card. Look at the address in the browser bar. Is it the main product address or a collection path? Then try the related products block and the search results in the same way.

Next, read the canonical tag in the page source. Confirm that it is single and that it shows the main address. These three steps take a few minutes, and they need no special tool. If several people work on your theme, write the check into a release checklist. That way nobody forgets it, and a silent regression does not stay unnoticed for months.

How should you prioritize this problem?

Not every store has the same urgency with Shopify duplicate product URLs. To set priority, ask three questions. Is your catalog large? Does Search Console show many products where Google chose a different canonical? Does the main product address missing from rankings affect sales?

If all three answers are yes, fixing internal links is the first job. Otherwise, if only a few products are affected, fix those first and then move to the whole theme. But if you see no conflict, do not break what works, and monitor it regularly.

Also split the change into small steps. That way you see the effect of each step separately. As a principle, gathering signals on one address is a safe investment, while hurting user experience is not. Weigh both together.

Which fix works in which situation?

Not every store needs the same fix. In addition, the table below summarizes the options with their scope. We give no numbers, because the effect depends on your store structure.

FixWhat it doesWhen it fitsWatch out for
Shopify default canonical tagTies collection and variant addresses to the main addressAlready present in every storeApps can break it
Pointing theme links to the main addressGathers the internal link signal on one addressInternal links use the collection pathTest navigation features
Sitemap cleanupRemoves non-canonical addressesAn outside app affects the sitemapNeeds regular checks
301 redirectMoves an old address to a new oneThe address structure changedAvoid chains
Robots.txt blockLimits crawlingOnly for excessive filter patternsCan hide the canonical tag

For most stores, the first two rows are enough. The canonical tag already works, so the remaining job is to align internal links.

In what order should you make these changes?

Measure first, then change. Otherwise you cannot tell what worked. The order below keeps risk low.

  1. Open the page indexing report in Search Console and note the duplicate statuses.
  2. Run URL Inspection on a few products and compare the declared and the selected canonical.
  3. List which address the theme's product links generate, as in the table above.
  4. Check the sitemap and any hand typed menu links.
  5. Change the links to the main product address in a duplicate theme and test navigation.
  6. After publishing, wait a few weeks and compare the report again.

Also, do not change many things at once. With a single change, the result is easier to read.

For the wider ecommerce SEO frame, see our ecommerce SEO product and category pages guide. If your theme and catalog are large, we also run technical reviews within our SEO consulting service.

What are the most common misunderstandings?

Three misunderstandings come up often. Knowing them protects you from needless panic and needless action.

The first: "Google penalizes duplicate content." Google's documentation treats duplicate addresses as a matter of preference and consolidation, not as a penalty. So the issue is dispersed signals, not punishment.

The second: "A canonical tag removes the page from the index." No, it states a preference. Removing a page from the index is a separate action, and you do not need it here.

The third: "I must remove collection paths completely." That may not be possible, and it is not necessary. The goal is not to eliminate addresses. In practice, it is to show your preferred address consistently.

How do you finish with a checklist for your Shopify store?

In the last step, make sure the changes stay in place. A theme update, a new app or a new collection can quietly restore old settings. So do not treat this check as a one time job.

A short checklist does the work:

  • Do product cards link to the main product address?
  • Is the canonical tag single and correct on every product page?
  • Does the sitemap contain any product address with a collection path?
  • Do menu and blog product links use the main address?
  • Does the Google-selected canonical match the declared canonical in Search Console?
  • Did you repeat this check after installing a new app?

Hand pasted links may have left broken addresses behind. Our broken link checker helps you find them fast.

Finally, this article is general information. Platform menu names and behavior can change, so verify details in the Shopify Help Center and in Google Search Central.

Frequently Asked Questions

Is it normal for one Shopify product to have two URLs?
Yes, it is normal. Shopify can open a product under its main product path and under a collection path. The real question is which address your store promotes. The canonical tag points to the main path. However, if theme links use the collection path, signals get mixed and Google may choose a different address. So check your internal links.
Do I need to change internal links if canonical tags exist?
Yes, you should. A canonical tag is a strong signal, but it is not a command. Google's own documentation recommends linking to the canonical URL consistently inside your site. When internal links and the canonical tag point the same way, Google decides more easily and crawls fewer repeated pages. In short, the tag and the links must work together.
Should I block duplicate product URLs in robots.txt?
Usually not. Google cannot crawl a blocked page, so it also cannot read the canonical tag on that page. A healthier path is to point internal links to the canonical URL and let the tag be read. Use robots.txt only for filter patterns that create real crawl load, and test carefully. That way the canonical tag stays visible.
Are variant parameter URLs duplicate content?
A variant parameter opens another view of the same product page, and the content stays largely the same. According to Shopify, the canonical URL is the main product page with no variant selected. Therefore variant URLs count as duplicates, but the canonical tag merges them into one product address. Still, keep the main address in your sitemap and internal links.
How do these duplicates look in Search Console?
Open the page indexing report and look at the canonical and duplicate statuses. Then inspect a single address with the URL Inspection tool. If the user-declared canonical differs from the Google-selected canonical, your internal links or sitemap addresses probably do not match the main product URL. Fix that conflict first, and then give Google time to update.
Should I fix this myself or get help?
In a small store, checking theme product links and Search Console may be enough. If you need to touch theme files, back them up first. In a large catalog or a custom theme, technical SEO support that tests changes in a duplicate theme lowers the risk of mistakes. Measure the current state with reports before you decide.
  • shopify seo
  • duplicate product urls
  • canonical tag
  • collections urls
  • ecommerce seo
  • internal linking
  • search console
Share:
Talha Aslan

Google Partner digital marketing expert. Hands-on with SEO, Google Ads, web design and e-commerce projects since 2012; every post here comes from that experience.

Next project

Let's talk about your project.

Your brief goes straight to Talha Aslan and team: strategy led by Talha, delivery by an experienced team. The first consultation is free; we listen and come back with a clear roadmap.