How to Use Canonical Tags Correctly to Avoid SEO Issues

Home / SEO News / How to Use Canonical Tags Correctly to Avoid SEO Issues
Liam Blackledge
20 September 2024
Read Time: 12 Minutes
Article Summary

Canonical tags tell Google which version of a page to index when duplicate or near-duplicate versions exist. This guide covers implementation, common mistakes, and when to let Google handle canonicalisation itself.

Key Takeaways

A canonical tag is a snippet of HTML that tells search engines which version of a page you want indexed when multiple URLs serve the same (or very similar) content. It looks like this: <link rel="canonical" href="https://example.com/page/" />. You place it in the <head> section of the page, and it points to the URL you consider the “real” version. Google then consolidates link equity and ranking signals to that URL instead of splitting them across duplicates.

That’s the textbook explanation. The reality is messier. Most sites have canonical tags already – your CMS probably adds them automatically – and most of the time they work fine without anyone thinking about them. The problems start when they’re set up incorrectly, when they conflict with other signals, or when someone assumes they’re doing more than they actually do. This guide covers what canonicals genuinely solve, the mistakes that cause real damage, and when you’re better off using something else entirely.

What Is Canonicalisation?

Visual representation of canonical tags and URL canonicalisation

Canonicalisation is the process of telling search engines which URL is the definitive version of a page. It exists because the same content can live at multiple URLs without anyone deliberately duplicating anything.

Take a simple product page. It might be accessible at all of these:

  • https://example.com/shoes/blue-trainers/
  • https://example.com/shoes/blue-trainers
  • https://example.com/shoes/blue-trainers/?ref=newsletter
  • http://example.com/shoes/blue-trainers/
  • https://www.example.com/shoes/blue-trainers/

Five URLs. One page. Same content. Without canonicalisation, search engines have to guess which one to index and which ones to ignore. Sometimes they guess right. Sometimes they index the version with tracking parameters, or the HTTP version that should be redirecting to HTTPS, or the one without the trailing slash when you wanted the one with it.

Canonicalisation solves this by pointing Google at the version you prefer. The canonical URL is your answer to the question: “If someone searches for this content, which URL should appear in the results?”

How Canonical Tags Work

Gorilla illustrating how canonical tags work behind the scenes

The canonical tag (formally rel="canonical") sits in the HTML <head> of a page. Every page that isn’t the preferred version includes a canonical tag pointing to the URL that is. The preferred version itself carries a self-referencing canonical – a tag that points to its own URL.

Here’s what that looks like in practice. Your preferred URL is https://example.com/page/. On that page, the canonical tag reads:

<link rel="canonical" href="https://example.com/page/" />

On any duplicate version – say https://example.com/page/?utm_source=email – the same tag appears, pointing to the clean URL:

<link rel="canonical" href="https://example.com/page/" />

When Google crawls the duplicate, it sees the canonical tag and understands: “This page exists, but the version I should index and attribute ranking signals to is over here.”

Self-Referencing Canonicals

Every indexable page on your site should have a canonical tag pointing to itself. This seems redundant – why tell Google that a page is its own canonical? Two reasons.

First, it removes ambiguity. Without a self-referencing canonical, Google has to decide for itself which URL variant to treat as canonical. It usually gets this right, but “usually” isn’t “always.” A self-referencing canonical makes your preference explicit.

Second, it protects against URL parameters. If someone shares your page with tracking parameters appended, or an internal search creates a parameterised version, the self-referencing canonical on the original tells Google to ignore those variants. Without it, Google might index the parameterised version instead.

Most modern CMS platforms add self-referencing canonicals automatically. WordPress does it through plugins like Yoast or RankMath. Shopify adds them by default. If you’re on a custom-built site, check that they’re in place – it’s a common gap.

Canonical Tags Are a Hint, Not a Directive

This is the single most misunderstood thing about canonical tags, and it catches people out constantly.

When you set a canonical tag, you’re making a suggestion to Google. You’re saying “I’d prefer you to index this URL.” Google will usually follow that suggestion. But it doesn’t have to, and sometimes it won’t.

