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:
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:
<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:
- 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.
- 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.
- 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:
| Code | Meaning | Use 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. |
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:
| Situation | Tool | Why |
|---|---|---|
| Old page merged into a better one; old URL has no reason to exist | 301 redirect | Nobody should land there; authority transfers to the survivor. |
| Changed a post’s slug | 301 redirect | Same 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) | Canonical | Visitors need the variants to work; search engines consolidate to one. |
| Republishing your article on another platform | Canonical (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) | Noindex | It’s not a duplicate of anything — it just doesn’t belong in results. |
| Two pages overlap but both hold distinct value | Neither — differentiate | That’s the cannibalization fix from Lesson 2.3: re-point one at a different cluster. |
Finding Your Problems
- 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.
- The four-variant browser test (above) for site-wide consolidation.
- Per-URL: URL Inspection in GSC shows both the canonical you declared and the one Google selected — disagreement means inconsistent signals to trace.
- 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.
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.