SEO, schema, meta tags
Fix Missing Canonical Tag: Add rel=canonical to Every Page
Without a rel=canonical link, Google guesses the canonical URL when duplicates exist, often picking the wrong one. Set a self-referential canonical on every indexable page.
What's happening
The tag in the document head tells search engines which URL is the authoritative version when multiple URLs serve identical or near-identical content. Without a canonical tag, Google has to pick one itself by analyzing internal links, redirects, sitemap inclusion, and duplicate-content heuristics. The choice is not always what you want.
URL variants pile up on real sites. Same content served at http and https. With and without trailing slash. With and without www. With UTM parameters. With session IDs. As campaign URLs. As mobile m.example.com versions. Each variant Google sees is a duplicate, and without canonical guidance Google may consolidate signals to a non-canonical URL, splitting your link equity.
Search Console's Page indexing report shows the 'Google-selected canonical' for every URL in the 'Indexed' set. When that differs from the URL you submitted in the sitemap, you have a canonical problem — either missing tag, conflicting tag, or wrong target.
Why it matters
Link equity dilution. External links pointing to https://example.com/page versus https://www.example.com/page are treated as separate URLs by Google when canonicals are missing. Each accumulates its own ranking signals, and you lose the consolidation benefit.
Duplicate-content suppression. When Google identifies duplicates without an explicit canonical, it picks one and demotes or de-indexes the others. The wrong page may stay in the index, and your preferred URL may be filtered out.
International and faceted-filter pages explode duplicate counts. /products/shoes vs /products/shoes?color=red vs /products/shoes/red can all serve nearly identical content. Without canonicals you get hundreds of soft duplicates per category.
Common causes
- Framework's metadata API does not emit canonical by default.
- The CMS canonical field is empty and there is no fallback.
- Programmatic pages forgot to set canonical in the page-data schema.
- Pagination URLs (?page=2) do not point back to the base URL or self-reference correctly.
- Filter URLs (?color=red) do not canonicalize to the unfiltered version.
- AMP pages do not declare canonical to the non-AMP version (and vice versa).
Detect this on your site
Run a quick scan with the SEO Auditor. The tool surfaces this exact issue with the records and context needed to apply the fix below.
Open SEO AuditorHow to fix it
- 1
Audit which pages lack canonical
Crawl the site and report URLs missing the tag. The SEO Auditor flags these and also reports canonical mismatches (canonical points to a URL that 4xx/5xx, redirects, or is itself canonicalized elsewhere).
- 2
Add a self-referential canonical to every indexable page
On a normal page, the canonical should be the page's own absolute URL with the canonical protocol (https), host (with or without www, pick one and stick with it), and no parameters..
- 3
Canonicalize parameter URLs
URLs with tracking parameters (utm_*, gclid, fbclid) should canonicalize to the parameter-stripped version. Faceted filter URLs (?color=red) should canonicalize either to the unfiltered category, or to themselves if you want them indexed independently.
- 4
Handle pagination correctly
Each page in a paginated series should self-reference (page 2 canonicalizes to itself, not to page 1). Google deprecated rel=prev/next as a discovery signal, but self-referential canonicals on paginated archives prevent duplicate-content collapse.
- 5
Avoid canonical chains
Canonical A pointing to B which canonicalizes to C is a chain. Google may follow up to ~5 hops but treats it as a weak signal. Always point canonical directly at the final preferred URL.
- 6
Verify in Search Console
Use URL Inspection on a sample of URLs and confirm 'User-declared canonical' matches 'Google-selected canonical'. A mismatch means Google overrode your canonical, which usually points to conflicting signals (redirects, sitemap, internal links) you need to align.
Example
<head> <link rel="canonical" href="https://example.com/blog/seo-checklist" /> </head>
Self-referential canonical on the article page
Frequently asked
Yes. A self-referential canonical is harmless on the canonical URL itself and prevents accidental duplicates from URL-parameter variants from picking up ranking signals. It is the lowest-friction defense against canonical confusion.
Yes the Link:; rel=canonical HTTP header is fully supported by Google and is required for non-HTML resources like PDFs. For HTML pages the in-head tag is more common and easier to debug.
No. Google treats rel=canonical as a strong hint not a directive. If conflicting signals (redirects internal links sitemap inclusion) point elsewhere Google may pick a different canonical. Search Console's URL Inspection shows the actually-selected one.
Related fixes
SEO, schema, meta tags
Fix Canonical Self-Reference Errors: Resolve Loops and Mismatches
SEO, schema, meta tags
Fix Duplicate Content: Consolidate URLs With 301 or Canonical
SEO, schema, meta tags
Fix Duplicate Meta Descriptions: Make Each Description Unique
SEO, schema, meta tags
Fix Broken Hreflang: Resolve Reciprocation and 404 Errors