Losing clicks to competitors? Find out exactly why, and what to fix first.

Show me why
Skip to content

Technical SEO

URL Parameters and SEO: Tracking, Sorting and Filters

Add saadrazaseo.com as a preferred source on Google

Free and no obligation. A real reply from me, not a bot.

URL parameters are the query-string additions after a question mark, such as ?sort=price or ?utm_source=email. They can create many URLs for the same content, wasting crawl effort and splitting signals. Keep parameters off internal links, canonicalise the useful variants, block low-value filter combinations from crawling, and keep tracking tags on external links only.

The 2024 HTTP Archive Web Almanac SEO chapter found canonical tags on 65% of mobile pages and 69% of desktop pages, which shows how common duplicate-URL management has become across the web.

A parameter is just a name and value pair added to a URL. On its own it is harmless. The trouble starts when a shop with 500 products offers sorting, filtering, pagination and tracking, and the combinations multiply into tens of thousands of crawlable addresses that mostly show the same items. This guide separates the types of parameter, explains what each costs you, and gives a decision table for handling them.

The main types of URL parameter

Handling depends on what the parameter does to the page. Before choosing a fix, classify each one.

TypeExampleChanges the content?Usual handling
Tracking?utm_source=newsletterNoCanonical to the clean URL; use on external links only
Session or visitor ID?sessionid=48213NoRemove from URLs entirely; use cookies
Sorting?sort=price_ascReorders the same itemsCanonical to the default order; consider blocking crawling
Filtering (facets)?colour=red&size=mShows a subsetIndex only combinations with real demand; control the rest
Pagination?page=3Shows different itemsKeep crawlable and self-canonical
On-site search?s=blue+shirtShows resultsUsually keep out of the index and out of crawl paths
Translation or display?lang=fr, ?view=gridSometimesPrefer real, separate URLs for languages

Why parameters cause duplication and crawl waste

Search engines treat each distinct URL as a separate address. If ten URLs show effectively the same page, signals such as links can be split between them, and you rely on the engine to choose the version you prefer. Google’s guidance on managing faceted navigation names the two main problems directly: overcrawling, where a crawler fetches many URLs before it works out they are not useful, and slower discovery of new content, because crawl effort is spent on URLs that add nothing.

For a small brochure site this barely matters. For a catalogue with filters it can matter a great deal. My explainer on crawl budget covers when it is worth worrying about, and my honest rule is that if your site has under a few thousand real pages and no filter system, parameters are a hygiene issue, not an emergency.

Rather have an expert do this for you?

Hand it over and get back to running your business.

Hand it over to me

Choosing the right control: a decision table

There are four main tools, and they do different jobs. Using the wrong one is the commonest mistake I see.

SituationBest toolWhy
Tracking tag creates a duplicate of a normal pagerel=canonical to the clean URLConsolidates signals; the page must stay crawlable so the tag can be read
Large set of filter or sort URLs wasting crawl effortrobots.txt disallow patternStops crawling, which canonical alone only reduces over time
Filtered page should never appear in search but must be crawlablenoindexRemoves it from the index; Google must crawl it to see the tag
Old parameter URL has been replaced by a clean one301 redirectStrongest consolidation signal
Filter combination returns no products404 statusGoogle advises a 404 rather than redirecting to an error page

Google’s page on consolidating duplicate URLs ranks redirects and rel=canonical as strong signals, and warns against using robots.txt as a canonicalisation method. That warning matters because of a conflict I cover in more depth in noindex vs canonical vs robots.txt: if you block a URL in robots.txt, Google cannot fetch it, so it cannot see the canonical or noindex tag on it. Pick one job per URL pattern. For the tag itself, see what a canonical tag is.

How Google’s own faceted navigation advice breaks down

