What are URL parameters?
URL parameters, also called query strings, are the part of a URL after the ?, written as key=value pairs joined with &. In https://example.com/shop/?orderby=price&filter_color=blue, there are two parameters: one sorts, one filters.
Search engines treat every distinct URL as a potentially separate page. So a single category page can turn into hundreds of URLs once sort orders, filters, tracking tags and session IDs are combined. Google's documentation warns that overly complex URLs with many parameters can make Googlebot use far more bandwidth than needed, or leave it unable to index all your content.
Two kinds of parameters
It helps to sort parameters by what they do to the page:
| Changes the content | Doesn't change the content |
|---|---|
?s=boots (WordPress search) | ?utm_source=newsletter (campaign tracking) |
?filter_color=blue (WooCommerce layered navigation) | ?fbclid=... or ?gclid=... (ad click IDs) |
?orderby=price (sort order, same items) | ?ref=partner (referral tags) |
?page_id=42 (plain permalinks) | Session or cart tokens |
Content-changing parameters may deserve crawling. Parameters that leave the page the same are pure duplicates, and the goal is to keep them out of the index.
How Google wants them written
Google asks for the standard format: = between key and value, & between pairs, and commas for several values of one key, as in ?color=purple,pink. Remember that URLs are case sensitive, so ?Color=Blue and ?color=blue are different addresses. Trim parameters that don't change the content whenever you can.
Search Console used to have a URL Parameters tool for telling Google how to treat each parameter. Google retired it in 2022, so handling now happens on your site.
Taming them on a WordPress site
- Canonical tags. A self-referencing canonical on the clean URL consolidates tracking duplicates. Hydrogen SEO prints one on every post, page, term and archive, which covers
utm_and click-ID variants automatically. - Don't link to parameter URLs internally. Tracking tags belong on links from outside, not in your own menus.
- Block crawl traps in robots.txt. WooCommerce
?add-to-cart=links and endless filter combinations are good candidates, for exampleDisallow: /*?add-to-cart=. Test rules first with the robots.txt tester. - Keep internal search out of the index, since
?s=pages can be generated for any word.
For filters that create real category views, see faceted navigation.
Common questions
Do UTM parameters hurt SEO?
Not by themselves. They create duplicate URLs, but a self-referencing canonical on the clean URL tells search engines which version to index.
Should I block all parameter URLs in robots.txt?
No. Blocking stops Google from seeing the canonical tag on those URLs, and some parameters change content that deserves crawling. Block only true crawl traps.
Does Google still have a URL Parameters tool?
No. Google retired the Search Console URL Parameters tool in 2022.