How to use the URL parser
- Paste a full URL into the box. If you paste a bare address such as
example.com/page, the tool addshttps://for you (you can turn this off). - Read the components table. RFC 3986 splits a URL into scheme, authority (user info, host, port), path, query and fragment. Each one appears on its own row, both as written and decoded.
- Check the parameters table. Each
key=valuepair from the query string is listed in order, decoded, with duplicates kept. Rows that start withutm_are highlighted. - Read the warnings. The tool flags double encoding,
&copied from HTML, malformed percent signs, invalid UTF-8 and duplicate keys. - Copy what you need, either the normalized URL or the parameters as JSON.
What the parser shows for a typical URL
| Part | Example value | Notes |
|---|---|---|
| Scheme | https: |
Includes the colon, as the URL API returns it |
| User info | user / pass |
Rare in web links; passwords are masked |
| Host | www.example.com |
Lowercased; IDNs shown as xn-- plus Unicode |
| Port | 8080 |
Empty when it is the default for the scheme |
| Path | /path/to/page.php |
Shown encoded and decoded |
| Query | ?q=hello+world&lang=en |
Split into the parameters table |
| Fragment | #section-2 |
Never sent to the server |
Examples
| Input | What you will see |
|---|---|
?q=hello+world |
q = hello world (form decoding turns + into a space) |
?q=a%2Bb |
q = a+b (%2B is a literal plus) |
?q=a%2520b |
q = a%20b plus a double-encoding warning |
?a=1&b=2 |
A parameter named amp;b plus an HTML-entity warning |
?x=%zz&y=100% |
Values kept as typed, with malformed-percent warnings |
https://münchen.de/straße |
Host xn--mnchen-3ya.de, path /stra%C3%9Fe |
Why decoded values can differ between tools
Two decoding rules exist. Form decoding, used by URLSearchParams, PHP's $_GET and HTML forms, turns + into a space. Plain percent-decoding, used by decodeURIComponent, leaves + alone. The checkbox above switches between them so you can see what each side of your system will receive. The guide to %20 vs + in URLs explains the history.
Typical uses
- Campaign links. Check that
utm_source,utm_mediumandutm_campaignarrive with the values you expect. Google Analytics 4 treats parameter values as case-sensitive, soGoogleandgooglebecome two sources. See UTM parameter encoding mistakes. - Redirect and callback URLs. OAuth and tracking links often carry a whole URL inside one parameter. The parser decodes it so you can read it, and a second paste parses the inner URL.
- Crawl and log clean-up. Spot URLs that were encoded twice or that carry HTML entities before they spread into sitemaps.
Privacy
Parsing uses the URL engine built into your browser. Nothing you paste is sent to our server. For converting single strings rather than whole URLs, use the URL encode and decode operations in the universal encoder decoder.
Frequently asked questions
Why is + shown as a space in parameter values?
Query strings are normally read as application/x-www-form-urlencoded, where + means a space. That is how URLSearchParams, PHP and most frameworks read them. Turn off 'Treat + as space' to see plain percent-decoding instead.
Why does the hostname start with xn--?
Internationalized domain names are converted to their ASCII (Punycode) form when a URL is parsed. The tool shows both the ASCII hostname and the Unicode form; use the Punycode converter for more detail.
Does the parser change my URL?
It shows the URL as a browser would normalize it: lowercase host, default port removed, dot segments such as /a/../ resolved and unsafe characters percent-encoded. The original input stays in the box.