Google has stated this explicitly. The canonical tag is treated as a signal, one of several that Google uses to determine which URL to index. If other signals contradict your canonical – your sitemap points to a different URL, your internal links point somewhere else, the content on the “canonical” page is actually different from the duplicate – Google may override your preference and pick a different canonical.

This matters because people sometimes use canonical tags to solve problems they weren’t designed for. A canonical tag won’t fix genuinely different pages that happen to target similar keywords. It won’t force Google to index a page it considers low quality. And it definitely won’t work if every other signal on your site contradicts it.

The practical takeaway: canonical tags work best when they confirm what the rest of your site’s signals already suggest. They work badly when they’re the only signal pointing in a particular direction while everything else points somewhere else.

When Canonical Tags Actually Matter

SEO professional reviewing canonical tag implementation

Not every site has a canonical tag problem. If you’re running a straightforward brochure site with a dozen pages and no URL parameters, your CMS is probably handling canonicalisation just fine without any intervention. Here’s where canonicals genuinely earn their keep.

HTTP and HTTPS Variants

If your site is accessible at both http:// and https://, canonical tags on the HTTP versions should point to the HTTPS equivalents. Better still, set up 301 redirects from HTTP to HTTPS so the duplicates don’t exist at all. But if redirects aren’t in place for some reason, canonicals are your safety net.

WWW and Non-WWW Variants

Same principle. If www.example.com and example.com both resolve to your site, pick one and canonical the other to it. Again, redirects are the better solution, but canonicals catch anything the redirects miss.

URL Parameters

This is where canonicals do their most useful work. Tracking parameters (?utm_source=, ?ref=, ?fbclid=), sorting parameters on e-commerce sites (?sort=price-asc), session IDs, filter combinations – all of these create new URLs that serve the same content. Canonical tags point them all back to the clean URL.

E-commerce sites get hit hardest by parameter duplication. A clothing site with filters for size, colour, and price can generate hundreds of URL variations for a single product category. Without proper canonicalisation, that’s hundreds of near-identical pages competing with each other in Google’s index.

Trailing Slashes

/page/ and /page are technically different URLs. If both resolve on your site, one needs to canonical to the other. Pick a convention – most sites go with trailing slashes – and stick with it consistently. Ideally, redirects handle this. Canonicals act as backup.

Syndicated Content

If your content is republished on other websites (with permission), the republished version should include a cross-domain canonical tag pointing back to the original on your site. This tells Google that your version is the source, and ranking signals should be attributed to you rather than the syndication partner.

This only works if the republishing site agrees to include the canonical tag. If they don’t, you have no direct way to force it. But legitimate syndication partners – news aggregators, content networks, industry publications – usually will.

Pagination

Paginated content (page 1, page 2, page 3 of a product listing or blog archive) is a common canonicalisation question. The answer: each paginated page should have a self-referencing canonical, not a canonical pointing back to page 1. Page 2 genuinely has different content from page 1 – different products, different articles – so it deserves its own canonical.

Google retired the rel="next" and rel="prev" pagination tags in 2019, so canonical tags and proper internal linking are what you’ve got left. Each paginated page should canonical to itself and link clearly to adjacent pages.

When to Use Something Else

Canonical tags aren’t the right tool for every duplicate content situation. Sometimes a redirect or a different approach is more appropriate.

301 Redirects

If a duplicate URL should never be visited by users or crawlers, a 301 redirect is stronger than a canonical tag. Redirects physically send visitors and search engines to the correct URL. Canonicals just suggest it.

Use redirects when you’re migrating pages, consolidating old URLs, or enforcing a single URL format (HTTPS, trailing slash convention). Use canonicals when the duplicate needs to remain accessible – like a parameterised version of a page that users arrive at through filtered navigation.

Noindex

If a page shouldn’t be indexed at all – not as a duplicate, not in any form – noindex is the right tool. A canonical tag says “index that version instead of this one.” Noindex says “don’t index this page at all.” Different problems, different solutions.

