By SitemapFixer Team
Updated September 2026

Canonical Issues: How to Find and Fix Them

Check your canonical tags freeRun Canonical Check

What is a canonical issue?

A canonical issue is when the URL you want Google to show for a page isn't the one Google picks, or when your own signals disagree about which URL is the main version.

  • •Check any URL in URL Inspection: compare user-declared and Google-selected canonical.
  • •Redirects and canonical tags are strong signals; a sitemap entry is a weak one.
  • •Most fixes make your links, sitemap and tags agree on one URL.
  • •After a fix, Google may keep pages grouped as duplicates for up to two weeks.
Free: check canonical tags on 30 of your sitemap URLs→

When several URLs show the same or very similar content, Google groups them and picks one to show in search: the canonical. You can tell Google which one you prefer, but Google’s documentation is clear that it might still choose a different URL, for reasons such as content quality or technical signals. A canonical issue is any gap between the URL you want and the one Google uses, or any spot where your own signals contradict each other.

How Google Picks a Canonical

Google lists the ways to state your preference, in order of strength:

  • Redirects: a strong signal that the redirect target should be canonical.
  • rel="canonical" (a link tag in the page, or an HTTP header for files like PDFs): a strong signal.
  • Sitemap inclusion: a weak signal.

These signals stack: using two or more that agree makes your preferred URL more likely to win. Most canonical issues come from signals that disagree, such as a canonical tag pointing to one URL while internal links and the sitemap use another.

How to Find Canonical Issues

1. The Page indexing report

In Search Console, open Indexing > Pages. Three reasons are about canonicals: “Alternate page with proper canonical tag” (Google agreed with you; usually fine, see what it means), “Duplicate without user-selected canonical” (no canonical declared, so Google chose), and “Duplicate, Google chose different canonical than user” (you declared one, Google picked another). Look at the example URLs for a shared pattern: one template, one parameter, one section.

2. URL Inspection

Inspect an affected URL and compare User-declared canonical with Google-selected canonical. If they differ, Google’s troubleshooting guide suggests asking whether Google’s choice actually serves searchers better before you fight it.

3. The page source

Two quick checks catch the most common mechanical problems: more than one canonical tag, and a canonical that points at a redirect or error page.

# How many canonical tags does the page have? (should be 1)
curl -s https://example.com/page | grep -o 'rel="canonical"' | wc -l

# What does the canonical target return? (should be 200, no redirect)
curl -sI https://example.com/the-canonical-url | head -1

Our free canonical checker runs the first kind of check on 30 URLs sampled from your sitemap and flags pages whose canonical points to a different URL.

Common Canonical Issues and How to Fix Each

No canonical tag at all

Pages with no canonical leave the choice to Google. On a unique page that’s often harmless, but any page reachable through parameters (?utm_source=, ?sort=) can end up in “Duplicate without user-selected canonical.” Adding a self-referencing canonical (the page names its own clean URL) to each indexable page removes the guesswork.

This is also what the audit warning “No canonical link tag found on your homepage” means: your home page has no rel="canonical". It isn’t an error Google reports, but the fix takes a minute: add one line to the home page’s head, using your preferred protocol and host.

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

The canonical names the wrong version of the URL

http instead of https, www instead of no-www, a missing or extra trailing slash, or different letter case. Each is a separate URL to Google. Make the canonical match the exact final URL, and enforce the same version site-wide with 301 redirects so every signal agrees. Google recommends absolute URLs in canonical tags; relative ones work but can cause problems, for example if a test site gets crawled.

Canonical chains

Page A points to B, and B points to C. Canonicals are hints, and a chain weakens them. Point every page straight at the final URL.

Canonical to a redirect or a dead page

If the canonical target returns a 301, 404 or 410, you’re asking Google to prefer a URL that isn’t a real page. Point canonicals only at URLs that return 200 and can be indexed.

More than one canonical tag