The same guidance gives specific tactics worth knowing:

  • Use the standard separator. Google recommends the ampersand to separate parameters. Commas, semicolons and brackets make it harder for crawlers to recognise where one parameter ends.
  • robots.txt for filters. It gives a pattern in the style of disallow: /*?*products= to stop crawling of filtered pages while leaving the unfiltered ones open. Test any pattern carefully, because a loose rule can block pages you want crawled.
  • rel=canonical is slower. Google says canonicalising faceted URLs may, over time, reduce crawling of the non-canonical versions. It is gentler and less immediate than blocking.
  • rel=nofollow on filter links. It can help, but only if every link to a filtered URL carries it. One unmarked link elsewhere undoes the effect.
  • URL fragments. Google generally does not support fragments (the part after #) in crawling and indexing, so a filter built on fragments neither helps nor harms crawl behaviour.

My own view is that the robots.txt route is the right one for sprawling filters on large stores, and canonical tags are the right default for everything else. The syntax is simple but unforgiving, so test every pattern before it goes live.

A worked example (illustrative)

Imagine a Karachi homeware shop with 300 products and four filters: colour, material, price band and sort order. If every combination is crawlable, the shop can expose a huge number of addresses for the same 300 products. A sensible plan would be:

  • Give each product and category one clean URL, with a self-referencing canonical.
  • Let a handful of high-demand combinations, such as a “cotton bedsheets” page, become proper static pages with their own titles and internal links.
  • Disallow crawling of sort order and price band parameters with a tested robots.txt pattern.
  • Return a 404 where a filter combination has no products.
  • Keep UTM tags on emails and adverts only, with canonicals pointing to the clean address.

This is a planning example, not a client result. The point is that each parameter gets a deliberate job, instead of one blanket rule for everything.

The cheapest fix is to stop creating the problem. Your internal links are a statement about which URLs matter, and a crawler follows them.

  • Link to clean category and product URLs in menus, breadcrumbs, related products and banners.
  • Never add UTM tags to links between your own pages. They create duplicates and corrupt your analytics, because the visit appears to come from a new source.
  • Keep parameter links out of XML sitemaps. List only the canonical URLs.
  • If a filter combination deserves to rank (for example a “red running shoes” page with real search demand), give it a proper static URL, a unique title and an internal link, instead of relying on a parameter.

If a parameter URL has no internal links and no sitemap entry it can still be found through external links and old campaigns, which is why you pair this with a canonical. A page nobody links to at all is a different problem, covered in how to find and fix orphan pages.

Handling UTM and tracking parameters

Tracking tags are the one type you should keep, since marketing teams need them. The rules are simple.

  1. Use UTM tags only on links from outside your site: emails, social posts, adverts, partner pages.
  2. Make sure every page has a self-referencing canonical to the clean URL, so a tagged copy consolidates onto the original.
  3. Agree a naming convention (lowercase, consistent source and medium names) so reports are not fragmented.
  4. For internal promotions, measure clicks as events in your analytics tool rather than appending parameters to links.

About the retired URL Parameters tool

Search Console used to have a URL Parameters tool where you could tell Google how to treat each parameter. Google announced its retirement in a March 2022 post titled Spring cleaning: the URL Parameters tool. If an older guide tells you to configure parameters there, it is out of date. The controls above, in your own code and files, are the way to manage this now.

A parameter audit in six steps

  1. Crawl the site and export every URL containing a question mark.
  2. Group them by parameter name and count how many URLs each creates.
  3. Classify each parameter using the first table in this guide.
  4. Check for duplicates in search with a site: query and in Search Console’s indexing reports.
  5. Apply one control per pattern, and document it.
  6. Re-crawl, then watch the number of parameter URLs being crawled and indexed over the following weeks.

Status codes matter during the clean-up, so keep my guide to HTTP status codes open when deciding between 301, 404 and 410. Parameter handling is one of the items inside my WordPress technical SEO checklist too, since WooCommerce and many themes generate sort and filter URLs by default.

Questions about URL parameters

Do URL parameters hurt SEO?

Not automatically. They hurt when they produce many crawlable duplicates or split links across versions. A site with a few harmless tracking tags and correct canonicals is fine.

Should I block parameters in robots.txt or use canonical tags?

Use canonical tags when you want the URL consolidated and still crawlable, and robots.txt for large sets of low-value filter URLs you do not want crawled. Do not use both on the same URL, because blocking prevents Google reading the canonical.

Are UTM parameters bad for SEO?

No, provided they appear on external links only and your pages carry a self-referencing canonical. The harm comes from using them on internal links.

What replaced the URL Parameters tool?

Nothing replaced it directly. Google retired it in 2022, and the management now sits in your site: clean internal links, canonicals, redirects, robots.txt rules and sensible status codes.

If your store or blog is generating thousands of parameter URLs and you are unsure which controls to apply, ask for a free audit and I will map what is being crawled. This kind of clean-up is a core part of technical SEO services.

More in this series (Technical SEO in depth): start with WordPress Technical SEO Checklist: What to Fix First, then explore:

Rather have an expert do this for you?

Tell me about your website and goals, and I will reply with a free first review.

Your details are only used to reply to your request. No spam.

Grow my trafficCall