Skip to content
Have a project in mind?
The Gloria JournalSEO

Canonical tags: fixing duplicate content without hurting SEO

Antique cannon aimed at a landscape of snow-covered mountains

The same content reachable at several addresses is the normal state of most websites, and almost a rule for online shops. Category filters, tracking parameters, http and https versions, product variants: Google ends up with several URLs for one page and has to pick one. The rel="canonical" tag exists to tell it which.

It is neither a penalty to dodge nor a magic fix. It is one signal among several that Google weighs when it groups your duplicates together. What follows covers what the tag really does, how to implement it, what WordPress already handles, and how to confirm in Search Console that Google followed your choice.

What the canonical tag actually does

The tag sits in the <head> of the page and names the reference URL:

<link rel="canonical" href="https://www.example.com/summer-dress/">

Google calls canonicalisation the process by which it selects, from a group of pages it judges identical or very close, the URL that will be shown in results. Its documentation is direct about the status of your declaration: stating a canonical preference is a hint rather than a rule. Google cross-checks it against redirects, sitemap inclusion, protocol (https is preferred to http when the content is equal) and internal linking.

The four canonicalisation methods recognised by Google (Search Central documentation, 2026)
Method Strength of the signal When to use it
301 redirect Strong You are removing the duplicate: the page has no reason to exist on its own.
rel="canonical" tag in the HTML Strong Both URLs must stay reachable (variants, parameters, filters).
HTTP header Link: <URL>; rel="canonical" Strong Non-HTML files such as PDFs, or sites where page markup cannot be edited.
Inclusion in the XML sitemap Weak A useful supplement on large sites; not enough on its own.

The choice comes down to one question: does the duplicate still need to exist for the user? If not, redirect. If yes, canonicalise.

Duplicate content is not a penalty

Google's documentation states that a certain amount of duplicate content on a site is normal and does not breach its spam policies. What the policies target is large-scale, deceptive copying, not the technical duplicates a shop produces by design. The real problem sits elsewhere. With no clear instruction:

  • Google picks the reference version itself, and it is not always the one you want in results — a URL carrying a sort parameter, for instance;
  • internal and external links spread across several addresses instead of concentrating on one;
  • crawling time goes on variants rather than on your new or updated pages.

The usual sources Google lists are regional variants with identical text, separate mobile and desktop versions, http alongside https, sorting and filtering on a category, and staging versions left publicly reachable. Where links have been split across duplicates for years, a backlink audit shows where they actually point before you consolidate.

Implementation rules worth respecting

Always an absolute URL

Google asks for absolute paths. href="/summer-dress/" is ambiguous — which domain, which protocol? — while href="https://www.example.com/summer-dress/" is not. Use exactly the same URL form as in your internal links and your sitemap: same protocol, same subdomain, same trailing slash.

A self-referencing canonical on every indexable page

The reference page should point at itself. Google recommends this explicitly for e-commerce sites: a self-referencing tag on all indexable pages, and those same URLs in the sitemap. It neutralises parameters added by campaigns (utm_source, session identifiers) without you having to anticipate each one.

One tag, in the initial HTML

Since December 2025, Google has specified that canonicalisation happens both before and after JavaScript rendering. The instruction that follows: set the canonical in the server-rendered HTML and never let a script rewrite it. Two contradictory tags, or a tag rewritten client-side, produce unpredictable results.

Canonicals across domains

The tag works across domains, for example when a partner republishes one of your articles verbatim. Google advises against it for syndication when the two pages differ substantially.

E-commerce: variants, filters and pagination

This is where the tag earns its keep, and where mistakes are most common.

Product variants

Google's advice is more nuanced than "send everything to the parent product". It suggests giving each variant an identifiable URL, through a path segment (/t-shirt/green) or a parameter (/t-shirt?colour=green). Where the parameter is optional, the canonical points to the URL without it. Where a variant has its own photographs, description and price, a self-referencing canonical is legitimate. The test: does the content differ enough to justify two separate results in Google?

Faceted navigation

For category filters, a canonical to the unfiltered version is possible, but Google warns it can reduce how much the filtered URLs are crawled over time, without stopping crawling. If those pages have no search value, blocking them in robots.txt is more effective long term. The canonical stays the right tool when filtered pages must remain reachable.

Pagination

A common error from older guides is pointing pages 2, 3 and 4 of a category at page 1. Google asks for the opposite: every paginated page gets its own canonical. The rel="next" and rel="prev" tags are no longer read by Google.

