Home / URL normalizer
URL normalizer
See exactly how a messy URL becomes its canonical form, one rule at a time, or paste a whole list and find which URLs are really the same page. Everything runs in your browser.
Result
https://www.example.com/shop/~sale/?color=blue&size=L
- Input
HTTP://Www.Example.COM:80/shop/./mugs/../%7Esale//Index.html?utm_source=news&size=L&color=blue#reviews
- RFC 3986Lowercase the scheme and host
http://www.example.com:80/shop/./mugs/../%7Esale//Index.html?utm_source=news&size=L&color=blue#reviews
- RFC 3986Decode percent-encoded unreserved characters (%7E → ~)
http://www.example.com:80/shop/./mugs/../~sale//Index.html?utm_source=news&size=L&color=blue#reviews
- RFC 3986Remove the default port (:80, :443)
http://www.example.com/shop/./mugs/../~sale//Index.html?utm_source=news&size=L&color=blue#reviews
- RFC 3986Resolve "." and ".." segments
http://www.example.com/shop/~sale//Index.html?utm_source=news&size=L&color=blue#reviews
- SEOCollapse repeated slashes (//)
http://www.example.com/shop/~sale/Index.html?utm_source=news&size=L&color=blue#reviews
- SEODrop the #fragment (never sent to the server)
http://www.example.com/shop/~sale/Index.html?utm_source=news&size=L&color=blue
- SEOUse HTTPS
https://www.example.com/shop/~sale/Index.html?utm_source=news&size=L&color=blue
- SEODrop index files (index.html, index.php…)
https://www.example.com/shop/~sale/?utm_source=news&size=L&color=blue
- SEORemove tracking parameters (utm_*, gclid, fbclid…)
https://www.example.com/shop/~sale/?size=L&color=blue
- SEOSort query parameters alphabetically
https://www.example.com/shop/~sale/?color=blue&size=L
Two kinds of normalization
Safe (RFC 3986, section 6). Lowercasing the scheme and host, uppercasing percent-escapes, decoding unreserved characters like %7E, removing default ports and resolving ./ and ../ never change which resource a URL names. Any server treats the before and after the same.
SEO choices. HTTPS vs HTTP, www vs bare, trailing slashes, query order and tracking parameters can serve different content, so the web treats them as different URLs. You decide which form is canonical, then enforce it with redirects and rel="canonical". The path's case is the classic trap: /Page and /page are different URLs on most servers.
Why duplicates matter
Google groups URLs with the same content into a cluster and picks one as canonical, using signals you control. Google Search Central lists them in rough order of strength: redirects, rel="canonical", and inclusion in the sitemap. When the signals disagree, Google chooses for you.
A normalized list shows how many real pages hide behind your logged or crawled URLs, and which variants still resolve without redirecting. Paste the variants into the bulk checker to confirm each one lands on the normalized form in one hop.
Questions
What is URL normalization?
Rewriting a URL into a standard form so that different spellings of the same address compare as equal. RFC 3986 defines safe steps (case, percent-encoding, default ports, dot segments); SEO normalization adds site-specific choices such as HTTPS, www and trailing slashes.
Is sorting query parameters safe?
For most sites, yes: ?a=1&b=2 and ?b=2&a=1 return the same page. A few applications treat order as meaningful, so check before redirecting on it. It is always safe for comparing URLs in a list.
Which tracking parameters are removed?
utm_* parameters, gclid, gbraid, wbraid, fbclid, msclkid, dclid, yclid, Mailchimp mc_cid/mc_eid, _ga/_gl, igshid, ref_src and srsltid. They identify campaigns, not content.
Does Google normalize URLs itself?
Partly. Google ignores fragments and handles obvious host and protocol duplicates, but it still has to crawl variants to learn they are duplicates. Clear canonical signals save that work and keep the URL you want in results.