Build campaign URLs with correctly encoded UTM parameters.
Existing parameters and fragments are preserved
Where the traffic comes from, e.g. newsletter
The channel, e.g. email or cpc
The campaign this belongs to
Paid keyword, if any
Distinguishes two links to the same URL
UTM parameters create extra URLs for the same page, which is why a self-referencing canonical tag matters — with one in place search engines consolidate the variants and there is no duplicate-content problem. Anything after a # is part of the fragment and never reaches the server, so parameters always go before it.
A clean URL
Parameters appended
https://example.com/pageA URL with a query
Existing parameters preserved
https://example.com/?id=7A URL with a fragment
The hash stays last
https://example.com/page#pricingWhere the campaign should send people.
Source, medium and campaign are the three that matter.
Every value is encoded correctly for a query string.
Existing parameters and fragments survive, separators are never doubled, and a value containing an ampersand cannot split into two parameters.
Analytics groups by source, medium and campaign together — supplying only one produces "(not set)" rows that are hard to interpret later.
"Email" and "email" are different sources to most platforms, which quietly fragments a campaign report.
Add UTM parameters to a link without breaking it. The URL is assembled with the browser’s own URL parser rather than string concatenation, so existing query parameters survive, separators are never doubled, values containing ampersands or spaces are percent-encoded properly, and the fragment stays at the end where it belongs — parameters appended after a hash are part of the fragment and never reach the server. Missing required parameters are flagged, since analytics platforms group sessions by source, medium and campaign together and an incomplete set reports as "(not set)".
Keep going
Related pages in SEO Tools, plus what others are using right now.
More seo tools that pair well with this one.
Percent-encode and decode URLs, with the component and full-URL modes kept apart.
Turn any title into a clean, readable URL slug — accents and all.
Produce a canonical link tag and check the URL for the mistakes that break it.
Generate redirect rules for Apache, Nginx or Next.js, with paths escaped correctly.
Analyse the links in pasted HTML — internal, external, anchor text and duplicates.
Check whether your page title fits the search snippet, and where the keyword sits.
Create strong random passwords with full control over length and characters.
Format, validate and minify JSON, with errors that point to the exact line.
Work out any percentage — of a number, as a share, or as a change.
Count words, characters, sentences and paragraphs as you type.
Convert between length, weight, temperature, volume, speed, data and more.
Count characters with and without spaces, against the limits that matter.
Find the mean, median, mode and range of a list of numbers, with the working shown.
Sample and population standard deviation and variance, both shown, with the working.
Turn a logo into favicon.ico, the PNG sizes a site needs, and the HTML to declare them.
Check a downloaded file against its published checksum, without uploading anything.
Stamp text like DRAFT or CONFIDENTIAL across a PDF, in your browser.
Turn JSON into readable YAML, with quoting and multiline strings handled properly.