WordPress: what is already handled

WordPress runs 40.3% of the websites measured by W3Techs as of 10 September 2026, which is 58.8% of the sites whose CMS is identified. WordPress core already outputs a self-referencing canonical on posts, pages and custom post types through the rel_canonical() function, introduced back in version 2.9. The common SEO plugins — Yoast SEO, Rank Math, SEOPress — replace it with their own handling, extend it to archives and paginated pages, and allow a manual canonical per item.

On WordPress and WooCommerce, then, custom code is rarely necessary and often risky. A function hooked to wp_head, of the kind that circulates in old tutorials, creates a second tag competing with the one your SEO plugin outputs. View the source of a page and search for rel="canonical". Two tags is a conflict to resolve, not reinforcement. URL structure and canonical handling are among the points a properly scoped audit settles early.

The mistakes that cancel the tag

A badly set canonical is ignored or, worse, sends Google towards a page that does not exist. In an analysis of a little over one million domains published in 2023, Ahrefs found a canonical pointing to an error page on 2.6% of the sites studied (Ahrefs study).

Frequent canonical errors and how to correct them
Error Consequence Correction
Canonical pointing to a 404 Signal ignored; the source page risks dropping out of the index Point to a URL that answers with a 200
Canonical pointing to a redirect Weakened signal, Google has one more step to follow Point straight to the final URL
Chain A → B → C Uncertain interpretation Every page in the group points to the same final URL
Crossed canonicals (A to B, B to A) Google decides on its own One reference page, self-referencing
Canonical and noindex on the same page Contradictory signals Choose: consolidate (canonical) or exclude (noindex)
Canonical pointing to different content Google ignores the tag and chooses for itself Keep canonicals for identical or very close content
Tag in the <body> or duplicated Not taken into account, or unpredictable One tag only, in the <head>

Checking what Google kept

The URL inspection tool in Search Console shows two lines: "User-declared canonical" and "Google-selected canonical". If they differ, Google preferred another version, usually because of the content itself or because your signals contradict each other. On a page with no duplicates, the second line shows the inspected URL: that is normal.

The Page indexing report groups unindexed pages by reason. Three statuses concern the canonical:

  • Duplicate without user-selected canonical: you declared nothing and Google chose alone. Deal with these first.
  • Duplicate, Google chose different canonical than user: your tag was not followed. Compare the two pages and look for what contradicts your choice.
  • Alternate page with proper canonical tag: the duplicate points to an indexed page. Nothing to do.

One point about patience. Since its documentation update of 10 July 2026, Google has indicated that after a fix a page can stay in its duplicate group for up to two weeks, less if the difference in content is clear. There is no point repeating indexing requests before then. If the status has not moved after that, other causes are worth investigating, and indexing monitoring covers that follow-up. Where the cause sits deeper in the site structure, a technical SEO audit is the better starting point.

The canonical tag does not win rankings on its own. It stops Google scattering its signals and showing the wrong address. It is consistency work, not aggressive optimisation.

Common questions

Is a canonical tag required on every page?

No. Google states that a site can work without declaring any canonical. A self-referencing tag on every indexable page is still recommended, because it neutralises URL parameters added by campaigns or sessions. On WordPress, that tag is generated automatically for posts and pages.

Does duplicate content lead to a Google penalty?

No. Google says a certain amount of duplicate content is normal and does not breach its spam policies. The real risk is that Google picks a reference URL that is not the one you want, and that your links end up spread across several addresses.

Canonical or noindex for a shop's filter pages?

If the filtered pages have no search value, Google suggests blocking their crawling in robots.txt. A canonical to the unfiltered category is acceptable, but it only reduces crawling over time. Avoid combining canonical and noindex on one page: the two signals contradict each other.

Why does Google choose a different canonical from mine?

Because the tag is a hint, not a directive. Google compares it with other signals: redirects, sitemap, internal linking, the https protocol, and the actual difference in content between the pages. If your canonical points to a page with different content, or your internal links target another URL, Google decides otherwise.

How long does a canonical fix take to register?

Google indicates that after a fix a page can stay grouped with its duplicates for up to two weeks. The wait is shorter when the difference in content is clear. Check afterwards with the URL inspection tool in Search Console.

Should pages 2, 3 and 4 of a category point to page 1?

No. Google asks for each page in a paginated series to have its own canonical URL. The rel="next" and rel="prev" tags are no longer used by Google, even if other engines may still read them.

This link opens in a new tab.