What URL parameters are doing to your site

A URL parameter is anything that appears after a question mark in a URL. yoursite.com/products?sort=price-asc. yoursite.com/page?sessionid=abc123. yoursite.com/service?ref=facebook.

To a buyer, these look like the same page. To Googlebot, they are different URLs — and Googlebot crawls every unique URL it discovers. If your site generates hundreds or thousands of parameter variants, Google is spending its crawl budget on low-value duplicate pages instead of your actual content.

This is one of the most common technical issues I find on sites that have been online for more than two years. It rarely causes an obvious problem. It silently suppresses ranking performance by wasting the crawl attention that should go to your most important pages.

The three types of parameters that cause the most damage

Work With John

Your site should be your best salesperson. If it is not, that is a fixable problem.

I work with US service businesses and B2B brands to build SEO systems that produce consistent, compounding leads. I will tell you exactly what is broken. No pitch.

Book a free strategy call

Session IDs in URLs

Some legacy systems and shopping carts append a unique session identifier to every URL a user visits. yoursite.com/contact?session=abc123def456. Each session creates a new unique URL. Googlebot discovers and tries to crawl every one. A site with moderate traffic can generate tens of thousands of unique session-based URLs, essentially creating a different "version" of every page for every visitor.

This is fixable at the server level by moving session tracking to cookies instead of URLs. On most modern platforms this is the default. On older systems, it often requires a developer to implement.

Sort and filter parameters

Ecommerce sites and service directories commonly use URL parameters for filtering: ?price=low-to-high, ?location=downtown, ?category=residential. Each parameter combination creates a new URL. A site with 5 filter categories, each with 4 options, can generate hundreds of unique parameter combinations — most of which are near-duplicate pages with thin content.

The fix is canonical tags pointing all parameter variants to the base URL, or robots.txt exclusions for the specific parameter types. Canonical tags are generally preferred because they still allow Google to discover the content — they just specify which version to index.

Tracking parameters

UTM parameters for analytics tracking — ?utm_source=facebook&utm_medium=paid&utm_campaign=spring2026 — are the most common external cause of URL proliferation. These appear in Google's index when users share parameter-tagged URLs on social media or in emails, and Google follows those links.

The standard fix is a self-referencing canonical tag on every page that strips the tracking parameters. This tells Google: "Index the clean URL, not this tracked version." Most modern analytics implementations handle this correctly by default. Legacy setups often do not.

How to check whether this is affecting your site

Open Google Search Console. Navigate to the Coverage report (or Pages report in newer versions). Look at the total number of indexed pages. Compare it to how many pages you actually have on your site.

If Search Console shows 3,000 indexed pages and you have a 50-page service business website, you have a parameter problem. That index is filled with parameter variants of your real pages.

Also check the Excluded section of the Coverage report. Google often catches and excludes parameter URLs automatically — but not always completely. Any line item referencing "parameter" or showing a large number of excluded pages is worth investigating.

The fix, in order of preference

First choice: canonical tags. Add a self-referencing canonical tag to every page pointing to the clean, parameter-free URL. This signals to Google which version to index while still allowing the parameter versions to function for tracking or filtering purposes.

Second choice: robots.txt exclusion. If you have specific parameter types that should never be indexed, you can disallow them in robots.txt. Use this carefully — a robots.txt exclusion prevents crawling entirely, which also prevents the content from being indexed even if it is valuable.

Third choice: URL parameter handling in Google Search Console. The legacy URL Parameters tool in Search Console allowed you to tell Google how to handle specific parameters. This tool has been deprecated, but the underlying principle remains: the cleaner you can keep your crawled URL space, the more efficiently Google processes your important content.