How Google picks one URL from a duplicate cluster
Google groups pages with the same or very similar primary content into a cluster and then picks one canonical from that cluster. Declaring a canonical is optional. Without one, Google picks the best version itself. When a site does declare one, the declared canonical is a hint to Google, not a rule, and Google can select a different page.
Two more behaviors follow from the cluster. Google prefers the HTTPS version of a page over an equivalent HTTP version. Once the choice is made, Google crawls the canonical page most often and crawls the duplicates less often to reduce crawl load.
Google's documentation says some duplicate content on a site is normal and does not violate Google's spam policies.
Strong, weak and wrong canonical signals
Google weighs several inputs. They do not count equally.
Redirects. Google treats redirects as a strong signal that the redirect target should become canonical.
Sitemaps. Listing a URL in a sitemap is only a weak canonical signal.
Combined signals. Signals stack: using two or more methods together makes Google more likely to pick the preferred URL.
Declaring the canonical
Google recommends absolute, not relative, paths in
rel="canonical". It supports relative paths, but they can cause problems.After a URL mapping, Google says each new URL should carry a self-referencing
rel="canonical"link.Google recommends that internal links point to the canonical URL, not to a duplicate URL.
For same-language regional variants (for example US and UK English), Google recommends using canonicalization together with
hreflang.
Tools Google warns against
Google advises against using
robots.txtfor canonicalization, because disallowed URLs can still be indexed without their content.Google does not recommend
noindexto steer canonical selection within one site, becausenoindexremoves the page from Search entirely.
For canonical setup in a Next.js app, see the Next.js SEO guide.
Canonicals as a CMS field at Pagepro
When Pagepro takes over a site, it moves canonical generation to one place, with absolute, self-referencing URLs by default. Each Sanity document also gets a canonical override field, so SEO people can fix a single page without a deploy, as part of headless CMS development.
Sources
- What is URL CanonicalizationGoogle · developers.google.com
- How to specify a canonical URL with rel="canonical" and other methodsGoogle · developers.google.com
- Site Moves and MigrationsGoogle · developers.google.com