URL Parser & Query String Editor

Break any URL into its parts — scheme, subdomain, registrable domain, TLD, port, path segments, query and fragment — then edit the parameters and rebuild it.

Analytics dashboard showing URL traffic data

Photo by Scott Graham on Unsplash

URL parser and query string editor

Query parameters

KeyValue
Updated: 2 August 2026Read: 7 minMethod: WHATWG URL parsingRuns: 100% in your browser

Key takeaways

  • Scheme and host are case-insensitive; path, query and fragment are not.
  • Parameter order changes the URL byte-for-byte, so it changes caching and indexing even when the page is identical.
  • The fragment is never sent to the server — it exists only in the client.

The anatomy of a URL

RFC 3986 defines a URI as a sequence of components, most of them optional. Take this one apart:

https://[email protected]:8443/en/products?color=red#reviews
\___/   \__/ \_________________/ \__/\____________/ \_______/ \_____/
scheme  user      hostname       port     path        query   fragment
  • Scheme. The protocol. Case-insensitive, always lowercase by convention.
  • Userinfo. Credentials before an @. Deprecated by RFC 3986 and blocked or stripped by modern browsers, because https://[email protected] reads as Apple to a hurried human.
  • Host. Case-insensitive. Non-ASCII hostnames are converted to Punycode (xn-- prefixes) for DNS.
  • Port. Omitted when it is the scheme default: 80 for http, 443 for https.
  • Path. Case-sensitive on most servers. /Products and /products are different resources.
  • Query. Everything after the first ?. The key=value&key=value convention is just that — a convention.
  • Fragment. Everything after #. Never transmitted to the server; it is resolved entirely by the client.

Query strings and their edge cases

The query string is the most misunderstood component because its structure is conventional rather than specified. Three cases bite regularly:

  • Repeated keys. ?tag=a&tag=b is legal and common. PHP takes the last value unless you write tag[]; Node’s URLSearchParams.get() returns the first and getAll() returns both. Never assume a key is unique.
  • Order matters for caching. ?a=1&b=2 and ?b=2&a=1 are byte-different URLs and will be cached and indexed separately, even though most applications treat them identically. Sorting parameters is a cheap canonicalisation win.
  • Encoding. Reserved characters must be percent-encoded, and + means a space only in application/x-www-form-urlencoded content — not in the path. Use the URL encoder when in doubt.

URL parameters and SEO

Parameters are the classic source of duplicate content. A product listing with filters for colour, size, sort order and page number can generate thousands of URLs that all serve near-identical content.

Four defences, in order of preference:

  1. Canonical tags. Every filtered variant declares the clean URL as canonical. This is the correct primary fix.
  2. Consistent ordering. Generate parameters in a fixed order so the same state always produces the same URL.
  3. robots.txt. Block genuinely worthless combinations from being crawled at all. Build the rules with the robots.txt generator.
  4. Internal linking discipline. Never link to tracking-tagged URLs from your own pages — UTM parameters belong on external campaigns, built with the UTM builder.

Google retired the URL Parameters tool in Search Console in 2022, saying its systems now handle parameter duplication well enough without hints. Canonical tags and clean internal linking are the levers that remain.

Tracking parameters and privacy

The Strip UTM parameters button removes the common click identifiers: the five utm_* parameters plus gclid (Google Ads), fbclid (Meta), msclkid (Microsoft), igshid, ttclid and twclid.

These are appended to links you share and can carry an identifier that ties a click back to an individual profile. Stripping them before sharing a link publicly is good hygiene, and it also gives you a cleaner URL that will not fragment your analytics if someone shares it onward.

Firefox strips several of these automatically in strict tracking-protection mode, and Safari’s Link Tracking Protection does the same in Private Browsing.

Frequently Asked Questions

What are the parts of a URL?

Scheme, optional userinfo, host, optional port, path, optional query and optional fragment. The parser above labels each one with notes on how it is treated.

Is a URL case-sensitive?

The scheme and host are case-insensitive. The path, query and fragment are case-sensitive on most servers, so /About and /about can be two different pages.

What is the difference between a URL and a URI?

A URI identifies a resource; a URL is a URI that also says how to locate it. In everyday web work the terms are used interchangeably and the WHATWG URL Standard simply says “URL”.

Does the fragment get sent to the server?

No. Everything after # is handled entirely by the browser and never appears in the HTTP request, which is why server logs never show fragments.

Do query parameters hurt SEO?

Only when they generate duplicate content. Declare a canonical URL on every variant, keep parameter order consistent, and avoid linking internally to tagged URLs.

What is the maximum URL length?

The standards set no limit, but practical ceilings apply: about 2,000 characters is the safe limit for broad compatibility, and Google recommends staying well below that.

Why does my URL show xn-- in the hostname?

That is Punycode, the ASCII encoding of an internationalised domain name. bücher.example becomes xn--bcher-kva.example for DNS lookup.

Sources & further reading

  1. RFC 3986: URI Generic Syntax — the normative definition of every URL component
  2. WHATWG URL Standard — the parsing algorithm browsers actually implement
  3. MDN: URL API — the JavaScript interface this tool is built on
  4. Google: Consolidate duplicate URLs — canonicalisation guidance for parameterised URLs