SEO Course · Module 4 · Lesson 3

Canonical URLs & Redirects: One Address Per Page

The same page living at multiple URLs is not an edge case — it’s the default state of the web. www and non-www, http and https, tracking parameters, trailing slashes: every site accumulates duplicates, and every duplicate splits your signals. Canonicals and redirects are the two tools that consolidate them back into one strong address.

Why Duplicates Happen to Every Site

To a human, these are obviously one page. To a crawler, they’re six different URLs:

One page, six addresses
https://yourdomain.com/photo-cake-guide/
https://www.yourdomain.com/photo-cake-guide/
http://yourdomain.com/photo-cake-guide/
https://yourdomain.com/photo-cake-guide      ← no trailing slash
https://yourdomain.com/photo-cake-guide/?utm_source=whatsapp
https://yourdomain.com/photo-cake-guide/?replytocom=41

Remember from Lesson 1.1: Google indexes one version of each page and picks that version itself if you don’t. Why letting Google guess is costly:

  • Split authority: backlinks and internal links spread across variants instead of concentrating on one URL — the same dilution as cannibalization (Lesson 2.3), but self-inflicted at the URL level.
  • Crawl waste: every duplicate variant crawled is budget not spent on real content (Lesson 4.1).
  • Wrong pick: Google may choose the parameter-laden ugly variant as the “real” one — appearing in results, in citations, everywhere.

rel=canonical: Nominating the Real URL

The canonical tag is one line in the page’s <head> naming the preferred URL for that content:

The canonical tag
<link rel="canonical" href="https://yourdomain.com/photo-cake-guide/" />

Every variant carries the same tag pointing to the one true URL — including the true URL itself (a self-referencing canonical, standard best practice: it neutralises parameter variants automatically, since /page/?utm_source=whatsapp serves the same HTML with the same canonical pointing to the clean URL).

Three things to understand about how canonicals behave:

  1. It’s a hint, not a command. Google usually honours it, but overrides canonicals that contradict stronger evidence — if your internal links, sitemap and redirects all point one way and the canonical another, Google follows the evidence. (GSC reports this as “Duplicate, Google chose different canonical”.) The lesson: keep all signals consistent — link to canonical URLs, sitemap only canonical URLs (Lesson 4.2), canonicalise to the same.
  2. Both URLs stay accessible. A canonicalised variant still loads for visitors — it’s only search engines consolidating signals to the nominee. That’s the fundamental difference from a redirect.
  3. WordPress handles the default case. Rank Math outputs self-referencing canonicals on every page automatically, and lets you set a custom canonical per post when you deliberately republish content (e.g. a syndicated article pointing back to the original).

Redirects: Forwarding the Address

A redirect is server-level forwarding: request the old URL, get sent to the new one. Visitors never see the old page — it effectively ceases to exist as a destination. Two codes matter:

CodeMeaningUse when
301 — permanent“Moved for good — transfer everything.”The default for SEO: deleted/merged pages (Lesson 2.3’s cannibalization fix), changed slugs, http→https, www/non-www consolidation, site migrations. Passes the old URL’s link authority to the destination.
302 — temporary“Moved for now — the original will return.”Genuinely temporary situations: maintenance, A/B tests, seasonal swaps. Signals Google to keep the original indexed.
The everyday mistake: using 302 where 301 belongs — many plugins and developers default to 302. Google eventually treats long-lived 302s as 301s, but “eventually” costs weeks of split signals. When a move is permanent, say so: 301.

Chains and loops

A redirect chain (A→B→C→D) accumulates when redirects pile up over years — old slug to new slug to https to new structure. Each hop adds latency, wastes crawl budget, and Googlebot abandons long chains entirely (around 5 hops in practice, with signal decay before that). A redirect loop (A→B→A) breaks the page for everyone. The fix for both: point every old URL directly at its final destination — when you change URL structure, update existing redirects rather than stacking a new hop on top.

Site-wide consolidation (set once, verify today)

The www/non-www and http/https variants from our six-address example should be resolved by one site-wide 301 rule, so every variant lands on your one true format in one hop. Most hosts and WordPress setups configure this at installation — verify rather than assume: type all four combinations (http/https × www/non-www) into your browser and confirm each lands on the same final URL. If any variant loads without redirecting, that’s a genuine split-site problem your host’s support can fix in minutes.

The Decision Table: Canonical vs Redirect vs Noindex

Three tools now sit in your kit — canonical (this lesson), redirect (this lesson), noindex (Lesson 4.1). Each answers a different situation:

SituationToolWhy
Old page merged into a better one; old URL has no reason to exist301 redirectNobody should land there; authority transfers to the survivor.
Changed a post’s slug301 redirectSame content, new address — forward everything (Rank Math offers to create this automatically on slug change).
Same content must stay reachable at variants (parameters, print views)CanonicalVisitors need the variants to work; search engines consolidate to one.
Republishing your article on another platformCanonical (on the copy, pointing home)Both copies live; yours gets the credit — if the platform supports it.
Page must exist but never rank (thank-you pages, internal utility, thin archives)NoindexIt’s not a duplicate of anything — it just doesn’t belong in results.
Two pages overlap but both hold distinct valueNeither — differentiateThat’s the cannibalization fix from Lesson 2.3: re-point one at a different cluster.
Quick mental shortcut: Should visitors still reach the old/variant URL? No → redirect. Yes, and it duplicates another page → canonical. Yes, and it’s just not for search → noindex.

Finding Your Problems

  1. GSC Page indexing report: “Duplicate without user-selected canonical” and “Duplicate, Google chose different canonical” list exactly where your signals are missing or losing. “Page with redirect” entries in your sitemap point to Lesson 4.2 violations.
  2. The four-variant browser test (above) for site-wide consolidation.
  3. Per-URL: URL Inspection in GSC shows both the canonical you declared and the one Google selected — disagreement means inconsistent signals to trace.
  4. Redirect checker: any free online redirect checker (or your browser’s Network tab) reveals a URL’s full hop chain — run your oldest, most-linked URLs and collapse any chains you find.
Try it yourselfRun the four-variant test on your domain right now (http/https × www/non-www). Then pick your three oldest important pages and run each through a redirect checker: any chain of 2+ hops, update the first redirect to point directly at the final destination. Twenty minutes, and you’ve fixed the two most common canonical/redirect problems on the web.

Key Takeaways

  • Duplicates are the web’s default state — www/protocol/parameter/slash variants split authority, waste crawl, and let Google pick your URL for you.
  • The canonical tag nominates the one true URL — self-referencing on every page, honoured when all your other signals (links, sitemap) agree with it.
  • Canonical keeps variants accessible; redirect eliminates them — that’s the core difference.
  • 301 for anything permanent (the SEO default), 302 only for the genuinely temporary; collapse chains to single hops.
  • The shortcut: visitors shouldn’t reach it → redirect; should, but it duplicates → canonical; should, but not for search → noindex.
  • Verify with the four-variant test, GSC’s duplicate reports, and a redirect checker on your oldest URLs.
Scroll to Top