Shopify SEO

Shopify SEO Explained: Why Google Search Console Shows Two URLs for Your Products

Shopify theme code editor showing how to remove 'within: collection' filter from product URL links in a Liquid snippet for SEO optimization.
Shopify theme code editor showing how to remove 'within: collection' filter from product URL links in a Liquid snippet for SEO optimization.

Demystifying Shopify Product URLs in Google Search Console

As a Shopify store owner, you're constantly monitoring your online presence, and Google Search Console (GSC) is an indispensable tool for understanding how Google sees your site. It's common for merchants, especially those new to the platform or migrating from another, to notice something peculiar: their Shopify product pages sometimes appear with two different URLs in GSC. One is clean and direct (e.g., /products/blue-mug), while the other is longer, including a collection path (e.g., /collections/kitchen-gadgets/products/blue-mug). This can be confusing, even alarming, but as experts in Shopify migrations and optimization at Shopping Cart Mover, we're here to tell you that it's usually not a cause for panic.

Shopify is a powerful and SEO-friendly platform, which is why many businesses choose Shopify to build their online store. However, understanding its nuances, like how it handles URLs, is key to maximizing your search performance. Let's dive into why these dual URLs appear, when they matter, and how to ensure your store is perfectly optimized.

Why Two URLs Appear for the Same Product on Shopify

The existence of multiple URLs for a single product is a common characteristic of many e-commerce platforms, and Shopify is no exception. Here's why it happens:

  • Primary Product URL: Every product on Shopify has a canonical, or primary, URL structure: /products/product-handle. This is the definitive address for your product.
  • Collection-Aware URLs: Shopify themes, particularly older or customized versions, often generate what we call "collection-aware" links. When a customer browses a collection page (e.g., "Kitchen Gadgets") and clicks on a product (like a "Blue Mug"), the link generated might include the collection path: /collections/kitchen-gadgets/products/blue-mug. If that same "Blue Mug" is also in the "New Arrivals" collection, it could also have the URL /collections/new-arrivals/products/blue-mug. A product in five different collections could technically have six different URLs pointing to the same content.

The Hero: Shopify's Canonical Tag

Before you start worrying about duplicate content penalties, here's the crucial bit: Shopify is smart. It automatically implements a robust SEO feature called the canonical tag. For every collection-path URL, Shopify adds a canonical tag in the HTML header that points back to the primary /products/product-handle URL. You can verify this in your theme's theme.liquid file, where you'll typically find {{ canonical_url }}. This tag tells search engines, "Hey Google, this page is a duplicate, but the original, preferred version is over here."

It's also worth checking that product URLs with variant parameters (e.g., /products/blue-mug?variant=12345) correctly canonicalize back to the base /products/blue-mug URL.

"Alternate Page with Proper Canonical Tag": Your Green Light

When you see these collection-path URLs in Google Search Console listed under the status "Alternate page with proper canonical tag," this is actually good news! It means Google has understood your hint, followed the canonical tag, and correctly indexed your main /products/handle URL. Phew! Nothing is broken, and Google is doing exactly what you want it to.

When to Pay Attention: "Duplicate, Google Chose Different Canonical Than User"

While "Alternate page with proper canonical tag" is a sign of health, you absolutely must pay attention if Search Console reports "Duplicate, Google chose different canonical than user." This is a significant red flag. It indicates that Google has ignored your canonical hint and decided that a different URL (perhaps a collection-path URL) is the primary version. This usually happens due to:

  • Conflicting Internal Links: If the vast majority of your internal links point to the collection-path version, Google might interpret this as your preference.
  • Inconsistent On-Page Content: Subtle differences in content that might confuse Google.
  • Product Schema URL Discrepancies: If your Product schema markup specifies a different URL than your canonical tag.

If you encounter this status, investigate immediately. It suggests a deeper inconsistency that could impact your SEO performance.

