URL Parameters
How query-string parameters create duplicate and near-duplicate URLs and crawl problems — and how to manage them today, now that the GSC URL Parameters tool is gone.
1 evidence signal on this page
- Related live toolCanonicalization Checker
URL parameters are the ?key=value data tacked onto a URL. The whole framework is active vs passive: active params (filter/sort/paginate/search) change the page and create near-duplicates; passive params (tracking, session, affiliate IDs) don't change content and create pure duplicates. They cause duplicate content, split signals, and wasted crawl budget — Google's own 2024–25 data blames faceted navigation plus action parameters for ~75% of crawl problems. The Google Search Console URL Parameters tool is gone (retired April 2022) — don't tell anyone to use it; Google found only ~1% of configs useful and now handles parameters automatically. Manage them today with consistent parameter order, rel=canonical for passive params (let them crawl, don't reflexively block), robots.txt only for genuine crawl traps (it doesn't deindex), 404 for empty filter combos, and don't internally link to parameterized URLs. Bing still has its Ignore URL Parameters tool — a real Google-vs-Bing difference.
Evidence for this claim Faceted navigation parameters can create very large URL spaces; Google recommends controlling crawlable combinations and returning consistent status codes. Scope: Current Google faceted-navigation guidance. Confidence: high · Verified: Google Search Central: Faceted navigation URLs Evidence for this claim Canonicalization can signal the preferred URL among duplicate or very similar parameter variants, but redirects are stronger when alternatives should not remain accessible. Scope: Current Google canonicalization methods. Confidence: high · Verified: Google Search Central: CanonicalizationTL;DR — A URL parameter (or query string) is the
?key=valuebit tacked onto the end of a URL — used for tracking, filtering, sorting, and search. The problem is that the same page can be reached through dozens of parameter combinations, which creates duplicate URLs that confuse search engines and waste their time crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. your site. The old Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. tool for managing them is gone — so you handle them with canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. and, occasionally, robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere..
What a URL parameter is
Look at a URL like this:
https://example.com/shoes?color=blue&sort=priceEverything after the question mark (?) is the query string. It’s made of
key=value pairs — here color=blue and sort=price — joined together with an
ampersand (&). Each pair is a parameter. They pass extra information along
with the URL: which color filter you picked, how you sorted the list, where the
visitor came from, and so on.
Parameters are completely normal. Every ecommerce store, every site with on-site search, and almost every marketing campaign uses them. They aren’t bad by default.
Why they cause SEO problems
The trouble starts because the same content can be reached through many different URLs:
https://example.com/shoes
https://example.com/shoes?sort=price
https://example.com/shoes?utm_source=newsletter
https://example.com/shoes?color=blue&sort=price&utm_source=newsletterTo a person, those might all be “the shoes page.” To a search engine, they can look like separate URLs. That leads to three headaches:
- Duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. — lots of URLs showing the same (or nearly the same) page.
- Split signals — links and authority get spread across all those versions instead of pointing at one strong page.
- Wasted crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. — search engines spend time fetching endless parameter combinations instead of your real pages. This is closely related to crawl budgetThe number of URLs an engine will crawl in a timeframe..
The two kinds of parameters
This is the whole framework, so it’s worth getting straight:
- Active parameters change the page. Filtering, sorting, paginating, and search all show different content depending on the parameter. These create real (often near-duplicate) variations.
- Passive parameters don’t change the page. Tracking tags (like the
utm_parameters from email and ad campaigns) and session IDs leave the content identical — they just create pure duplicates of the clean URL.
You handle the two differently, which the Advanced tab covers in detail.
The thing most people get wrong
The Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. “URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO.” tool is gone. Google retired it in April 2022. If a guide tells you to “configure your parameters in Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance.,” it’s out of date — that control no longer exists. Google now figures out parameters on its own, and for the cases where you do want control you use canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., and (on Bing) Bing’s own parameter tool.
Want the full playbook — active vs passive fixes, the 2024–25 crawl data, the robots.txt trap, and the Google-vs-Bing difference? Switch to the Advanced tab.
Evidence for this claim Faceted navigation parameters can create very large URL spaces; Google recommends controlling crawlable combinations and returning consistent status codes. Scope: Current Google faceted-navigation guidance. Confidence: high · Verified: Google Search Central: Faceted navigation URLs Evidence for this claim Canonicalization can signal the preferred URL among duplicate or very similar parameter variants, but redirects are stronger when alternatives should not remain accessible. Scope: Current Google canonicalization methods. Confidence: high · Verified: Google Search Central: CanonicalizationTL;DR — URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. (
?key=valuequery strings) split into active (filter/sort/paginate/search — change the page) and passive (tracking, session, affiliate IDs — don’t). Passive variants often duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling.; active combinations can create a very large crawl space whether or not their content is identical. The GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL Parameters tool is dead (retired 26 April 2022) — Google foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. only ~1% of configs useful and now learns parameters automatically. Manage them today with consistent parameter order,rel=canonicalfor passive params (let them crawl — don’t reflexively block), robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. only for genuine crawl trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. (it doesn’t deindexDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist.),404for empty combos, and never internally link to parameterized URLs. Bing still has its Ignore URL Parameters tool — the live Google-vs-Bing difference.
Anatomy: query string vs path
A URL parameter is the data after the ?, passed as key=value pairs joined by
&. As I put it in my Ahrefs guide on URL parameters, “URL parameters or query strings come after
a question mark (?) and pass data along with the URL.” The path
(/shoes) identifies the resource; the query string (?color=blue&sort=price)
modifies the request. Everything in this article hinges on one fact: the same
content can be reached through countless parameter combinations, and search
engines treat many of those as distinct URLs.
Active vs passive — the whole framework
I frame parameters through one split, and the right fix follows from which side a parameter lands on.
Active parameters change what’s on the page. The three I always name:
- Filter — removes some of the content, leaving the more specific subset a user wants to see.
- Sort — reorders the content (by price, rating, etc.).
- Paginate — divides content into a series of related pages.
On-site search is the fourth. These create real — often near-duplicate — content variants. The deeper, ecommerce-flavored version of this is faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals.; this article is the parameter lens on it.
Passive parameters don’t change the content. They’re typically used for
tracking — UTM tags, gclid, fbclid, affiliate IDs — and for session IDs.
These produce pure duplicates of the clean URL. My default position here is
specific: “Passive parameters can cause issues with duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling.. Typically,
you want them to be crawled, and each page should have a canonical set to the main
version.” In other words, don’t reflexively robots-block tracking parameters —
let them be crawled and consolidate them with a canonical.
Treat active/passive as a diagnostic, not a lookup table keyed on the parameter
name. The same key name (id, sort, ref) can behave differently on different
sites, so before you classify a parameter, check what the response actually does —
does the returned content change, or just the tracking/analytics context? Names
like utm_ or sort= are strong hints, not proof.
How parameters cause SEO problems
Three distinct failure modes, and they compound:
- Duplicate / near-duplicate content. Passive params duplicate a page exactly; active params (sort especially) produce near-duplicates. This is squarely a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. problem — the engine has to pick one representative URL out of the cluster.
- Split ranking signals. Links and authority scatter across every variant instead of consolidating on one URL.
- Wasted crawl budgetThe number of URLs an engine will crawl in a timeframe. and infinite crawl spaces. “Infinite URL paths with parameters or tons of different combinations can cause issues with crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor..” When parameters can stack arbitrarily, a single site starts to look nearly infinite — the spider trapA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. pattern. Google describes the web itself as “a nearly infinite space, exceeding Google’s ability to explore and index every available URL,” and parameter explosion turns one site into a small version of that problem.
Google’s faceted-nav doc explains the crawl mechanic well: a filter system “often means a very large number of possible combinations of filters, which translates to a very large number of possible URLs,” and because those URLs “seem to be novel and crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can’t determine whether the URLs are going to be useful without crawling first, the crawlers will typically access a very large number of faceted navigation URLs.”
The data: parameters are a top crawl drain
This isn’t theoretical. In Google’s 2024–25 crawling discussions, Gary Illyes put real numbers on it. Per Search Engine Land’s coverage, “The biggest issues were faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. and action parameters, which accounted for about 75% of the problems,” split as “50% come from faceted navigation” and “25% come from action parameters.” SEL defines action parameters as “URL parameters that trigger actions instead of meaningfully changing page content” — think add-to-cart, compare, or sort triggers that mint near-infinite URLs. So Google itself blames parameters for roughly a quarter of all crawl problems on their end.
The underlying mechanism, in Illyes’ words: “Once it discovers a set of URLs, it cannot make a decision about whether that URL space is good or not unless it crawled a large chunk of that URL space.” The crawler has to spend budget to learn a parameter space is junk.
How to find your parameter problems
Before fixing, see the scope:
- Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.. The Pages report — especially “Duplicate without user-selected canonical” and “Discovered – currently not indexedA Google Search Console Page Indexing status meaning Google knows the URL exists but hasn't crawled it yet — the Last Crawl date is empty. Often a crawl-capacity or crawl-demand (site-quality) signal.” — and the Crawl Stats report (Settings → Crawl Stats) surface parameter bloat.
- A site crawl. Ahrefs Site Audit or Screaming Frog will show you parameterized URLs, their canonicals, and where you’re internally linking to them.
site:+inurl:searches. A quicksite:example.com inurl:?(orinurl:utm_,inurl:sort=) gives a back-of-envelope feel for what’s indexed.- Server logs. Log file analysisLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. is the ground truth for which parameter URLs bots actually hit and how often — the only way to confirm real crawl waste.
Tracking, sorting, and filtering parameters create different page states and need different treatment. Classification narrows the audit; it does not decide which combinations deserve indexing.
Paste a URL sample into my Faceted Navigation Auditor to group parameter patterns, expose duplicate combinations, and separate tracking parameters from content-changing filters. Faceted Navigation Auditor Free
- Sample URLs from crawls, logs, and internal links rather than inventing combinations.
- Review tracking, sorting, and filter groups separately.
- Choose canonical, link-generation, robots, or indexability changes from the actual page behavior.
How to manage parameters today
There is no single switch — you pick the tool that matches the job. Three distinct jobs, and conflating them is where people go wrong.
1. Consistent handling, first. A lot of duplication is self-inflicted and free
to fix. My rule: “Keep a consistent order, and don’t have paths that allow for
adding additional parameters.” Use one key per value, and use the industry-standard
separator. Google is explicit: “Use the industry standard URL parameter separator
’&’. Characters like comma (,), semicolon (;), and brackets ([ and ]) are
hard for crawlers to detect as parameter separators.” And keep the order fixed —
Google: “Ensure that the logical order of the filters always stays the same and
that no duplicate filters can exist.” Inconsistent order alone multiplies duplicate
URLs. Two more free fixes: don’t emit a parameter at all when it’s set to its
default value (?sort=default mints a needless duplicate of the un-parameterized
URL), and reject or normalize invalid combinations at the application level instead
of letting every nonsense combination generate its own URL — without collapsing
combinations that genuinely produce different, useful content.
2. rel=canonical for passive / tracking params — my default. Let them be
crawled and point each variant’s canonical at the clean URL. My exact framing: a
canonical “can help consolidate signals to a chosen URL but requires each
additional version of a page to be crawled… This is what I’d opt for by default.”
Be honest about the speed, though — a canonical is a hint, not a directive
(it’s one of the canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content.s among many signals in canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it.),
and Google says using it “may, over time, decrease the crawl volume of
non-canonical versions of those URLs.” Note the slow “over time.”
3. noindex when you truly want a parameter variant out of the index. It works,
but the page has to stay crawlable for Google to see the tag, and like canonical it
“may be crawled less over time.” Don’t pair it with a robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. block — if the
URL is blocked, Google can’t see the noindex at all.
4. robots.txt disallow — only for genuine crawl traps. This stops crawling, not indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. The myth-killer, in my words: “Blocking parameters in robots.txt means that the pages may still get indexed.” They won’t usually show in normal searches, but “these pages won’t be crawled and won’t consolidate signals.” So reserve robots.txt for parameter spaces you never want crawled (true combinatorial traps), not as a duplicate-content fix. Google’s own crawl-budget guidance agrees with the sequence: “Consolidate duplicate content to focus crawling on unique content rather than unique URLs,” and only “if you can’t consolidate them… block these unimportant pages using robots.txt.”
5. 404/410 for empty filter combinations. Google: “Return an HTTP 404
status code when a filter combination doesn’t return results.” Don’t return a
200 empty page (that’s a soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. — Google keeps crawling it and it “will
continue to be crawled, and waste your budget”).
6. Don’t internally link to parameterized URLs. You’re handing crawlers the trap yourself. My rule: “You should avoid passive parameters like those used for tracking on internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them..” Before you strip a tracking parameter off an internal link, though, verify it actually needs to be there — check whether analytics campaign capture or a redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. depends on it — and consider firing an analytics event instead of a URL parameter for interactions that only need to be tracked, not crawled.
A note on prevention tactics you’ll see elsewhere: some people render filters via
POST or swap the ? for a # fragment so no crawlable URL is minted. I don’t
recommend the fragment swap — “There’s a growing trend where people are using #
instead of ? as the fragment identifier, especially for passive parameters like
those used for tracking. This is generally not a good idea.” Treat those as general
industry options, not a recommendation from me.
The GSC URL Parameters tool is gone
The single most important currency check on this topic: Google retired the Search Console URL Parameters tool in 2022. It was announced on 28 March 2022 and removed on 26 April 2022. Per Barry Schwartz’s Search Engine Land write-up, “Google will be sunsetting this feature on April 26, 2022 and you will no longer be able to access the tool after that date.”
Google’s stated reasons (relayed as direct quotes of Google’s blog post by SEL and 9to5Google): “only about 1% of the parameter configurations currently specified in the URL Parameters tool are useful for crawling,” and “Over the years, Google became much better at guessing which parameters are useful on a site and which are —plainly put— useless.” So they “deprecat[ed] the URL Parameters tool.”
What to do instead, per Google: nothing, by default — “Google’s crawlers will learn how to deal with URL parameters automatically.” For more control, Google points to “robots.txt rules… or… hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others.” — i.e. the same tools above, not a dedicated parameter panel. I say the same thing about the dead tool: “The tool was deprecated in early 2022.” If a guide still tells you to configure parameters in Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance., it predates 2022.
There’s no single switch that replaced it. The retirement means you fix parameter sprawl at the source (URL generation, internal links) and pick a state-specific control — canonical, noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed., robots.txt, or 404 — per the framework above, then confirm it’s working through GSC’s Pages and Crawl Stats reportsA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root). rather than a dedicated parameter panel.
Bing still lets you ignore parameters
Here’s a genuine Google-vs-Bing difference almost everyone omits: Bing still has a parameter tool. In Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility., under Configure My Site › Ignore URL Parameters, you can tell Bing which parameters to ignore while crawling — the modern incarnation of Bing’s old URL Normalization feature. Bing even suggests parameters it thinks are safe to ignore; you add them with a click. The one caveat to respect: only add a parameter to ignore if you’re sure it isn’t needed for your content to display correctly.
Bing’s historical framing, from its 2012 URL Normalization post, captures why it exists: “When you have duplicate problems due to extra URLs parameters, using the URL Normalization feature in the Bing Webmaster Tools is the preferred method,” after which “the crawler will not visit the URLs with extra parameters except for an occasional test of the quality of the normalization rules.” Bing is candid that canonical alone is imperfect — “relying on canonical tag is not necessarily the perfect solution to fix all your duplicate content problems” — and treats the tag as “complimentary information to the URL Normalization rules provided.” Practical upshot: use Bing’s tool for Bing; use robots.txt / canonical for Google.
Parameters, faceted navigation & spider traps
These three overlap but aren’t the same. Faceted navigation is the ecommerce-filter case (the deep dive on active filter parameters). Spider traps are the infinite-URL pathology that unbounded parameter stacking can create. And crawl budget is the resource the whole mess drains. This article is the parameter-handling lens that ties them together — see those for the broader treatment.
Common myths
- “Use the GSC URL Parameters tool.” Gone since 26 April 2022. Use canonical,
robots.txt,
noindex(and Bing’s Ignore URL Parameters for Bing). Google’s crawlers now “learn how to deal with URL parameters automatically.” - “Parameters always hurt SEO.” No. Parameters are normal and necessary (sessions, tracking, filters, paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does.). The problem is unmanaged duplication, not parameters per se. Passive params are usually fine to crawl and canonical.
- “Block all parameters in robots.txt.” Over-blocking orphans content and hides
your canonicals and
noindexfrom Google — and it doesn’t deindex anyway (“the pages may still get indexed”). Block only true crawl traps; canonical the rest. - “A canonical fixes parameter duplicates instantly.” It’s a hint and slow — “may, over time, decrease the crawl volume.” Crawlers still hit the variants meanwhile.
AI summary
A condensed take on the Advanced version:
- URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. = the
?key=valuequery string after a URL’s path, joined by&. The same content reachable through many parameter combinations is the whole problem. - Active vs passive is the framework. Active (filter/sort/paginate/search) changes the page → near-duplicatesThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling.. Passive (tracking, session, affiliate IDs) doesn’t → pure duplicates.
- Three failure modes: duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling., split ranking signals, wasted crawl budget / infinite crawl spaces.
- The data: Google’s 2024–25 numbers (Illyes, via SEL) blame faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals.
- action parameters for ~75% of crawl problemsCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. (25% action params alone).
- The GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL Parameters tool is dead (announced 28 Mar 2022, removed 26 Apr 2022). Google foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. ~1% of configs useful and now handles parameters automatically. Don’t tell anyone to use it.
- Management today: consistent parameter order +
&separator + no empty/dup params;rel=canonicalfor passive params (let them crawl — Patrick’s default, don’t reflexively block);noindexif you truly want a variant out (keep it crawlable); robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. only for genuine crawl trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. (it doesn’t deindexDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist.);404for empty filter combos; don’t internally link to parameterized URLs. - Bing still has Ignore URL Parameters (Configure My Site › Ignore URL Parameters) — the live Google-vs-Bing difference.
- Related: this is the parameter lens on faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals., spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content., and crawl budgetThe number of URLs an engine will crawl in a timeframe., and a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. problem at heart.
Official documentation
Primary-source documentation from the search engines.
- Spring cleaning: the URL Parameters tool (28 Mar 2022) — the announcement that the Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool was being retired, and what to do instead.
- Managing crawling of faceted navigation URLs — the best verbatim source for parameter handling: the
&separator rule, consistent filter order,404for empty combos, and canonical guidance. - Crawl Budget Management — the “nearly infinite space” framing, consolidate-duplicates principle, and when to block with robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere..
- Keep a simple URL structure — Google on why overly complex, multi-parameter URLs create crawl problemsCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index..
- To infinity and beyond? No! (2008) — the original “infinite spaces” post that named sort/filter parameters as a source.
Bing / Microsoft
- Bing Webmaster Tools help — find Ignore URL Parameters under Configure My Site (the live feature Google retired).
- Better than canonical; URL Normalization (2012) — Bing’s original parameter-normalization post; the historical anchor for the current tool.
- Block URLs from Bing — temporary removalA Google Search Console feature for verified owners to manage how their URLs appear in Search. A Temporary Removal hides a URL for about six months — it does not delete the page from the index. of URL patterns from Bing’s indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed..
Quotes from the source
On-the-record statements from Google and Bing. Each link is a deep link that jumps to the quoted passage on the source page.
Google — the parameter-handling rules (faceted-nav doc)
- “This often means a very large number of possible combinations of filters, which translates to a very large number of possible URLs.” Jump to quote
- “Use the industry standard URL parameter separator ’&’. Characters like comma (
,), semicolon (;), and brackets ([and]) are hard for crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. to detect as parameter separators.” Jump to quote - “Ensure that the logical order of the filters always stays the same and that no duplicate filters can exist.” Jump to quote
- “Return an HTTP
404status code when a filter combination doesn’t return results.” Jump to quote - Using
rel="canonical"“may, over time, decrease the crawl volume of non-canonical versions of those URLs.” Jump to quote
Google — crawl budgetThe number of URLs an engine will crawl in a timeframe. & infinite spaces
- “The web is a nearly infinite space, exceeding Google’s ability to explore and indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. every available URL.” Jump to quote
- “Consolidate duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. to focus crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. on unique content rather than unique URLs.” Jump to quote
- “Overly complex URLs, especially those containing multiple parameters, can cause problems for crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. by creating unnecessarily high numbers of URLs that point to identical or similar content on your site.” — Google’s URL-structure doc. Jump to quote
Google — the deprecated tool (Google’s 2022 blog post, relayed verbatim via Search Engine Land and 9to5Google)
- “Only about 1% of the parameter configurations currently specified in the URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool are useful for crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor..” Read the coverage
- “Over the years, Google became much better at guessing which parameters are useful on a site and which are —plainly put— useless.” Read the coverage
- “You don’t need to do anything to specify the function of URL parameters on your site, Google’s crawlers will learn how to deal with URL parameters automatically.” Read the coverage
- Barry Schwartz’s framing of the date (his wording, not Google’s): “Google will be sunsetting this feature on April 26, 2022 and you will no longer be able to access the tool after that date.” Jump to quote
Gary Illyes, Google — parameters as a crawl drain (via Search Engine Land’s coverage of the 2024–25 crawling discussions)
- “The biggest issues were faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. and action parameters, which accounted for about 75% of the problems” — split as “50% come from faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals.” and “25% come from action parameters.” Jump to quote
- “Once it discovers a set of URLs, it cannot make a decision about whether that URL space is good or not unless it crawled a large chunk of that URL space.” Jump to quote
Bing — URL Normalization (2012 blog)
- “When you have duplicate problems due to extra URLs parameters, using the URL Normalization feature in the Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. is the preferred method.” Source
- “Relying on canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. is not necessarily the perfect solution to fix all your duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. problems.” Source
URL parameters — cheat sheet
Active vs passive → recommended handling
| Parameter type | Example | Changes the page? | Default handling |
|---|---|---|---|
| Passive — tracking | utm_source, gclid, fbclid, affiliate IDs | No | Let it crawl; rel=canonical to the clean URL. Don’t internally link to it. |
| Passive — session IDs | sessionid, sid | No | Avoid emitting in URLs at all; if present, canonical to the clean URL. |
| Active — filter | color=blue, size=10 | Yes | Decide which deserve indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.; canonical near-duplicatesThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling., 404 empty combos, block worthless traps. |
| Active — sort | sort=price | Reorders only | Near-duplicate → canonical to the default order (often a robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.-block candidate if it’s a trap). |
| Active — paginate | page=2 | Yes | Self-referencing canonical per page; keep crawlable; don’t canonical page 2 → page 1. |
| Active — search | q=running+shoes | Yes | Usually block internal search result URLs in robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. (low-value, near-infinite). |
What each control actually does
| Control | Stops crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor.? | Stops indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.? | Use it for |
|---|---|---|---|
rel=canonical | No | Consolidates (a hint, slow) | Passive/tracking params; near-duplicate variants |
robots.txt disallow | Yes | No (URL can stay indexed) | Genuine crawl trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. you never want crawled |
noindex (meta/header) | No (must stay crawlable) | Yes | Removing a specific variant from the index |
404 / 410 | — | Drops over time | Empty filter combinations |
Fast facts
- GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool: gone (announced 28 Mar 2022, removed 26 Apr 2022). Google now handles parameters automatically.
- Bing still has it: Ignore URL Parameters (Configure My Site).
- Separator: use
&, never commas / semicolons / brackets. - Order: keep the logical filter order fixed; no duplicate or empty params.
- robots.txt doesn’t deindexDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. — blocked parameter URLs “may still get indexed.”
The decision framework
1. Classify the parameter first: active or passive? Does it change what’s on the page? Passive (tracking/session) → pure duplicate. Active (filter/sort/paginate/search) → real or near-duplicateThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. variant. Everything downstream depends on this answer.
2. For passive params: let it crawl + canonical. Don’t block. This is my default. A canonical consolidates signals to the clean URL; it requires each variant to be crawled, but that’s fine for tracking tags. Reflexively robots-blocking tracking params hides your canonical and orphans signals.
3. For active params: decide which variants deserve indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed..
Then map each to a control — let crawl + canonical near-duplicates; 404 empty
combos; reserve robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. for genuine infinite traps; noindex a specific variant
you want gone (and keep it crawlable so Google sees the tag).
4. Pick one job per URL — don’t conflate the controls.
robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. stops crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., not indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. noindex needs crawl access to be seen.
canonical is a hint, slow. Never robots-block a URL you also want noindexed
— the block hides the noindex.
5. Prevent before you patch.
Consistent parameter order, & separators, one key per value, no empty params, and
no internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. to parameterized URLs. Most parameter duplication is
self-inflicted and free to stop at the source.
6. Remember the engine difference. Google: no parameter tool — use canonical / robots.txt; it learns parameters automatically. Bing: still has Ignore URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. — use it for Bing.
URL parameter audit checklist
- Pulled the list of parameterized URLs — site crawl (Ahrefs Site Audit /
Screaming Frog), GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Pages report (“Duplicate…”, “Discovered – currently not
indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.”), and
site:+inurl:?spot-checks. - Classified each parameter as active (filter/sort/paginate/search) or passive (tracking/session/affiliate).
- Passive params: each variant has a
rel=canonicalto the clean URL, and they’re being crawled (not robots-blocked). - Confirmed you’re not internally linking to tracking/parameterized URLs.
- Active params: decided which variants should be indexable; the rest are
canonicalized,
404’d (empty combos), or blocked (true traps). - Parameter order is consistent everywhere;
&separator (no commas / semicolons / brackets); no duplicate or empty parameters. - Empty filter combinations return
404/410, not a200soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing.. - No URL is both robots-blocked and
noindexed (the block hides thenoindex). - robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. blocks are limited to genuine crawl trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. you never want crawled — and you accept those URLs can still appear (URL-only) in the index.
- You are not relying on the GSC URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool (it’s gone).
- (Bing) Reviewed Ignore URL Parameters in Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. and added only parameters you’re sure aren’t needed to render content.
- Verified real crawl behavior in server logsLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. after changes.
Mistakes to avoid
Real failure modes, pulled straight from the framework above.
“Just set it up in the URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool.”
The tool is gone — retired 26 April 2022. If a guide, a colleague, or an old
checklist still points you at Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. to “configure” your parameters,
it predates 2022 and is describing a control panel that no longer exists.
There’s nothing to reconfigure; Google now learns parameter behavior
automatically, and the only levers left are canonical, noindex, robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.,
and (on Bing) Ignore URL Parameters.
Robots-blocking tracking parameters “to fix duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling..”
This is the single most common overcorrection. Passive parameters (utm_,
gclid, fbclid, session IDs) don’t change the page — they’re pure
duplicates, and my default is to let them crawl and consolidate with
rel=canonical. Blocking them in robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. instead doesn’t remove the
duplicates from the indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. (blocked URLs “may still get indexed”), and it
hides your canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. from Google entirely, since a blocked page never
gets crawled to see the tag.
Stacking robots.txt disallow and noindex on the same parameter.
These two controls fight each other. noindex only works if the page stays
crawlable so Google can read the tag; blocking the URL in robots.txt prevents
exactly that. Pick one job per URL — block genuine crawl trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. you never want
touched at all, or noindex a specific variant you want out of the index,
not both on the same URL.
Letting parameter order and casing drift across templates.
A filter that renders as ?color=blue&sort=price on one template and
?sort=price&color=blue on another mints two URLs for what should be one.
This is self-inflicted duplication with a free fix: keep the logical filter
order fixed sitewide and use the & separator consistently, per Google’s own
guidance in the faceted-navigation doc.
Assuming a canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. works instantly.
rel=canonical is a hint Google weighs alongside other signals, and Google
says it “may, over time, decrease the crawl volume” of the non-canonical
versions — not immediately drop them. Expect a lag between adding canonicals
and seeing parameter variants stop showing up in Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance., and don’t
treat a canonical as a substitute for fixing self-inflicted duplication at
the source (internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., parameter order) in the meantime.
Finding your parameterized URLs
A few quick ways to surface the parameter sprawl on your own site.
site: + inurl: searches (any browser)
site:example.com inurl:? # anything with a query string indexed
site:example.com inurl:utm_ # indexed tracking-parameter URLs (shouldn't be many)
site:example.com inurl:sort= # indexed sort variantsA pile of utm_-tagged URLs in the indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. is a classic sign passive params are
leaking into Google — usually because they’re being linked internally.
Extract parameterized URLs from server logsLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. (macOS / Linux)
# Pull every requested URL that contains a query string, then rank by frequency
awk '{print $7}' access.log | grep '?' | sort | uniq -c | sort -rn | head -50
# Just the parameter KEYS bots are hitting, ranked — quickly shows your worst offenders
awk '{print $7}' access.log | grep -oE '[?&][a-zA-Z0-9_]+=' \
| tr -d '?&=' | sort | uniq -c | sort -rn(Adjust $7 to whichever field is the request path in your log format.)
robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. disallow patterns — for genuine traps only
User-agent: *
Disallow: /*?*sort= # block sort-order parameter spaces
Disallow: /*?*sessionid= # block session-ID URLs
Disallow: /search # internal search result pages
Sitemap: https://example.com/sitemap.xmlRemember: Disallow blocks crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., not indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. — a blocked parameter URL
“may still get indexed” (URL-only). Use this only for spaces you never want crawled,
and never on a URL whose noindex you need Google to read.
The Google-vs-Bing difference
There’s no Google parameter tool anymore — manage Google with canonical / robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. above. Bing still has one: in Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. → Configure My Site → Ignore URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO., add the parameters Bing should ignore while crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. (it even suggests safe-looking ones). Only add a parameter if you’re sure it isn’t needed for your content to render correctly. This is the live capability Google retired in 2022.
Patrick's relevant free tools
- SEO Incident Simulator — Practice thirty deterministic technical SEO incident investigations — indexability, crawl controls, redirects, sitemaps, markup, caching, DNS, bot verification, rendering, hreflang, and faceted navigation — with clearly labeled fixture evidence and Find → Fix → Verify handoffs.
- Canonicalization Checker — Audit HTML and HTTP canonical signals, test the canonical target, and identify observable conflicts that can cause Google to choose a different URL.
- Log File Analyzer — Drop a server access log and see crawl budget by bot and section, status-code waste, an AI-vs-search breakdown, and a spoofer report that names impostors faking a crawler user-agent. Parses nginx, Apache, IIS/W3C, and JSON logs entirely in your browser — nothing is uploaded.
Tools for finding and managing parameters
- Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — Pages report — “Duplicate without user-selected canonical” and “Discovered – currently not indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.” are where parameter bloat shows up.
- Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — Crawl StatsA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root). (Settings → Crawl Stats) — confirms how much crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. parameter URLs are actually consuming.
- Ahrefs Site Audit / Screaming Frog SEO SpiderA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. — crawl your site to list parameterized URLs, their canonicals, redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency., and where you internally link to them.
- Server log file analysisLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. — the ground truth for which parameter URLs bots hit and how often. (See log file analysisLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened..)
- URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. (GSC) — check how a single parameter URL was crawled, canonicalized, and indexed.
- Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. — Ignore URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. (Configure My Site) — the live parameter control Google retired; tell Bing which parameters to ignore.
Prompts for a parameter audit
Ready-to-copy prompts for parameter-specific tasks. Paste in your own data where indicated, and verify the output before acting on it — a model can misclassify a parameter as passive when it actually changes page content.
Classify a parameter list as active or passive
Paste in: the list of parameters you’ve seen in Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results., analytics, or
server logsLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. (e.g. ?sort=, ?utm_source=, ?sessionid=, ?color=, ?page=).
Expect back: each parameter labeled active or passive, plus a recommended
control (canonical, noindex, robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., or 404) based on the framework in
the Advanced tab.
Here is a list of URL parameters used on my site. For each one, tell me
whether it's active (changes the page content — filter, sort, paginate,
search) or passive (doesn't change content — tracking, session, affiliate
ID). Then recommend how to handle it: let it crawl with a rel=canonical
to the clean URL, add noindex, block it in robots.txt (only if it's a
genuine crawl trap), or return a 404 for empty results. Explain the
reasoning for each recommendation.
Parameters:
[paste parameter list here]Group a crawled URL list by base path to spot duplication
Paste in: a list of URLs from a crawl export or site: search. Expect back:
the URLs grouped by their base path (ignoring the query string), so you can
see how many parameter variants exist per page and which ones look like
self-inflicted duplication (inconsistent order, redundant tracking tags).
Here is a list of URLs from my site. Strip the query string from each
one to find its base path, then group the URLs by base path. For each
group, list the distinct parameter combinations found and flag any that
look like the same combination in a different order (e.g.
?color=blue&sort=price vs ?sort=price&color=blue) or a redundant
tracking parameter added to an otherwise identical URL.
URLs:
[paste URL list here]Once you’ve got a canonical decided for a page, verify the actual implementation (HTML tag vs. HTTP header, self-reference, conflicts) with the Canonicalization Checker rather than trusting a model’s read of raw markup.
Resources worth your time
My related writing
- URL Parameters: A Complete Guide for SEOs — my full Ahrefs guide on this topic: the active/passive split, the canonical-vs-noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed.-vs-robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. decision, and the parameter-order rule.
- Faceted Navigation: A Complete Guide — the deeper dive on active filter parameters in the ecommerce context.
- When Should You Worry About Crawl Budget? — why parameter sprawl drains crawl budgetThe number of URLs an engine will crawl in a timeframe., and who actually needs to care.
- Google Uses ~40 Canonicalization Signals — for the “canonical is a hint, not a directive” nuance behind recommending it for passive params.
- The Beginner’s Guide to Technical SEO — where parameter handling fits in the bigger picture.
From others
- Google’s Managing crawling of faceted navigation URLs — the cleanest official source for the separator, order, and
404rules. - r/TechSEO — the community for crawl/indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed./parameter debugging.
- Google’s URL Parameters tool is going away (Search Engine Land, Barry Schwartz) — the primary reporting on the April 2022 retirement, with Google’s verbatim reasons.
- Google: 75% of crawling issues come from two common URL mistakes (Search Engine Land) — Gary Illyes’ 2024–25 data on faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. + action parameters as the top crawl drains.
- Google Search Console URL Parameter Tool Is Now Offline (Search Engine Roundtable) — confirmation and community reaction to the tool’s removal date.
- The Expert SEO Guide To URL Parameter Handling (Search Engine Journal, Jes Scholz) — thorough treatment of parameter-ordering, six solution approaches, and assessment methods.
- Google’s John Mueller: There Is No Benchmark for Crawl Budget (Search Engine Journal) — Mueller on when parameter-driven URL explosion actually matters for crawl budgetThe number of URLs an engine will crawl in a timeframe..
- Taming Parameters (Lumar) — enterprise crawl-tooling perspective on parameter management, including Bing.
- Google pulling the plug on ‘low value’ URL parameters tool (9to5Google) — additional verbatim relay of Google’s deprecation announcement.
Quotes worth citing
- ~75% of crawl problemsCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. are faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. + action parameters. Gary Illyes (Google), via Search Engine Land: “The biggest issues were faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. and action parameters, which accounted for about 75% of the problems” — 50% faceted nav, 25% action parameters. Source
- Only ~1% of parameter configs were useful — Google’s reason for killing the URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool: “only about 1% of the parameter configurations currently specified in the URL Parameters tool are useful for crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor..” (Google’s 2022 blog, relayed verbatim by Search Engine Land.) Source
- The tool’s removal date. Barry Schwartz’s framing (his wording, not a Google quote): “Google will be sunsetting this feature on April 26, 2022 and you will no longer be able to access the tool after that date.” Source
- Keep the filter order fixed. Google’s faceted-nav doc: “Ensure that the logical order of the filters always stays the same and that no duplicate filters can exist.” Source
- Canonical is slow. Google: using
rel="canonical"“may, over time, decrease the crawl volume of non-canonical versions of those URLs.” Source
Test yourself: URL parameters
Five quick questions on handling parameterized URLs. Pick an answer for each, then check.
URL Parameters
The `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO.
Parent concept: Canonicalization · Related: Duplicate Content, Canonicalization, Canonical Tag
URL Parameters
A URL parameter (also called a query string or query parameter) is the part of a URL after the question mark (?) that passes data along with the request as key=value pairs, joined by & — for example example.com/shoes?color=blue&sort=price. Parameters do everything from carrying tracking tags and session IDs to driving filters, sorting, paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does., and on-site search.
The key distinction is active vs passive. Active parameters change what’s on the page — filter, sort, paginate, search — so they create real (often near-duplicateThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling.) content variants. Passive parameters — tracking tags like UTMs, gclid, fbclid, affiliate and session IDs — don’t change the content at all, so they create pure duplicates of the clean URL.
Because the same content can be reached through countless parameter combinations, parameters are a leading cause of duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling., split ranking signals, and wasted crawl budgetThe number of URLs an engine will crawl in a timeframe.. That makes them a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. problem: you let the variants be crawled and point a canonical at the clean version, or — for genuine crawl trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. — block the pattern in robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere..
One thing that’s changed: the Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL Parameters tool that used to manage this is gone (retired April 2022). Google now handles parameters automatically, so management today means consistent parameter handling, canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. for passive params, and robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. for true traps — plus Bing’s still-live Ignore URL Parameters tool on the Bing side.
Parent concept: Canonicalization · Related: Duplicate Content, Canonicalization, Canonical Tag
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Added verification caveats to the active/passive framework and parameter-management steps, and fixed a stale Google faceted-navigation doc link that now 301-redirects.
Change details
-
Active/passive classification is now framed explicitly as a diagnostic to verify against actual response behavior, not inferred from a parameter's name alone.
-
Added guidance to omit default-value parameters and normalize invalid combinations without collapsing genuinely distinct page states.
-
Added a caution to verify campaign capture and redirect behavior before stripping tracking parameters from internal links, with event tracking as an alternative for internal-only interactions.
-
Clarified that no single control replaced the retired GSC URL Parameters tool — fix URL generation and internal links, then pick a state-specific control and monitor via GSC's Pages/Crawl Stats reports.
-
Updated links to Google's faceted-navigation doc from the old crawling-indexing path (now a 301 redirect) to its current URL (developers.google.com/crawling/docs/faceted-navigation).
Full comparison unavailable — no prior snapshot was archived for this revision.