Why the canonical tag exists
In e-commerce one product is often reachable at several URLs: through different categories, with
sorting parameters, with filters, with UTM tags. A search engine treats every unique URL as a
separate page. Without a canonical, link equity is scattered across the duplicates instead of
concentrating on one page.
Example: a Nike trainer product page is reachable at all of these addresses:
/catalog/shoes/nike-air-max-270
/catalog/men/nike-air-max-270
/catalog/shoes/nike-air-max-270?sort=popular
/catalog/shoes/nike-air-max-270?utm_source=email
Without a canonical, the engine may index all four as independent pages. With one, it knows the
first is the main version and the rest are variants of it.
Where to place canonicals in e-commerce
| Scenario | The problem | The fix |
|---|---|---|
| A product in several categories | Several URLs with identical content | Canonical to the main category |
| Pages with UTM parameters | An endless supply of new pages | Canonical to the parameter-free URL |
| Pagination (/page/2, /page/3) | Duplicate listings | Canonical to the first page, or a self-canonical |
| HTTP and HTTPS versions | The whole site duplicated | 301 redirect plus a self-canonical on HTTPS |
| Filters and sorting | Parameter duplicates | Canonical to the clean category URL |
Technical details
The canonical goes in the <head> of the HTML document:
<link rel="canonical" href="https://example.com/catalog/shoes/nike-air-max-270" />
Or in the HTTP response header, for PDFs and other non-HTML resources:
Link: <https://example.com/catalog/shoes/nike-air-max-270>; rel="canonical"
Important: if the canonical and robots.txt contradict each other — the page is blocked from
crawling but carries a canonical — the engine cannot read the tag and may index the duplicate
anyway. Make sure canonical pages are open to crawling.
Common mistakes
- The canonical points at a redirecting page — the engine sees a chain and may not apply the tag
- Different canonicals for the same page in different systems — one URL in the HTML, another in
the sitemap - A canonical pointing at an empty or 404 page — automatically ignored
- No canonicals on faceted search pages — every filter combination creates a duplicate