A question mark in an address can mean several things. It might carry a campaign label. It might change the sort order. It might select an entirely different piece of content.
In September 2026 I fixed URL variants that were declaring themselves to be separate preferred pages when they showed the same underlying content. Tracking information had leaked into canonical output, and different parts of the site were not making the same decision about which address represented the page.
Decide what changes the content
I start by listing the parameters the site actually uses. A marketing identifier usually describes how someone arrived. A product filter may change what they see. A preview flag may select a private or temporary view. Treating all three the same is a blunt instrument.
The fix added a consistent default for ordinary variants while retaining a deliberate way for a site to say that a particular variation had its own purpose. That is preferable to removing every query string everywhere.
Keep the signals aligned
For duplicate views I want internal links, sitemap entries and canonical declarations to agree on the intended address. If a variant should redirect, the redirect needs to preserve the useful journey. If it remains available, its metadata should still describe the correct page.
A canonical is a signal about a preferred version; it is not a switch that guarantees which URL Google will show. Google’s canonicalisation documentation is the reference I use when checking those signals.
My small test set
- The clean page address.
- The same page reached through a campaign link.
- A meaningful filter or alternative view, if the site has one.
- An archive’s second page.
- A genuine search or preview request.
For each, I record what content loads, the HTTP response, the canonical and the robots instruction. That catches a “fix” which tidies the metadata but accidentally breaks the route itself.
I also test links generated by the site rather than only addresses I have typed by hand. Otherwise a helper can keep producing the very variants I am trying to bring under control.
Keep it proportionate
I would not build a complicated indexable filter strategy for a site that does not need one. Equally, I would not erase a useful landing page just because it uses a parameter. The decision starts with the reader’s task and the content, then the URL rules follow it.