A canonical URL is the address you designate as the authoritative version of a page when the same or very similar content is reachable at more than one URL. It is declared with a rel="canonical" link tag in the page head, telling search engines which version to index and which to treat as a duplicate.
Ecommerce sites generate duplicate URLs constantly and mostly unintentionally. Filter and sort parameters, tracking parameters, pagination, session identifiers, products appearing in several categories, and variant URLs for colour or size all produce distinct addresses serving substantially the same content.
Why Canonical URLs Matter for Ecommerce
When the same content sits at ten URLs, search engines have to decide which one to rank. Left to guess, they may pick a filtered version with a parameter string, or split signals across all ten so none ranks as well as one consolidated page would.
The scale of this on a real store is easy to underestimate. A category page with five filters and three sort options can generate hundreds of crawlable URLs from one page of products. Search engines spend crawl budget working through them, and on a large catalogue that means genuinely new products get discovered more slowly.
Canonical tags resolve this by consolidating the signals. Links pointing at any variant are credited to the canonical version, and indexing settles on the page you actually want to rank.
It is worth knowing that a canonical is a strong hint rather than a directive. Google may ignore one it considers wrong — typically when the canonical points to a page whose content differs substantially from the one declaring it. Search Console's page indexing report shows where Google has selected a different canonical than you specified, and those discrepancies are worth reviewing.
Real-World Example
An apparel retailer with about 3,000 products found only 1,100 indexed. Search Console showed thousands of URLs categorised as "Duplicate without user-selected canonical".
The cause was their filter system: every combination of size, colour, price band, and sort order produced a crawlable, indexable URL with no canonical tag. Crawl budget was being consumed almost entirely by filter permutations of a few popular categories, and new products were taking weeks to appear in the index.
They added self-referencing canonicals to clean category and product URLs, pointed all filtered variants back to the unfiltered category page, and blocked the least useful parameter combinations in robots.txt. Indexed pages rose to about 2,800 over two months, and new product indexing dropped from weeks to a few days.
How to Improve / Optimize Canonical URLs
- Add a self-referencing canonical to every important page. Product pages, category pages, and content pages should each declare themselves.
- Point filtered and sorted variants at the base page. Filter combinations rarely deserve independent indexing.
- Handle product variants deliberately. If colour variants have meaningfully different content and search demand, let them be canonical themselves; if they are near-identical, consolidate.
- Use absolute URLs. Relative canonicals are a common and avoidable source of error.
- Keep canonicals consistent with your sitemap. Sitemaps should list canonical URLs only; a mismatch sends conflicting signals.
- Review Search Console's canonical discrepancies. Where Google chose differently, it is telling you something about how it reads your content.
Canonical URLs in A/B Testing
Canonicals matter directly for split URL testing, where variants live at separate addresses. Each variant should carry a canonical pointing at the original URL, so ranking signals consolidate on the page you intend to keep and the test does not fragment your indexing.
Google's guidance on testing is straightforward: use temporary redirects rather than permanent ones for split tests, canonicalise variants to the original, do not cloak, and do not run tests indefinitely. Client-side testing avoids most of this entirely, since all variants share one URL — which is how CustomFit.ai runs experiments by default, leaving canonical structure untouched.
Run smarter A/B tests with CustomFit.ai — 14-day free trial, no credit card required.