Canonical URL

A tag naming the one true version of a page, so duplicate URLs stop competing with each other in search.

telling Google which page is the real onethe master URLcanonical tagrel canonicalcannonical urlthe tag that stops duplicate pages competingwhich version of the page countspreferred URL for a page

See it

Live demo coming soon

What it is

The same content usually lives at several URLs: with and without a trailing slash, http and https, www and bare domain, plus every ?utm_source, ?ref, and filter combination. A canonical tag (<link rel='canonical' href='...'>) names the one version you want indexed, so ranking signals pile onto a single URL instead of splitting across near-identical copies.

Every indexable page should carry a self-referencing canonical pointing at its own clean absolute URL. Point elsewhere only when the content genuinely duplicates another page: a paginated or filtered variant, a syndicated repost pointing back at the original, a print view, a product reachable through two category paths. Search Console's Page Indexing report shows the URL Google actually picked, which is the only opinion that counts.

Gotchas: a canonical is a hint, not a directive, and Google overrides it when your signals conflict (internal links, sitemap entries, and redirects all vote too). Do not use it as a soft noindex, since the canonical target is what gets indexed. And the worst version of the bug is a template that hardcodes the homepage or the same URL on every page, which quietly de-indexes the entire site.

Ask AI for it

Add canonical URLs across this site. Emit a <link rel='canonical'> in the head of every indexable page pointing at its own absolute https URL with the site's chosen host (www or bare, pick one), the chosen trailing-slash convention, and all tracking or filter query parameters stripped. Have paginated, filtered, and duplicate variants canonicalize to the primary page, keep noindex pages out of the canonical set, and make sure the canonical, the internal links, the sitemap entry, and any redirect chain all agree on the same URL.

You might have meant

duplicate content301 redirectnoindexindexingslug

Go deeper