URL parameters are the part of a web address after the question mark, and they can turn one page into hundreds of URLs. The fix depends on the type. Canonical tags consolidate duplicates such as tracking links, robots.txt keeps Google away from filter combinations you never want crawled, and session IDs belong in cookies rather than URLs.
What URL parameters do to your site
A parameter is anything after the question mark in a URL, as in yoursite.com/products?sort=price-asc, yoursite.com/page?sessionid=abc123 or yoursite.com/service?ref=facebook.
A visitor sees one page. Googlebot sees separate URLs, and it may try to crawl each one it finds, including combinations nobody would ever type. When a site generates hundreds or thousands of parameter versions, Google can spend its time on near-duplicates instead of your real pages, and some of those duplicates can end up in the index.
The problem is common on sites that have been online for a few years and have gathered plugins, filters and tracking along the way. Nothing breaks. That's why nobody notices.
How big a problem is it for your site?
Google's guide to crawl budget is written for large sites: roughly a million or more pages that change weekly, or 10,000 or more pages that change daily. If your site doesn't have a large number of pages changing that quickly, Google says you don't need the guide, and keeping your sitemap current and checking the Page indexing report is enough.
So for a typical service business site, the main risk is duplicate parameter URLs getting indexed and splitting signals with your real pages, rather than Google running out of time to crawl them.
Work With John
If your site isn't bringing in enquiries, that's fixable.
I work with US service businesses and B2B brands on SEO, websites and lead follow-up. On a free strategy call, I'll tell you what's holding your site back, without a sales pitch.
Book a free strategy callThe three kinds of parameter that cause trouble
Session IDs in URLs
Some older systems and shopping carts add a unique session ID to every URL a visitor opens, such as yoursite.com/contact?session=abc123def456. Each visit creates new URLs, so a site with steady traffic can produce thousands of versions of the same pages.
The fix is server-side: keep session tracking in cookies rather than URLs. Modern platforms already work this way. Older systems usually need a developer.
Sort and filter parameters
Stores and directories often filter with parameters, such as ?price=low-to-high, ?location=downtown or ?category=residential. Five filter types with four options each can produce hundreds of combinations, every one of them a separate URL and most of them thin near-duplicates of the main listing page.
Google's guide to filter URLs is clear. If you don't need those URLs indexed, use robots.txt to stop Google crawling them, and leave the individual item pages and one unfiltered listing page crawlable. Pointing canonical tags at the unfiltered page can reduce crawling over time, but Google calls that approach generally less effective in the long term.
Tracking parameters
UTM tags for analytics, such as ?utm_source=facebook&utm_medium=paid&utm_campaign=spring2026, are the most common outside source of extra URLs. People share tagged links on social media and in emails, and Google follows them.
The standard fix is a self-referencing canonical tag on every page that points to the clean URL without the tracking tags, which tells Google which version to index. Most modern CMS setups and SEO plugins add it by default. Older setups often don't.
How to check whether this affects your site
Open Google Search Console and go to the Page indexing report. Compare the indexed count with your real page count.
Say Search Console shows 3,000 indexed pages and you run a 50-page service business site. Parameter versions of your real pages are the likely cause.
Then read the reasons listed under "Why pages aren't indexed". Google catches and excludes plenty of parameter URLs by itself, though not always all of them, and a large count of duplicate or alternate pages is worth a closer look. To check one URL, use URL Inspection.
The fixes, matched to the problem
For duplicates you want consolidated, such as tracking links or the same page reached by several paths, use a self-referencing canonical tag that points to the clean URL. The parameter versions keep working for tracking and filtering, and Google knows which one to index.
For filter and sort combinations that never need to be in search, block them with robots.txt, as Google's guide to filter URLs recommends. Be precise with the rules, because a blocked URL can't be crawled at all, and Google won't see anything on it.
Session IDs go in cookies.
There used to be a URL Parameters tool in Search Console where you could tell Google how to treat each parameter, but Google retired it in 2022, so the fix has to live on your site now.
While you're cleaning up, check whether every URL in your sitemap shares the same lastmod date. It's a separate problem, and I cover it here.
