Canonical Tags in Shopify
How Shopify auto-generates canonicals, the collection-versus-product URL behavior, and how to customize the tag in theme.liquid.
BigCommerce writes a self-referencing canonical on most storefront pages automatically, but faceted search and theme customizations are where it breaks.
Yes, on the page types that matter most. BigCommerce automatically inserts a rel="canonical" link element into the <head> of storefront pages built on modern Stencil themes, and it does so on product pages, category pages, web pages (content pages), and blog posts. In each case the canonical is self-referencing: it points at the URL currently displayed in the browser's address bar, which is the platform's default behavior rather than something a store owner has to type in page by page.
That said, treat "automatic on the main page types" as reliable but not gospel. BigCommerce does not publish a single authoritative Help Center article that enumerates exactly which page types get an automatic canonical and precisely which URL is chosen in every situation. The BigCommerce glossary page on canonical URLs explains the concept and confirms that multi-category products are a canonical use case, but it stops short of documenting the platform's own automatic logic in full. So the claim that BigCommerce sets a self-referencing canonical by default rests on observed behavior and reputable third-party SEO write-ups, not on a definitive vendor spec. The gap matters most on edge cases like filtered URLs, pagination, and alternate category paths, which is exactly where store owners report problems.
Practically, this means you should verify canonical behavior per store and per theme rather than assuming every BigCommerce install behaves identically. Two stores on different theme versions, or one store before and after a theme update, can differ in what they emit.
This is BigCommerce's single most important canonical behavior, and arguably the reason the platform needs canonical tags at all. A product in BigCommerce has one canonical product URL, something like /product-name/. Historically, the same product could also be reached through category-path URLs, since the storefront can expose a product under whichever category it's assigned to. Without a canonical tag, that would create multiple indexable URLs for one piece of content: a textbook duplicate-content problem.
BigCommerce's answer is to point the product page's canonical tag at the single primary product URL regardless of which category link the visitor followed to get there. Whether a shopper arrives via /category-a/product-name/ or /category-b/product-name/, the canonical in the page's <head> should consolidate ranking signals onto the one clean /product-name/ URL. That consolidation, often described as preserving "link value," is the entire point of the tag on an ecommerce catalog: a product can legitimately live in several categories for merchandising reasons without splitting its authority across several indexable URLs.
The practical guidance from SEO practitioners working on BigCommerce stores is straightforward: rely on the product's self-referencing canonical to the clean product URL, and make sure your internal linking and any custom URL edits don't inadvertently create competing indexable paths. If a product genuinely appears reachable through multiple category paths, every one of those paths should carry a canonical tag pointing to the same preferred product URL — which is what the platform is designed to do automatically. Audit a sample of multi-category products periodically to confirm that's actually happening on your store.
How you influence the canonical on BigCommerce depends heavily on which theme era your store runs. Legacy Blueprint themes used panel-style template variables, and the canonical was emitted through a global placeholder commonly referenced as %%GLOBAL_CanonicalLink%% in the page <head>. If a store is still running a legacy Blueprint theme, that variable, or its absence, is where the canonical is controlled.
Current Stencil themes (Cornerstone and its derivatives) work differently. They use Handlebars/Paper templates, and the canonical link is generally injected by the platform into the rendered <head> rather than hand-authored through a single documented Handlebars variable in the stock theme. The <head> region in Stencil is assembled from template files such as templates/components/common/head.html plus platform-injected head content. Do not assume the Blueprint-era %%GLOBAL_CanonicalLink%% placeholder is the live mechanism on a Stencil theme; that syntax belongs to the older system. If you need to inspect or change canonical output on Stencil, view source or use browser dev tools to confirm what the platform is actually emitting first. If you do need to override it, edit the theme's head.html or relevant template to add or replace a <link rel="canonical" href="..."> tag carefully, because adding a manual tag while the platform already injects one produces two competing canonicals. Some third-party guides show adding code like <link rel="canonical" href="{{product.url}}"> to product.html or category.html; understand that as a customization pattern, not stock behavior, and it carries real duplicate-canonical risk if applied without checking what's already rendered.
For most store owners, the more accessible lever is the per-product SEO panel in the control panel, roughly under Products, then the product's Edit screen, then an Other Details or Search Engine Optimization section. There you can set the Page Title, Meta Description, Search Keywords, and Custom URL. Changing the Custom URL changes the product's canonical URL, because the canonical follows whatever URL is assigned to the product. BigCommerce can automatically create a 301 redirect from the old URL to the new one when you edit a Custom URL, typically via a checkbox or option offered at save time; confirm the redirect actually exists afterward under Server Settings, 301 Redirects. Note what BigCommerce does not give you: there is no per-page free-text "canonical URL" override field in the standard SEO panel the way some other platforms provide. You influence the canonical indirectly, through the Custom URL, not by typing an arbitrary canonical target into a dedicated field. An arbitrary canonical target requires theme-level customization instead. Exact screen labels can shift slightly between control-panel versions and object types, so verify the current wording in your own store rather than assuming a fixed layout.
BigCommerce's Faceted Search / Product Filtering feature, available on Pro and Enterprise plans, generates URLs with query parameters as shoppers apply filters for price, brand, and other attributes, producing addresses like /category/?price=...&brand=.... These parameterized filter URLs are a classic source of duplicate and near-duplicate content, and they can burn crawl budget fast on a catalog with many filter combinations.
In a well-behaved setup, the canonical on a filtered category view points back to the clean, unfiltered category URL, so the near-infinite combinations of filter parameters don't get indexed as separate pages. Whether BigCommerce reliably strips filter parameters from the canonical, though, is exactly the kind of behavior that has been reported inconsistently in practice. One commonly cited issue is that BigCommerce sometimes includes URL parameters in the self-referencing canonical instead of pointing to the clean base URL. That means a filtered view can end up self-canonicalizing to its own parameterized address rather than consolidating back to the category page, which defeats the purpose.
Given that inconsistency, don't take the platform's behavior on faith. Audit real filtered URLs on your own store using dev tools or Google Search Console's URL Inspection tool to confirm what canonical is actually emitted for parameterized pages. Recommended mitigations include making sure faceted and filter pages canonicalize to the base category URL, applying noindex to heavily filtered permutations that offer no unique value, and controlling parameter handling more broadly. Sorting and pagination parameters deserve the same scrutiny, since they can create the same kind of URL sprawl.
Several recurring mistakes show up across BigCommerce stores.
?... query string instead of the clean URL, splitting ranking signals across variants.<link rel="canonical"> is added in head.html or product.html while the platform is already injecting one, leaving two canonicals in the same page that search engines may end up ignoring entirely.noindex and parameter controls are the better tool for genuinely large filter spaces.%%GLOBAL_CanonicalLink%% mental model to a Stencil theme, or vice versa.It adds a self-referencing canonical automatically on the main storefront page types on Stencil themes, including product pages, category pages, web pages, and blog posts. BigCommerce hasn't published a definitive spec covering every edge case, so verify behavior on filtered, paginated, or otherwise unusual URLs rather than assuming it's always correct.
You don't set an arbitrary canonical target directly. BigCommerce has no free-text canonical override field in the standard SEO panel. Instead you edit the product's Custom URL under its SEO settings, and the canonical follows that assigned URL. If you need a canonical pointing somewhere other than the product's own URL, that requires theme-level customization.
It shouldn't under normal behavior; a product's canonical is meant to point at its single primary product URL regardless of which category path a visitor used to reach it. If you're seeing something else, check for theme customizations that manually set a canonical, and confirm the product's assigned Custom URL is what you expect.
It can. Filter, sort, and price-range parameters generate many URL variants of the same category, and there's a reported BigCommerce bug where those parameters leak into the self-referencing canonical instead of the canonical pointing back to the clean category URL. Audit filtered URLs directly and consider noindex or parameter controls for large filter spaces rather than relying on canonicals alone.
Only on legacy Blueprint themes. Current Stencil themes generally have the canonical injected by the platform into the rendered head rather than through that specific Blueprint-era template variable. Don't assume that placeholder is live on a Stencil theme; check the rendered source directly to confirm what's actually being emitted.
How Shopify auto-generates canonicals, the collection-versus-product URL behavior, and how to customize the tag in theme.liquid.
How to switch on canonical tags for Magento products and categories, and why the built-in setting does not fix layered navigation.
WooCommerce adds no canonical layer of its own; it relies on WordPress and your SEO plugin. The real work is taming filter, sort, and pagination URLs.