Why one page has many URLs
The same content often answers at more than one address: with and without www, with a trailing slash or without, with tracking parameters such as ?utm_source=x or ?ref=badge, in a print view, or sorted a different way. To a search engine each of those is a separate URL that looks like a duplicate.
Without guidance, Google picks one itself. It usually picks well, but it may split signals across copies or show an address you did not intend.
How to set it
Every indexable page should carry a self referencing canonical: the clean, absolute URL of the page itself. Duplicates point their canonical at the original. Keep it consistent with your sitemap, your internal links and your redirects. If those disagree, Google treats the canonical as a hint and may ignore it.
A canonical is not a redirect. Visitors still see the duplicate. Use a 301 when the old address should no longer be used at all.
Common mistakes
Pointing every page's canonical at the homepage, which tells Google the rest of the site is a copy. Using a relative URL that resolves wrongly. Canonicalising a page to a URL that is noindexed or redirects. Putting the canonical in the body instead of the head. Each of these sends a conflicting signal.
Checking canonicals at scale
Crawl your site and compare each page's canonical with its own URL. Pages that canonicalise elsewhere should be true duplicates. In Search Console, the Pages report lists "Duplicate, Google chose different canonical than user", which means Google disagreed with your tag, usually because internal links or the sitemap point somewhere else.
Example
A listing reached at /launch/acme?ref=badge carries <link rel="canonical" href="https://abacklaunch.com/launch/acme">, so the badge clicks build signals for the clean URL.
Questions people ask
- Does Google always follow the canonical tag?
- No. It is a strong hint. Google may choose a different canonical when your sitemap, internal links or redirects point somewhere else.
Related terms
- 301 redirectA 301 redirect is an HTTP response that tells browsers and search engines a page has moved permanently to a new URL. Search engines move the old URL's signals to the new one.
- NoindexNoindex is a directive that asks search engines to keep a page out of their results. It is set with <meta name="robots" content="noindex"> or an X-Robots-Tag HTTP header.
- XML sitemapAn XML sitemap is a file that lists the URLs you want search engines to crawl and index, optionally with the date each page last changed.