For a deeper look at controlling what search engines can and can’t access, we cover robots.txt in a separate article.

The Relationship Between Canonicals and Duplicate Content

Duplicate content is a broader topic than canonical tags alone can address. Canonicals solve one specific type of duplication: the same content appearing at multiple URLs. They don’t solve thin content, boilerplate pages, or content that’s similar but not identical across multiple pages.

The key distinction: if the pages are genuinely the same content at different URLs, canonicals are the answer. If the pages are different but overlap significantly, you’ve got a content strategy problem that no tag will fix.

How to Implement Canonical Tags

Implementation depends on your platform. The good news is that most CMS platforms handle the basics automatically.

WordPress (Yoast and RankMath)

Both Yoast SEO and RankMath add self-referencing canonical tags to every page by default. You can override the canonical URL for any individual page in the plugin’s settings panel – useful for specific edge cases, but you shouldn’t need to do this often.

If you’re using Yoast, the canonical URL field sits in the “Advanced” tab of the Yoast meta box on each page or post. RankMath puts it in a similar location within its own meta box.

One thing to watch: if you’ve got both plugins installed (it happens), you can end up with duplicate or conflicting canonical tags. Pick one and deactivate the other.

Shopify

Shopify adds self-referencing canonical tags automatically. For products that appear in multiple collections, Shopify canonicalises them to the standalone product URL (/products/product-name) rather than the collection-specific URL (/collections/collection-name/products/product-name). This is generally the right behaviour.

Where Shopify gets tricky is with variant URLs. Products with multiple variants (size, colour) sometimes generate separate URLs with parameters. Check that these canonical back to the main product page.

HTML (Manual Implementation)

If you’re on a custom-built site, add the canonical tag manually to the <head> section of each page:

<link rel="canonical" href="https://example.com/your-preferred-url/" />

Use absolute URLs, not relative ones. href="/page/" won’t work as reliably as href="https://example.com/page/".

HTTP Header Canonicals

For non-HTML content – PDFs, images, documents – you can’t put a canonical tag in the <head> because there is no <head>. Instead, set the canonical via an HTTP response header:

Link: <https://example.com/document.pdf>; rel="canonical"

This is a niche use case, but it comes up on sites that host downloadable resources or serve the same document at multiple URLs.

Sitemap Signals

Your XML sitemap should only include canonical URLs. If a URL appears in your sitemap, Google interprets that as a signal that you consider it the canonical version. Including non-canonical URLs in your sitemap creates a conflicting signal that can confuse the canonicalisation process.

This is one of those “align your signals” situations. Your canonical tags, your sitemap, your internal links, and your redirects should all point in the same direction.

Hreflang and Canonical Tags

If your site serves content in multiple languages or targets multiple regions, hreflang annotations and canonical tags need to work together, not against each other.

The rule is simple but frequently broken: each language/region version of a page should have a self-referencing canonical tag. The UK English page canonicals to itself. The US English page canonicals to itself. The French page canonicals to itself. Hreflang annotations then tell Google the relationship between these versions.

A common mistake is setting canonicals from regional pages back to the “main” language version. If your US page has a canonical pointing to the UK page, you’re telling Google to ignore the US version entirely – which completely undermines the hreflang setup. Each version needs to be its own canonical.

Common Mistakes That Waste Crawl Budget

Most canonical tag problems aren’t dramatic. They don’t cause your site to disappear from Google. But they do waste crawl budget – the time and resources Google allocates to crawling your site – and they dilute the ranking signals that should be concentrated on your preferred URLs.

Canonicalising to a Page That Returns a 404

If your canonical tag points to a URL that doesn’t exist, Google can’t index the canonical version and has to figure out what to do with the duplicate. It usually ignores the canonical tag entirely and makes its own choice. Check your canonicals periodically to make sure the target URLs are live and returning 200 status codes.

Multiple Canonical Tags on One Page

Some CMS configurations, especially sites with multiple SEO plugins or custom theme code, end up with two or more canonical tags in the <head>. When Google sees conflicting canonicals, it ignores all of them and picks its own preferred URL. One page, one canonical tag.

