What a URL encoder and decoder actually does
Percent-encoding replaces reserved and non-ASCII characters with a % plus two hex digits. A space becomes %20. A Japanese character becomes a UTF-8 byte sequence, not a pretty glyph in the path.
Encode when you need a string that is safe inside a URL. Decode when you need the human-readable value back.
Encode vs decode
Encode is for output you will put in an href, a sitemap loc, or an API request. Decode is for input you already received encoded, such as a UTM parameter copied from an analytics report.
That split matters more once you start comparing URLs for SEO.
Why encoding shows up in SEO research
Search Console splits URLs when the same content lives in encoded and decoded variants. ?q=hello world and ?q=hello%20world can look like two pages, two impressions, and a weaker canonical.
Query strings and duplicate URLs
If your CMS encodes spaces and your XML sitemap does not, crawlers spend budget on duplicates. Pick one form, encode it the same way everywhere, and point canonical tags at that form.
Tracking parameters
UTM values with spaces, plus signs, or emoji need encoding before you paste them into ads. Otherwise the campaign name in the report is not the campaign you launched.
Once you know why the bytes matter, the tool itself is the fast part.
How to use this tool on atherio.dev
Open Encode or Decode. Paste into Input. Output updates live. Select the Output field when you need the value on the clipboard.
Nothing leaves the browser. There is no server round trip, which is why this URL encoder and decoder is usable for staging links and unpublished campaign names.
Encode a query value
Switch to Encode. Paste summer sale 2026. You get summer%20sale%202026. Use that as a utm_campaign value. Do not run the whole URL through Encode unless you mean to percent-encode https:// as well.
Decode a captured link
Switch to Decode. Paste a percent-encoded path or query. If the string is invalid, the tool says so instead of guessing. A concrete example makes the round trip obvious.
A real tracking-link example
You want a blog URL with a campaign that contains spaces:
https://atherio.dev/blog?utm_source=youtube&utm_campaign=shipping static mdxRun only the campaign value through the URL encoder and decoder: utm_campaign=shipping%20static%20mdx. The rest of the URL stays readable. Ads, redirects, and analytics keep the parameter. Decode later if a report shows the percent-encoded form.
Treat the URL as structure, not as a blob. Encoding the entire string is how you get https%3A%2F%2F... in an href that never loads.
Mistakes that split crawl signals
Double encoding
Encoding %20 again produces %2520. Crawlers then see a different path. Decode once and check before you encode again.
Plus signs vs %20
Some older stacks use + for spaces in query strings. This decoder maps + to a space so those links still read correctly. Do not mix + and %20 in the same parameter if your reporting tools treat them as different campaigns.
Small checks like that keep the encoded URL you ship aligned with the one in Search Console.
Keep the encoded form consistent
A URL encoder and decoder is not a ranking trick. It is how you stop query strings, sitemaps, and tracking links from drifting apart.
Use Encode for values you will paste. Use Decode to inspect what a crawler or ad platform already stored. Take the Output, then put it back in the page, sitemap, or ad that needs it.