By Updated

URL Normalizer

Bulk-normalise URLs against RFC 3986: lowercase scheme/host, strip default ports, remove dot segments, canonicalise percent-encoding, dedupe and sort query parameters, and optionally strip tracking parameters.

Interactive tool

Input

Normalisation rules

Output

Paste URLs on the left to see them normalised here.

What is the URL Normalizer?

A bulk URL normalisation tool that applies RFC 3986 syntax-based rules: lowercase the scheme and host, strip default ports, collapse dot segments, canonicalise percent-encoding, sort/dedupe query parameters, plus opt-in cleanups like stripping UTM tags. Paste up to 1,000 URLs and get a per-row diff of exactly which rules fired.

How to Use the URL Normalizer

  1. 1Paste your URLs into the left textarea (one per line)
  2. 2Toggle the rules you want applied: force HTTPS, strip fragment, dedupe query params, strip UTM/gclid/fbclid, change the query-sort order
  3. 3Watch the per-row results update live with a chip for each rule that fired
  4. 4Copy the cleaned URLs from the output, or download the full CSV with original/normalised/applied/error columns
What you get

Key features

RFC 3986 syntax-based normalisation

Lowercase scheme and host, strip default port, remove dot segments, decode unreserved percent-triplets, uppercase remaining triplets: all per the spec.

Marketing-friendly cleanups

Optional toggles for stripping UTM, gclid, fbclid, mc_eid, and a curated list of common third-party tracking parameters.

Per-row diff

For each URL we list the exact rule names that fired (force-https, strip-utm, dedupe-query, ...) so you can verify the transformation.

CSV download

One-click export of original / normalised / applied / error columns for re-importing into your sitemap, redirect map, or analytics tool.

Trailing slash policy

Force trailing slash, strip trailing slash, or preserve whatever the user typed.

Bulk limit safeguard

Caps batches at 1,000 URLs so the page stays responsive even on long lists.

Why normalise URLs?

Search engines, analytics platforms, and CDN cache keys all hash URLs as strings: a single trailing slash difference is enough to split traffic across two cache entries. Normalising at ingest time gives you stable URLs that consolidate ranking signals, share cache hits, and de-duplicate analytics rows.

Common use cases

  • Cleaning a redirect map before importing into Apache or Nginx
  • De-duplicating a list of inbound links before contacting webmasters
  • Generating a stable canonical column for a sitemap.xml
  • Auditing UTM-tagged ad URLs before consolidating campaign metrics
  • Building a normalised seed list for a crawler so /a vs /a/ does not fetch twice

RFC 3986 §6: what counts as "equivalent"

  • Syntax-based normalisation (§6.2.2) is what we apply by default: case normalisation, percent-encoding normalisation, and path segment normalisation. Two URLs that differ only in those dimensions point at the same resource.
  • Scheme-based and protocol-based normalisation (§6.2.3) is out of scope here. We never assume http and https serve the same content.

Choosing a query-sort policy

  • Preserve order: safest for apps that rely on parameter order (most do not).
  • Alphabetical: strongest deduplication, recommended for canonical URLs.
  • Group duplicates: keeps the original order but moves duplicate keys adjacent to each other.
Pro tips

Tips & best practices

Pair with the Canonical URL Generator

Once your URLs are normalised, the Canonical URL Generator turns each one into a drop-in <link rel="canonical"> snippet.

Strip UTM only when consolidating with organic

If your analytics platform attributes by URL string, keep UTMs. Strip them only for canonical/internal URLs.

Decide on trailing slashes once

Pick a policy and stick with it across your whole site. Force a trailing slash for directory-like paths or strip them for files: mixed policies fragment indexing.

Built for trust

Privacy & security

This tool runs entirely in your browser. URLs never leave your device.

Frequently Asked Questions

What is URL normalization?

URL normalization (canonicalisation) transforms an input URL into an equivalent canonical form. RFC 3986 §6 defines syntax-based rules: lowercase scheme/host, strip default ports, collapse dot segments, canonicalise percent-encoding.

Why should I strip UTM parameters?

For canonical URLs, yes: UTM tags identify a campaign, not a resource, so two URLs that differ only in UTMs point to the same page. Strip them when consolidating ranking signals or de-duplicating analytics. Keep them in user-facing redirect rules if you still need the attribution.

Is the trailing slash significant?

It depends on the server. Most modern web servers treat /path and /path/ as different URLs and serve them independently. Pick one policy per site and apply it uniformly to consolidate caching, indexing, and analytics.

How many URLs can I normalise at once?

1,000 URLs per batch. The cap keeps the page responsive on lower-end devices. For larger batches, run the tool in chunks or pipe through the underlying lib/url-canonical primitives in your own script.

Does the tool send my URLs to a server?

No. The URL Normalizer is fully client-side. URLs are never transmitted off your device.