Canonical Chains

Page A canonicals to Page B. Page B canonicals to Page C. This is a canonical chain, and Google might follow it or might just give up and pick its own canonical. Keep it direct: every page should canonical to the final preferred URL, not to an intermediate step.

Canonicalising Substantially Different Pages

A canonical tag tells Google that two pages have the same content. If you canonical Page A to Page B but they have meaningfully different content, Google will likely ignore the tag. Canonicals aren’t a redirect. They’re not a way to funnel authority from one page to a different page. They’re a signal that two URLs serve the same content and one is preferred.

Mixed Signals

This is the most common issue and the hardest to spot without an audit. Your canonical tag says one thing. Your sitemap includes a different URL. Your internal links point to a third variant. Your redirect chain resolves somewhere else entirely. Google receives contradictory information and has to make a judgement call.

The fix isn’t complicated – it just requires consistency. Canonical tags, sitemaps, internal links, and redirects should all agree on which URL is the preferred version of every page.

How to Audit Your Canonical Tags

You don’t need to check canonical tags manually across hundreds of pages. Two tools cover most of what you need.

Screaming Frog

Run a crawl of your site in Screaming Frog and look at the “Canonicals” tab. It shows every page’s canonical tag, flags pages where the canonical doesn’t match the page URL (non-self-referencing), and identifies missing canonicals, multiple canonical tags, and canonical chains.

For most sites, the first thing to check is the “Canonical Link Element 1” column filtered to show non-self entries. These are the pages actively pointing Google somewhere else, and they’re where problems are most likely to hide.

Google Search Console

Search Console’s URL Inspection tool tells you which URL Google has chosen as the canonical for any page on your site. Search for a URL, and under “Page indexing,” you’ll see either “Google-selected canonical” or “User-declared canonical.”

If Google’s selected canonical differs from the one you declared, that’s a signal that something is off. Google is overriding your preference, which means either your canonical is wrong, your other signals are contradictory, or the content on the two pages is different enough that Google doesn’t consider them duplicates.

The “Pages” report in Search Console also flags canonicalisation issues. Look for “Duplicate without user-selected canonical” and “Duplicate, Google chose different canonical than user” in the reasons list. Both indicate pages where your canonicalisation isn’t working as intended.

What a Healthy Canonical Setup Looks Like

When canonicals are working properly:

  • Every indexable page has a self-referencing canonical tag
  • Non-canonical variants (parameterised URLs, protocol variants, trailing slash variants) canonical to the clean preferred URL
  • Your sitemap includes only canonical URLs
  • Internal links point to canonical URLs, not duplicates
  • Google Search Console shows your declared canonical matching Google’s selected canonical for your important pages
  • No canonical tags pointing to 404s, redirects, or noindexed pages

If all of that checks out, your canonicals are fine. Move on to something that’ll have a bigger impact on your rankings.

Getting Your Canonicals Right

For most sites, canonical tags are a “set it up correctly once and monitor occasionally” job. Your CMS handles the basics. Your job is making sure it’s doing what you expect, that nothing is creating conflicting signals, and that edge cases (parameters, syndication, international versions) are covered.

If you’ve run through the audit steps above and found issues you’re not sure how to fix, or if your site has complex canonicalisation needs (large e-commerce catalogue, multiple international versions, legacy URL structures), that’s the kind of thing a technical SEO audit covers. At Gorilla Marketing, canonical tag analysis is part of every audit we run – not just flagging the problems, but prioritising which ones are actually affecting your visibility and which ones you can safely ignore. If you want a clear picture of where things stand, get in touch.

Liam Blackledge
Liam has been in the SEO industry since 2019, cutting his teeth as an SEO Executive before levelling up by joining Gorilla at Manager level in 2023. Specialising in technical SEO, site architecture and content strategy, Liam manages a portfolio of clients across multiple sectors and takes a hands-on approach to every campaign he runs. When he’s not buried in Search Console, he’s either hard at work at the snooker table, or telling anyone who’ll listen that he’s going to start back at the gym.

Related Articles