Why Internal Link Consistency Still Matters (Even When Nothing's Broken)

Even if Search Console shows "Alternate page with proper canonical tag" and your main product URLs are getting impressions, tidying up your internal links is a valuable optimization. Here's why:

  • Crawl Budget Efficiency: Google has a finite "crawl budget" for your site. If it spends time crawling and processing multiple URLs for the same product, it's wasting that budget on pages it won't index. For small stores, this is negligible; for stores with thousands of products across many collections, it adds up significantly.
  • Entity Consistency: Picking one product URL (always /products/handle) as the definitive identity for that product simplifies things for search engines and other systems. Your internal links, sitemap, and on-page Product schema url should all agree with this single URL.
  • Reduced Confusion: While canonical tags are powerful, sending consistent signals across your site reduces any potential for Google to get confused about which URL is the true primary version.
  • User Experience: Consistent URLs create a cleaner, more predictable browsing experience for your customers.

Actionable Steps: Auditing and Fixing Your Shopify Internal Links

The goal is to ensure all internal links point directly to /products/product-handle. Here's how to achieve it:

1. Verify Your Canonical Tag Implementation

First, ensure your canonical tags are correctly implemented and haven't been accidentally removed or overridden. Search your theme code (specifically theme.liquid) for canonical_url and confirm it's within the section, without any duplicate canonical tags rendered by an app.

2. Identify and Fix the within: collection Culprit

The most common source of collection-aware links is your product card snippets. On current Shopify themes (like Dawn), this is often snippets/card-product.liquid. On older themes, it might be snippets/product-grid-item.liquid. The problematic code typically looks like this:

The | within: collection filter tells Shopify to generate a URL that includes the current collection path. To fix this, simply remove the filter:

Important: Always back up your theme before making any code edits!

3. Expand Your Audit Beyond the Main Grid

Don't limit your check to just the main collection grids. Collection-aware URLs can originate from various parts of your store:

  • Featured Collections: Sections highlighting specific collections.
  • Product Recommendations/Upsell Apps: "You might also like" or "Frequently bought together" sections.
  • Search Results: Your store's internal search widgets.
  • Review Widgets: Links from customer reviews.
  • Hardcoded Links: Any links you've manually added within blog posts, landing pages, custom content sections, or navigation menus.

Search your entire theme code for within: collection to catch all instances. For hardcoded links, you'll need to manually update them.

4. Test Your Changes Thoroughly

After making edits, spot-check 5-10 products from different collections. Hover over product cards, click them, and verify:

  • The href attribute on hover should show /products/product-handle (no /collections/ segment).
  • The URL in your browser's address bar after clicking should be /products/product-handle.
  • The canonical tag in the page source (right-click > View Page Source, search for "canonical") should point to the same /products/product-handle URL.

5. Re-check After Theme Updates

Shopify theme updates can sometimes overwrite your custom code changes. Make it a habit to re-verify your internal links after any major theme update to ensure your optimizations remain intact.

What NOT to Do

Resist the urge to add noindex rules or 301 redirects for the collection-path URLs. Shopify's canonical handling is sufficient. Adding redirects can create unnecessary complexity and potentially waste crawl budget on redirect chains. Search Console may also continue to report old URLs until Google thoroughly recrawls them, so patience is key.

Conclusion: Tidying Signals, Not Putting Out Fires

In most cases, seeing two URLs for the same product in Google Search Console on Shopify, especially with the "Alternate page with proper canonical tag" status, means your store is functioning as intended. You're not putting out a fire; you're simply tidying up your SEO signals for better consistency and crawl efficiency.

By ensuring your internal links consistently point to the primary /products/handle URL, you'll provide clearer signals to search engines, optimize your crawl budget, and create a more streamlined experience for both Google and your customers. At Shopping Cart Mover, we specialize in helping merchants optimize their Shopify stores for peak performance, whether you're migrating to Shopify or refining your existing setup. If you have any concerns about your store's SEO or migration strategy, don't hesitate to reach out to our experts.

Use cases

Explore use cases

Agencies, store owners, enterprise — find the migration path that fits.

Explore use cases