A canonical tag is a short piece of HTML in a page’s head section that tells search engines which URL is the preferred, main version of that page when the same or very similar content can be reached at more than one address. It looks like this: <link rel="canonical" href="https://www.example.co.uk/oak-worktops/">.
How canonical tags work
Websites create duplicate URLs far more often than their owners realise. The same product page can be reached with and without a trailing slash, with tracking codes added (?utm_source=newsletter), with filter or sort options (?colour=oak&sort=price), through several category paths, or on both http and https. To a search engine each is a separate URL showing the same content, which is a form of duplicate content.
The canonical tag tells search engines which of these addresses to treat as the original. Signals such as links pointing to the duplicates are then consolidated on the chosen URL, and that is the address shown in results. A page can, and usually should, point to itself; this is a self-referencing canonical, and it guards against stray parameter versions.
Crucially, Google treats the canonical tag as a strong hint, not a command. It weighs the tag alongside redirects, internal links, sitemaps and whether the pages really are duplicates. If the signals disagree, Google may pick a different canonical, and Search Console will report “Duplicate, Google chose different canonical than user” in the Page indexing report.
Why it matters
Without clear canonicals, ranking signals can be split across several versions of one page, the wrong version can appear in results (such as a URL with a tracking code), and crawlers waste time on copies. For UK online shops with faceted navigation, where every filter combination creates a new URL, this can run to thousands of near-identical pages. For service businesses, it often shows up when a page builder or booking plugin creates printable or parameter versions of key pages.
Common mistakes
- Pointing every page’s canonical at the homepage, which tells Google to ignore most of the site.
- Canonical tags that point to a URL that redirects, returns an error or is set to noindex, sending mixed signals.
- Canonicalising paginated pages (page 2, page 3) to page 1, which hides the products or posts listed on later pages.
- Using a canonical where a 301 redirect is the right tool, such as when an old page has been permanently replaced.
- Linking internally to the non-canonical version, for example menus pointing to http or to a URL with parameters.
- Two different canonical tags on one page, often one from the theme and one from an SEO plugin.
How to act on it
View the source of your key pages and search for “canonical”: there should be exactly one tag, using the full https address you want indexed. Then open the Page indexing report in Google Search Console and look for the duplicate and alternate canonical reasons; each shows example URLs to investigate.
Make the rest of the site agree with your canonicals: link internally to the canonical URL, list only canonical URLs in your XML sitemap, and redirect true duplicates such as http to https. Most CMSs and SEO plugins set self-referencing canonicals automatically, so problems usually come from templates, filters or plugins that override them. Untangling canonicals on a larger site, especially a shop, is part of my technical SEO service.