Usually two systems each add one: a theme and an SEO plugin, or a server-rendered tag plus one injected by JavaScript. On WordPress, core already prints a canonical on single posts and pages (it has since version 2.9), and SEO plugins such as Yoast replace it; a theme that hard-codes its own adds a second. Pick one source and switch off the rest. Google’s JavaScript guide says a canonical injected with JavaScript is picked up when the page is rendered, but it doesn’t recommend the approach, and multiple or conflicting canonical tags can lead to unexpected results.

Different methods name different URLs

For example, the sitemap lists /shoes?color=red while the page’s canonical says /shoes. Google’s guidelines say not to specify different canonical URLs for the same page through different methods. Keep only canonical URLs in the sitemap.

Paginated pages pointed at page 1

Canonicalizing page 2, 3 and so on to page 1 tells Google they’re duplicates, so items linked only from later pages can go undiscovered. Give each page in a series its own self-referencing canonical. More in pagination and canonical tags.

Language versions without hreflang

Near-identical pages for the US, UK and Australia are easy for Google to cluster as duplicates. Google’s troubleshooting guide points to hreflang annotations so the right version shows in each region. Each language version keeps its own self-referencing canonical; see hreflang and canonical tags.

Problems outside your templates

Google’s list also includes a misconfigured server returning another domain’s content, hacked pages that insert a cross-domain canonical or redirect, syndicated copies of your articles (Google advises partners to block indexing of the copy rather than rely on canonicals), and copycat sites. If Google picks a URL on another domain, check the Security Issues report and your server config before anything else.

Fixing Canonical Issues at Scale

When hundreds of URLs share an issue, the cause is almost always one setting or one template, so sort affected URLs by pattern rather than fixing them one by one. Typical sources: the site address setting in the CMS after an HTTPS move, a template that builds the canonical from the wrong variable, or a plugin that adds a second tag.

For a WordPress site still pointing at http after moving to https, WP-CLI fixes the site address and stored links in one pass (back up the database first):

wp option update home "https://example.com"
wp option update siteurl "https://example.com"
wp search-replace "http://example.com" "https://example.com" --all-tables --report-changed-only

To stop the same issue coming back after a theme or plugin update, add a small check to your deploy pipeline that fails when a key page doesn’t have exactly one canonical tag:

#!/bin/bash
for PAGE in https://example.com/ https://example.com/pricing https://example.com/blog/a-post; do
  COUNT=$(curl -s "$PAGE" | grep -o 'rel="canonical"' | wc -l)
  if [ "$COUNT" -ne 1 ]; then echo "FAIL: $PAGE has $COUNT canonical tags"; exit 1; fi
done
echo "PASS"

After You Fix It

Google’s guide sets expectations: even after you fix the content, Google might keep pages in a duplicate cluster for up to two weeks, and pages split out faster when the difference between them is clear and significant. Use Request indexing in URL Inspection for your most important URLs only, since it’s subject to quotas. Then recheck the same URLs in URL Inspection rather than watching the report totals.

What Not to Do

  • Don’t use robots.txt to canonicalize. Google may still index blocked URLs without their content, and it can’t read their canonical tags.
  • Don’t use the URL removal tool for it. Google notes it hides all versions of a URL from search.
  • Don’t point canonicals at URL fragments (#section); Google generally doesn’t support them.
  • Don’t mix signals. One URL per page in the canonical tag, the sitemap, internal links and redirects.

FAQ

Do canonical issues hurt rankings?

They can hurt the page you care about. Signals such as links get consolidated on the URL Google picks, so if it picks the wrong one, a different URL (or a weaker version) is what appears in results.

Is “Duplicate, Google chose different canonical than user” an error?

It’s a status, not a penalty. Check whether Google’s choice is reasonable; if not, make your other signals agree with your canonical tag, or make the pages more clearly different.

Can I use a canonical tag and noindex on the same page?

They send opposite messages, so it’s best to pick one. See canonical vs noindex.

Check canonical tags across your sitemap
Free - finds your sitemap and tests 30 URLs live
Run Canonical Check Free

Related Guides