URL Parameters

No Comments
Url parameters

URL parameters are the key-value pairs after the ? in a URL — ?color=blue&sort=price_asc&utm_source=newsletter — that pass instructions or state to the server or to analytics. They're legitimate, useful machinery. They're also the single most common way sites accidentally multiply one page into ten thousand crawlable variants.

Here's why they deserve their own discipline: parameters combine. Five filter types with a few values each, plus sort orders, plus pagination, and one category page mathematically explodes into hundreds of thousands of reachable URLs — all near-duplicates, all crawlable, all competing with the real page. On e-commerce sites this parameter space routinely eats the majority of crawl activity, which you can watch happening in your logs. The category page itself gets crawled once a week; its ?sort= shadow army gets crawled ten thousand times.

Know what you're looking at

The critical diagnostic question for any parameter: does it change the content? Everything about handling follows from the answer.

example.com/shoes/?utm_source=email            ← identical content (tracking)
example.com/shoes/?sessionid=8f3a2c            ← identical content (state leak)
example.com/shoes/?sort=price_asc              ← same items, reordered
example.com/shoes/?color=red                   ← subset of items (filter)
example.com/shoes/?page=3                      ← different items (pagination)
example.com/search/?q=trail+runners            ← unbounded content (site search)

Six parameters, four fundamentally different situations, four different correct treatments. The blanket answers — "canonical everything to the clean URL" or "block all parameters in robots.txt" — each break at least one of these cases, which is how blanket answers become audit findings.

Handling by parameter type

Parameter typeExampleContent change?CanonicalCrawl handling
Tracking?utm_campaign=springNoneSelf-canonical to clean URLLet canonical consolidate; keep tracking URLs out of internal links entirely — they belong on external campaigns only
Session / state?sessionid=8f3a2cNoneCanonical to clean URL as a safety netFix at the source — move state to cookies; session IDs in URLs create per-visitor infinite spaces
Sort / view?sort=price_asc, ?view=gridSame content, rearrangedCanonical to default orderUsually also worth blocking in robots.txt on large sites — the canonical dedupes, but crawling a million sort variants to discover that is the waste itself
Filter (facet)?color=redSubsetDepends: valuable combos become real pages; the rest canonical to parentSelectively index facets with demand + inventory; block deep multi-facet combinations from crawling
Pagination?page=3Different itemsSelf-canonical (each page canonicals to itself — not to page 1)Leave crawlable; deep pages need discovery paths or the products on them are orphans
Site search?q=trail+runnersUnboundedBlock in robots.txt (Disallow: /*?q= or the search path); internal search results in the index are thin-content liability

Note the pagination row: canonicalizing ?page=3 to page 1 is one of the most repeated mistakes in this space. It tells Google pages 2+ are duplicates of page 1, which effectively hides everything listed on them.

How to check it on your own site

  1. Crawl the site and open Screaming Frog's URL tab → Parameters filter. Export it. Build a spreadsheet with one row per parameter key (not per URL): what it does, does it change content, current canonical behavior, verdict. This inventory is the whole audit's backbone.
  2. Check what's actually indexed: site:example.com inurl:? and per-parameter (site:example.com inurl:sort=). Thousands of indexed sort/filter variants means your canonicals aren't holding.
  3. Pull server logs and measure the share of Googlebot hits going to parameterized URLs. This turns "we might have crawl waste" into "38% of crawl activity hits sort and session parameters" — a number that gets fixes prioritized.
  4. In GSC, check page indexing for "Duplicate without user-selected canonical" and "Crawled — currently not indexed," and filter the URL lists for ?. Parameter bloat announces itself there first.
  5. Test your canonical implementation on parameter URLs specifically: fetch /shoes/?color=red&sort=price_asc and confirm the canonical tag is present, absolute, and pointing where your inventory sheet says it should. Templates frequently emit self-referencing canonicals that include the parameters — a canonical that agrees with the duplicate is worse than none.

Common mistakes

  • Self-canonicals that echo the parameters. The template outputs rel=canonical to the full requested URL, parameters included. Every variant certifies itself as the original. This one setting quietly indexes the entire facet space.
  • Robots.txt-blocking URLs you need consolidated. Blocking a parameter pattern means Google can't crawl those URLs — which means it can't see the canonical tag on them either. If variant URLs have external links or are already indexed, blocking freezes the mess instead of cleaning it. Consolidate first, block once clean.
  • Internal links carrying tracking parameters. Nav or content linking to /pricing/?utm_source=homepage — self-inflicted duplication plus corrupted analytics (session-breaking UTMs on internal clicks). UTMs are for external campaigns, full stop. Details in the tracking parameters check, and the UTM parameters entry covers the analytics side.
  • Inconsistent parameter order. ?color=red&size=9 and ?size=9&color=red are different URLs serving identical content. Fix by normalizing order server-side or in the link-generation layer, so one form exists.
  • Still planning around the Search Console parameter tool. Google retired the URL Parameters tool in 2022. If your parameter strategy was configured there, it's been doing nothing for four years — the handling now has to live in your canonicals, robots.txt, and link hygiene.

For implementation depth — including faceted-navigation decision trees — see the complete guide to URL parameters and SEO and the companion piece on handling dynamic parameters. For what clean parameter-free paths should look like in the first place, that's the URL structure entry.

FAQ

Are URL parameters bad for SEO?

No — unmanaged parameters are. Google crawls and indexes parameterized URLs fine. The problems are duplication and crawl-space explosion, both of which are handling failures, not something inherent to the ?.

Should I rewrite parameters into paths, like /shoes/red/ instead of ?color=red?

Only for parameter values you've decided should be indexable pages. Rewriting junk parameters into pretty paths doesn't fix duplication — it just makes the duplicates look legitimate and harder to pattern-match in robots.txt. Decide index-worthiness first; format second.

Does parameter order matter to Google?

Yes, in the sense that different orderings are distinct URLs. Google may figure out they're duplicates, but you're spending crawl and splitting signals while it does. Normalize to one canonical ordering.

How do I stop Googlebot crawling filter combinations without deindexing my filters?

Split the decision: facets you want indexed stay crawlable, clean, and self-canonical; everything past that gets a robots.txt pattern (e.g. disallow URLs containing two-plus facet parameters) once existing duplicates have been consolidated. Order of operations matters — consolidate, then block.

Do UTM parameters affect rankings?

Not when used correctly — on external campaign links with canonicals consolidating the variants. They cause trouble when they leak into internal links or get indexed without canonicals, at which point they're ordinary duplicate URLs like any other.

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog