Skip to content

URL Normalizer

Paste URLs, one per line, and get a clean, comparable form of each one, with a table that shows exactly what was changed.

Processed locally in your browser

Options
URLs are only rewritten as text, never opened. Lowercase host, default ports, dot segments and %XX escapes are always normalized.0 chars · 0 lines
The result will appear here.

What is URL Normalizer?

Two URLs can look different and still point to the same place: HTTP://Example.COM:80/a/../b and http://example.com/b are the same address. URL normalization rewrites a URL into one standard form (RFC 3986 and the WHATWG URL rules) so that duplicates can be found, links compared, and analytics or sitemaps kept consistent.

For each line the tool lowercases the scheme and host, converts internationalized host names to punycode, removes default ports (:80 for http, :443 for https), resolves ./ and ../ segments, decodes unnecessarily encoded characters such as %7E or %41, and writes the remaining percent-escapes in uppercase (%e2%82%ac becomes %E2%82%AC). Optional steps sort the query parameters, drop the fragment, the trailing slash, www. or user:password@, and remove duplicates. Path case is never changed, because /Docs and /docs can be different pages.

How does it work?

  1. Paste one URL per line; lines without a scheme are treated as https:// (or http://, or reported as invalid).
  2. Tick the optional steps you need: sort query parameters, remove the fragment, the trailing slash or www., collapse double slashes, and deduplicate.
  3. Choose whether internationalized hosts are shown as punycode or Unicode.
  4. Copy the normalized list, and read the table to see per URL what changed and which lines were invalid.

Common use cases

  • Deduplicating a crawl export or a list of backlinks that contains the same page written in several ways.
  • Comparing URLs from analytics, a sitemap and a CMS to see whether they really match.
  • Building canonical URLs for rel=canonical tags, redirects or cache keys.
  • Cleaning a link list before importing it, with a clear report of every edit.

Examples

Try this input in the tool above:

Input
HTTP://WWW.Example.COM:80/a/./b/../c/%7Euser/%e2%82%ac?b=2&a=%41&z=%2f#Top
https://münchen.example/Straße?q=1
example.org/docs//guide/?z=1&a=2#
https://user:pass@example.com:443
not a url at all?
Output
http://example.com/a/c/~user/%E2%82%AC?a=A&b=2&z=%2F#Top
https://xn--mnchen-3ya.example/Stra%C3%9Fe?q=1
https://example.org/docs//guide/?a=2&z=1
https://user:pass@example.com/
not a url at all?

Privacy

URL Normalizer runs entirely in your browser. The text or files you provide are processed on your device and are not uploaded, logged or stored on our servers.

Limitations

Normalization is syntactic. It cannot know that a server treats /a and /a/ as the same page, that a parameter is irrelevant, or that http and https serve identical content, so review the optional steps before applying them.

Frequently asked questions

Does the tool open or check my URLs?

No. URLs are only parsed and rewritten as text inside your browser. Nothing is requested from the network, so it works on private or internal addresses too.

Why is the path not lowercased?

Only the scheme and host are case-insensitive. Paths and query values are case-sensitive on most servers, so lowercasing them could point to a different page.

Which percent-encoded characters are decoded?

Only unreserved characters (letters, digits, - . _ ~), because decoding them never changes meaning. Escapes such as %2F, %20 or %26 stay encoded, and their hexadecimal digits are uppercased.

More tools in Developer Tools →