Canonical URL Generator
Normalise a URL and generate its rel=canonical tag, with tracking parameters stripped and every change listed explicitly.
Upgrade http:// to https://. On by default — a canonical should point at the version search engines prefer.
Remove www. from the hostname. Off by default: this changes WHICH URL is authoritative, so only enable it if your site actually serves the bare domain.
Drop a trailing / from the path. Off by default: the slash can be significant to the server, so only enable it if /about/ and /about are the same page.
Drop every query parameter, not just tracking ones. Only useful if parameters never change the page content.
Removes 26 known tracking parameters (utm_*, fbclid, gclid and similar) that never change page content.
Sorts the remaining parameters alphabetically so the URL is stable and reproducible.
Convert the path to lowercase. Off by default: URL paths can be case-sensitive on the server, so only enable it if /About and /about are the same page.
How it works
- Paste the URL that has duplicates — for example the version carrying utm_* campaign tags.
- Choose what to normalise: scheme, www, trailing slash, query handling and path case. The result updates as you type, and every change is listed below.
- Copy the canonical URL or the ready-to-paste link tag into the page head.
Frequently Asked Questions
What does the generated tag actually do?
It tells search engines which URL is the authoritative version of a page when several URLs show the same content. It is a HINT, not a redirect: the tag does not change your site’s behaviour, and visitors reaching a duplicate URL still see that URL.
What is normalised by default?
The scheme is upgraded to https, a default port is dropped, tracking parameters such as utm_*, fbclid and gclid are removed, remaining parameters are sorted for stability, and the #fragment is dropped since the server never sees it. Every change is listed so nothing happens invisibly.
Why does it not strip www or trailing slashes by default?
Because both change WHICH URL is authoritative. If your server does not actually serve that form, the canonical points at a URL that redirects or 404s, which is worse than having no canonical at all. Both are available as explicit options.
Should the canonical keep query parameters?
Only if they genuinely change the page content — a pagination or filter parameter might, a session token does not. The tool warns when parameters survive so you can make that call deliberately.