Canonical URLs: why duplicate pages hurt you
The same page at several addresses splits its ranking and confuses crawlers. What a canonical URL is, how duplicates appear, and how to fix each.
The short answer
Most pages can be reached at more than one address without anyone intending it: with and without www, over http and https, with and without a trailing slash, with tracking parameters, through filters and pagination. To a search engine each address is a separate page with identical content, and it has to guess which one is real. It may guess wrong, it splits the credit from links between the copies, and it spends its crawl on duplicates instead of new content. A canonical URL is your declaration of the one official address per page. Fix the causes with redirects and consistent linking; declare the canonical for the duplicates that must exist.
The five common sources of duplicates
| Source | Example | Fix |
|---|---|---|
| Host variants | www and non-www | Permanent redirect to one form, at the platform or network layer |
| Protocol | http and https | Redirect all http to https; HSTS |
| Trailing slash | /about and /about/ | Pick one; redirect the other; link consistently |
| Query parameters | /page?utm_source=newsletter | Canonical tag pointing at the clean address |
| Pagination, sorting and filters | /products?sort=price&page=2 | Canonical to the base page or self-referencing canonicals per page, depending on the case; keep filter combinations out of the index |
Doing it properly
- Choose the canonical form for the whole site: protocol, host, trailing slash convention.
- Redirect everything else to it with permanent redirects, configured once at the platform or network layer.
- Link internally only to canonical addresses; never to variants.
- Generate a self-referencing canonical tag on every page, from one rule in the build, so no page is forgotten.
- List only canonical addresses in the sitemap.
- For parameters, filters and pagination, decide per case what the canonical should be, and keep pure filter combinations out of the index.
- Check in the search console which addresses are indexed and whether any duplicates are being chosen over your canonicals.
Why it is easy on a well-built static site
The canonical form is one rule in the build: every page’s canonical tag is generated from its path and the site’s base address. Redirects for host, protocol and slash live in one configuration file at the platform. The sitemap is generated from the same paths. There is no page-by-page setting to forget, and a new page inherits the right behaviour the moment it exists.
What this means for you
Every page should have exactly one official address, reached by redirect from every variant and declared in its own head. Set the rule once, configure the redirects once, generate the tags from the build, and keep only canonical addresses in the sitemap and internal links. Duplicates stop diluting your rankings, crawlers spend their time on pages that matter, and campaign links stop creating copies of your site.
Frequently asked questions
Does duplicate content get a site penalised?
Rarely penalised, routinely diluted. Search engines pick one version to index and may pick the wrong one, split link credit between versions, and waste crawl budget on copies. The result is weaker rankings for no benefit. Canonicals and redirects resolve it without drama.
We use tracking parameters in our campaign links. Are those duplicates?
Yes: the same page with a query string is a different address. A canonical tag pointing at the clean address tells search engines to treat them as one, and analytics still reads the parameters. Every page with campaign traffic needs it.
Which version should be canonical: with or without www, with or without trailing slash?
Either, consistently. Pick one form for the whole site, redirect every other form to it with a permanent redirect, link to it everywhere internally, and declare it in the canonical tag. The choice matters far less than the consistency.
Sources
- Google Search Central: Consolidate duplicate URLs (accessed 2026-09-11)