Canonical URL Generator
Build clean <link rel="canonical"> tags in bulk.
Paste one or many URLs and get a ready-to-paste <link rel="canonical" /> tag for each. Normalises the protocol, trailing slash, tracking parameters (utm_*, gclid…) and #fragments, flags anything that needs review, and lets you copy or download all tags. Runs fully in your browser — nothing is uploaded.
How to use Canonical URL Generator
Paste Your URLs
Enter one URL per line, or comma-separated, into the free online canonical URL generator, or click Load example to see how messy links get normalised.
Set Slash Rule
Choose whether to keep, add, or remove trailing slashes so every canonical URL follows one consistent convention across your entire website.
Tune The Options
Toggle force HTTPS, remove query strings, strip utm and tracking parameters, and drop hash fragments to build clean, deduplicated canonical URLs.
Pick Output Style
Select a self-closing or standard link tag format so the generated rel canonical markup matches your site's HTML coding style exactly.
Review Flagged URLs
Check the needs-review list for links that lack a protocol, still use http, or kept query parameters, then fix anything that warrants a second look.
Copy Or Download
Copy the ready-to-paste canonical tags or download them as a text file, then drop each link rel canonical into the head of its matching page.
Frequently asked questions
Where do I put the canonical tag?
Inside the <head> section of the page's HTML, ideally near the top. Each page should have exactly one canonical link element. If you use a CMS like WordPress, an SEO plugin (Yoast, Rank Math) usually outputs it for you — only add a manual tag if one isn't already present.
Should a page be its own canonical?
Usually yes. Most indexable pages should self-reference — the canonical URL points to the page's own clean address. You only point elsewhere when the content genuinely duplicates another URL (e.g. a print view, a tracking-parameter variant, or an HTTP duplicate of an HTTPS page).
Why does the tool strip utm_ and gclid parameters?
Tracking parameters create dozens of URL variations for the same page. If each variant self-canonicalised, you'd splinter your ranking signals. Stripping them (the default) collapses every tracked link back to one canonical URL. You can turn this off, or remove the whole query string, in the options.
What does “needs review” mean?
The URL is usable but has something worth checking — it had no protocol (we assumed https), still uses http, kept query parameters, or has an unusual host. Anything that can't be parsed into a valid http(s) URL at all is marked invalid and left out of the output.
Should the URL have a trailing slash or not?
Either is fine — what matters is being consistent. example.com/page and example.com/page/ are different URLs to a crawler, so pick one form site-wide. Use the “Trailing slash” option here to add or remove them in bulk so your canonicals all match.
What is a canonical tag and why does it matter for SEO?
A canonical tag (<link rel="canonical">) tells search engines which URL is the 'master' version when the same or similar content is reachable at several addresses. It consolidates ranking signals onto one URL and prevents duplicate-content dilution — essential when tracking parameters or www/https variants exist.
What happens if two pages point to the same canonical?
That tells Google they're duplicates and the canonical URL is the one to index and rank; the other is treated as a copy. Use this deliberately for print views or parameter variants — but never canonicalise genuinely different pages to one URL, or the others may drop from the index.
Is anything sent to a server?
No. URLs are parsed and normalised entirely in your browser with JavaScript — nothing is uploaded, logged or stored.
Related tools — On-Page SEO
- Keyword Extractor — Find the top keywords & phrases in any text.
- Anchor Text Analyzer — Audit your link anchor text distribution for SEO.
- Google SERP Snippet Preview — Preview your title & meta description in Google.