Guides/URL Parameters and SEO: Tracking, Sort, Filter and Session IDs
Guide

URL Parameters and SEO: How Query Strings Affect Crawling and Indexing

Every parameter permutation is a distinct URL Googlebot may crawl. rel=canonical to the clean URL consolidates signals; robots.txt Disallow only blocks crawling and does not consolidate. Google retired the URL Parameters tool in 2022.

Every distinct combination of query-string parameters is a separate URL that Googlebot may crawl and index. A page with 4 optional filters produces up to 16 permutations from one canonical URL, and adding a tracking parameter or a session ID multiplies that further. Uncontrolled parameters are one of the largest sources of crawl waste Google names, and the fix is a hint (rel=canonical) that consolidates signals — not a block, which does not.

The three parameter types

Query-string parameters (?key=value, chained with &) fall into three groups, each with a different SEO effect.

Why uncontrolled parameters hurt

The damage is mechanical. Googlebot discovers each parameter permutation as a distinct URL through <a href> links, then must decide whether to crawl and index it. Three costs follow.

Duplicate content. Tracking parameters and most sort orders return the same or near-identical content under many addresses. Google has to canonicalize the set down to one representative URL — and if you give no signal, it guesses, which may not be the URL you want ranking. Crawlinx flags parameter permutations that produce duplicate or near-duplicate pages as duplicate.content.

Split link equity. When external and internal links point at several parameterized variants of the same page, ranking signals scatter across near-identical URLs instead of consolidating onto one. A page that should rank on the strength of all its links instead competes as several weaker fragments.

Wasted crawl budget. Each permutation is a separate fetch. Google's own guidance names faceted navigation, action parameters, and irrelevant URL parameters as the dominant sources of crawl waste on large sites. On a big catalog, Googlebot can spend its capacity re-fetching filter and session-ID variants while genuinely new pages sit in "Discovered — currently not indexed." The crawl-budget mechanics are in the crawl budget guide. Crawlinx flags URLs carrying excessive parameters as url.many_params.

The fix hierarchy

There is a clear order of preference, and the two main options do different things — this is where most parameter mistakes happen.

1. rel=canonical to the clean URL (preferred)

Point every parameterized variant at the clean, parameter-free URL with rel="canonical":

<!-- on /shoes?color=blue&utm_source=newsletter -->
<link rel="canonical" href="https://example.com/shoes" />

This is the preferred fix because it consolidates signals: Google treats the clean URL as the representative of the set, folds the duplicates' link equity onto it, and ranks one strong URL instead of many weak ones. The canonical is a hint, not a rule, but combined with consistent internal links pointing at the clean URL it is a strong one. The canonical target must be a live 200 page, not itself noindex or blocked. When a parameter URL correctly canonicalizes to the clean URL, its canonical points away from itself — expected here, but Crawlinx surfaces every away-pointing canonical as canonical.non_self so you can confirm each one is intentional and points at the right target. The failure mode to catch: a parameter URL that canonicalizes to the wrong clean URL, or a page that should be self-canonical but points elsewhere.

2. robots.txt Disallow (blocks crawling, does NOT consolidate)

Blocking a parameter pattern in robots.txt stops Googlebot from crawling those URLs:

Disallow: /*?*sort=
Disallow: /*?*sessionid=

Be precise about what this does and does not do. It saves crawl budget by preventing the fetch, which is why Google recommends robots.txt over rel=canonical when your goal is purely to stop crawling. But a Disallowd URL can still be indexed URL-only if something links to it, and — critically — because Google never crawls it, it never reads any rel=canonical on that page, so the URL's signals are not consolidated onto the clean version. robots.txt is a crawl control, not a signal-consolidation or deindexing tool. Use it for parameters you never want crawled (session IDs, pure action parameters); use canonicals when you want the clean URL to inherit the ranking strength.

The GSC URL Parameters tool is gone

Google retired the URL Parameters tool in Search Console on 2022-04-28. It once let you tell Google how to treat specific parameters; it no longer exists. Google's stated position is that it now handles parameters automatically and that site owners should rely on rel=canonical (and robots.txt for crawl control) instead. Do not look for the tool or design around it.

Session IDs are the worst case

Session IDs deserve their own warning. Because a fresh identifier is generated for every visitor and often every request, they can produce an effectively unbounded set of URLs for a single page — an infinite-space crawl trap. Google's URL-design guidance lists session IDs (and click-tracking parameters) among the things you must keep out of indexable URLs. Store session state in a cookie, not the URL. If legacy session-ID URLs already exist, canonicalize them to the clean URL and block the pattern in robots.txt so no new ones are crawled.

How Crawlinx detects parameter problems

Crawlinx inspects the query string of every URL it fetches. It flags URLs carrying an excessive number of parameters as url.many_params, the near-identical pages that parameter permutations create as duplicate.content, and every canonical that points away from its own URL as canonical.non_self — the last so you can confirm parameter URLs canonicalize to the correct clean URL and spot the pages that should be self-canonical but are not. Run these together in the technical SEO audit checklist.

Takeaway

Treat parameters by intent. Tracking parameters and sort orders create duplicates — canonicalize them to the clean URL so signals consolidate. Filters and their combinations need the fuller treatment in faceted navigation crawl traps. Keep session IDs and click-tracking out of URLs entirely. Prefer rel=canonical when you want the clean URL to inherit ranking strength; use robots.txt only to stop crawling, remembering it neither deindexes nor consolidates. The URL Parameters tool is gone — the canonical is now your primary lever.

Related
Faceted Navigation and Crawl Traps: How to Stop Infinite URL Spaces Crawl Budget: What It Is and How to Manage It Canonical Tags Guide: rel=canonical Explained Technical SEO Audit Checklist url.many_params duplicate.content canonical.non_self

Audit your own site — free

77 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →