WriteMySEO / Blog / Why Google Ignores Your rel=canonical and Picks Another URL
SEO technology

Why Google Ignores Your rel=canonical and Picks Another URL

How Google clusters duplicate URLs and selects a representative, which signals outweigh your rel=canonical, and how to diagnose overrides with the URL Inspection API.

rel="canonical" is a hint, not an instruction. Google has documented this for years, and Search Console has a coverage status dedicated to the outcome: Duplicate, Google chose different canonical than user. If you have ever shipped a canonical tag, watched it get indexed correctly for a week, and then found the parameterized version ranking instead, you have seen the hint lose an argument with other signals.

The useful question is not "how do I force it." There is no forcing. The useful question is which signals feed the selection, which ones you are accidentally sending in the other direction, and when an override is actually a problem worth fixing.

What canonicalization is doing inside the index

Google does not store one record per URL it crawls. It groups URLs whose content it considers equivalent into a duplicate cluster, then selects one member as the representative — the canonical. Signals associated with the other cluster members, including links, consolidate onto that representative, and it is the URL Google normally shows in results.

Two consequences follow from the clustering model, and both explain behavior that looks broken:

Google also documents a separate serving-time behavior: with valid hreflang annotations, it may swap in a locale-appropriate cluster member for a given user even though the canonical is unchanged. That is not a canonicalization failure, and it is a common source of false alarms in international setups.

Which signals actually influence the choice

Google has never published weights, and the honest position is that only the relative ordering is observable. What is documented, plus what is consistently reported by Google's search relations team, points to roughly this hierarchy:

SignalStrengthStatus
301/308 redirectVery strongDocumented as a canonicalization method
rel="canonical" (link tag or HTTP header)Strong hintDocumented as a hint, not a directive
Internal linking pattern across the siteStrong in aggregateReasonable inference from observed behavior
hreflang cluster consistencyModerateDocumented as influencing canonical/serving
Sitemap inclusionWeakDescribed by Googlers as a weak hint
HTTPS over HTTPTiebreakerDocumented preference
Shorter, cleaner URLTiebreakerReported by Googlers; weight unclear, treat as contested

The practical reading: your canonical tag is one loud voice, and a site's internal links are a thousand quiet ones. When every navigation link, breadcrumb, and sitemap entry points at URL B while the canonical tag on B points at A, Google is receiving a contradiction and will resolve it however its own confidence scoring lands. Frequently that is not in favor of your tag.

The patterns that make your canonical lose

Most overrides trace back to a small set of self-inflicted contradictions.

  1. The canonical target is not indexable. Pointing at a URL that returns 404, redirects elsewhere, carries noindex, or is disallowed in robots.txt invalidates the hint. Google cannot elect a representative it cannot fetch or is told not to index.
  2. Multiple canonicals on one page. A CMS emits one tag, a plugin or a CDN worker emits another, or the HTML tag disagrees with the Link: HTTP header. Google's documentation is explicit that specifying multiple canonicals will likely cause all of them to be ignored.
  3. Canonical injected client-side. If the tag is written by JavaScript after the initial HTML, it depends on rendering, and it will not be considered if the rendered value conflicts with what was in the raw HTML. If a canonical exists in the source, the rendered override is the ambiguous case — do not rely on it.
  4. Relative URLs and protocol drift. A relative canonical resolving against an unexpected base, or an http:// canonical on an https:// page, produces a target that is itself part of another cluster.
  5. Pagination collapsed to page one. Pointing every page of a series at page one asserts duplication that does not exist. Google typically ignores it, and if it does not, deep items lose their discovery path.
  6. Staging or preview domains leaking canonicals into production. Rare but catastrophic when it happens, because the declared target is usually unreachable and the whole section falls back to Google's own judgment.

How to see Google's choice at scale

Search Console's Pages report tells you the aggregate, but the URL Inspection API gives you the per-URL comparison. The indexStatusResult object returns both values:

{
  "inspectionResult": {
    "indexStatusResult": {
      "verdict": "PASS",
      "coverageState": "Duplicate, Google chose different canonical than user",
      "userCanonical": "https://example.com/shoes/running",
      "googleCanonical": "https://example.com/shoes/running?color=black"
    }
  }
}

Google documents a quota of 2,000 inspections per day and 600 per minute per property, which is enough to sweep a template's worth of URLs, not an entire large site. Sample by template instead: pull 100–300 URLs per page type, request each one, and store userCanonical, googleCanonical, and coverageState. The output you want is a mismatch rate per template, not a list of individual anomalies. A single mismatch is noise. Forty percent of your product pages resolving to a parameterized variant is a faceted-navigation problem with a canonical symptom.

Deciding whether an override matters

Not every override is worth engineering time. Ask three questions:

What to change

Stop treating the canonical tag as the fix and treat it as the declaration that must be corroborated:

canonicalizationindexingURL Inspection APISearch Console

WriteMySEO produces marketing content, not legal, medical, financial, or compliance advice. Figures cited reflect publicly reported industry data at time of writing and shift over time.

Get started

We write this well about your industry, every month.

AI-drafted, human-reviewed SEO content on a flat subscription. Blog posts, metadata, schema, and internal links, shipped on a monthly rhythm.

See plans

More from the blog