The parameter problem in plain English
Your website has one URL for each service page. yoursite.com/services/bookkeeping. Simple enough.
But then a buyer shares your site on social media with a tracking tag attached. yoursite.com/services/bookkeeping?utm_source=linkedin. Google finds that link, crawls it, and sees what looks like a different page from your original one. It has to decide: which version is the real one?
If your site does not tell Google explicitly, Google makes its own decision. Sometimes it picks the right version. Often it splits the ranking signals between both versions, weakening both. And over time, if your site generates many parameter variants, Google starts spending its crawl budget on these duplicates instead of your important pages.
How parameter URLs get created without your knowledge
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 callThree common sources. First: analytics and advertising tracking. UTM parameters from Google Ads, Meta campaigns, email newsletters. These are intentional — you add them — but buyers share these URLs, and Google follows those shared links.
Second: site search and filtering. If you have a search bar on your site, search results often appear at a parameter URL: yoursite.com/resources?search=seo. Every search query a user runs potentially creates a new crawlable URL.
Third: legacy systems. Old CMS platforms, shopping carts, and booking systems sometimes append session IDs, affiliate codes, or sorting parameters to every page URL. A site migrated from a legacy platform may have years of parameter contamination.
How to diagnose the problem
Open Google Search Console. Navigate to the Coverage or Pages report. Look at the total indexed page count. If you have a 30-page service business website but Search Console shows 600 indexed pages, you have a parameter problem. The extra 570 URLs are parameter variants Google has indexed instead of ignoring.
For targeted diagnosis: use the URL Inspection tool to enter a specific parameter URL you have seen (copy one from your Google Analytics referral data or from a social share). If Google reports it as indexed and not as an excluded duplicate, that parameter URL is competing with your canonical page.
The canonical tag fix
A canonical tag is a line of code in the HTML head section of your page that tells Google: "If you find this page through any URL variant, credit the signals to this specific URL."
The standard implementation adds a self-referencing canonical to every page. On your bookkeeping page, the canonical tag points to yoursite.com/services/bookkeeping — the clean, parameter-free URL. When Google crawls yoursite.com/services/bookkeeping?utm_source=linkedin, it reads the canonical tag and consolidates all signals from that variant to the clean URL.
In WordPress, Yoast SEO and Rank Math add canonical tags automatically to every page. On custom builds, a developer can add the canonical tag to the page template using a relative or absolute URL that strips all parameters.
The robots.txt approach for high-volume sites
For sites generating very high volumes of parameter URLs — ecommerce sites with many filter combinations, sites with session ID parameters — robots.txt exclusions can stop Googlebot from crawling parameter URLs entirely. This is more aggressive than canonical tags and should be used carefully.
The robots.txt approach: add a Disallow rule for the specific parameters you want excluded. This prevents crawling entirely, which means no link authority can flow through those URLs either. For most service business websites, canonical tags are the better choice. For high-volume ecommerce, robots.txt exclusions for parameter URL types are worth considering with developer input.
Confirming the fix worked
After implementing canonical tags, monitor the Coverage report in Search Console monthly. The indexed page count should decline toward your actual content page count as Google processes the canonical signals and de-indexes the parameter variants. This can take 4-12 weeks depending on how frequently Googlebot crawls your site.
You can accelerate the process by submitting your sitemap to Search Console after implementing the fix. The sitemap should contain only your canonical, parameter-free URLs — this gives Google a clean map of what you actually want indexed.
