Quick answer
URL parameters (query parameters) are key-value pairs added to the end of a URL after a question mark, separated by ampersands, such as ?color=red&utm_source=newsletter. They pass information to the page or to tracking tools without changing the path.
Formula: https://host/path?key1=value1&key2=value2#fragment
What are URL parameters?
URL parameters (also called query parameters) are key-value pairs added to the end of a URL to pass extra information to a page or to a tracking tool. They start after a question mark, each pair is written key=value, and pairs are separated by &.
https://shop.example.com/shoes?color=red&sort=price&utm_source=newsletter#reviews
└─ scheme ─┘└──── host ────┘└path┘└──────────── query string ────────────┘└fragment┘
Here the page is /shoes; color=red and sort=price change what the page shows; utm_source=newsletter tells analytics where the visitor came from; #reviews (the fragment) jumps to a section and is never sent to the server.
Active vs passive parameters
- Active (content) parameters change what the page displays: filters, sorting, pagination, search terms, language.
- Passive (tracking) parameters do not change the content; they label the visit for analytics and ads: UTM tags, ad click IDs, referral codes, session IDs.
The distinction matters: active parameters may deserve their own indexable URLs; passive ones never do.
Common URL parameters
| Parameter | Type | Purpose |
|---|---|---|
utm_source, utm_medium, utm_campaign, utm_term, utm_content | Tracking | Campaign attribution (UTM) |
gclid, gbraid, wbraid | Tracking | Google Ads click IDs |
msclkid | Tracking | Microsoft Advertising click ID |
fbclid | Tracking | Added by Facebook to outbound links |
ref, aff | Tracking | Referral and affiliate codes |
q, s, search | Active | Site search term |
page, p | Active | Pagination |
sort, order | Active | Sort order |
color, size, category | Active | Filters (faceted navigation) |
lang, hl | Active | Language |
Encoding rules
URLs may only contain a limited set of characters (RFC 3986). Anything else is percent-encoded: a space becomes %20 (or + in form-style query strings), & inside a value becomes %26, = becomes %3D. Non-ASCII text such as café becomes caf%C3%A9. In JavaScript, read parameters safely with:
const params = new URLSearchParams(location.search);
params.get('utm_source'); // "newsletter"
URLSearchParams decodes values for you; building query strings by string concatenation is a common source of broken links.
URL parameters and SEO
- Duplicate content.
/shoes,/shoes?sort=priceand/shoes?utm_source=xshow the same products. Search engines must pick one, and signals are split between them. - Crawl waste. Faceted navigation can generate millions of filter combinations; crawlers spend their crawl budget on near-duplicates.
- Fixes: add a
rel="canonical"to the clean URL; link internally only to clean or canonical URLs; keep parameter order consistent; for infinite filter combinations, follow Google's faceted-navigation guidance rather than blocking everything in robots.txt. Google retired the Search Console URL Parameters tool in 2022, so this now has to be handled on the site itself.
URL parameters and analytics
- Split page rows. If reports key pages by full URL, one page appears as many rows.
- Overwritten sources. UTM tags on internal links (a homepage banner tagged
utm_source=homepage) start a new campaign attribution mid-visit and wipe out the real source. Use UTMs only on links from outside your site. - Personal data. Forms submitted with GET put emails and names into the query string, where every analytics tool will store them. See PII.
A worked example
Sample data: a report keyed by full URL shows these rows for one product page in a month.
| Row | Sessions |
|---|---|
| /shoes/runner-x | 1,240 |
| /shoes/runner-x?utm_source=newsletter&utm_medium=email | 310 |
| /shoes/runner-x?color=blue | 95 |
| /shoes/runner-x?gclid=EAIaIQ… | 42 |
| /shoes/runner-x?fbclid=IwAR… | 18 |
| /shoes/runner-x?ref=partner12 | 11 |
| One page, total | 1,716 |
Looking only at the first row underreports the page by 28% (476 of 1,716 sessions sit in the other rows). Grouping by path fixes the page report, and the campaign information is not lost as long as the tool reads UTM and click IDs into source fields first.
A short checklist
- Use UTMs only on external links, in lowercase, with a naming convention.
- Never put personal data in a query string; submit forms with POST.
- Canonicalise parameter variants to the clean URL.
- Report pages by path; read campaign and click-ID parameters into source fields.
- Tell your analytics tool which parameter is site search.
How TapCub handles URL parameters
- Page reports use the path. The collector drops the query string and a trailing
/when it counts a page, so/shoes/runner-x?utm_source=newsletteris counted as/shoes/runner-x. The#fragmentis dropped too, unless a hash-routed single-page app setsdata-hash="true"on the script. - Campaign parameters become sources. Web analytics › Sources reads UTM source, medium, campaign, term and content. Visits with
gclid,msclkid,wbraid,gbraid,yclidorbd_vidcount as paid search by default. See track ad click IDs and click ID. - Site search parameters default to
s,q,searchand can be changed in project settings. - Build consistent links with the free UTM builder.
Sources
- Berners-Lee, T. et al. RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (2005).
- WHATWG, URL Standard.
- Google Search Central, Consolidate duplicate URLs and Managing crawling of faceted navigation URLs.
- Google Search Central Blog, Spring cleaning: the URL Parameters tool (2022).
Was this explanation clear?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.

Customer Experience Consultant
Writes about live chat, visitor conversations, and self-service, sharing practical ways to make customer communication clearer and more effective.