URL parameters are a useful way to pass information directly in a hyperlink or via the browser address bar.
You’ll see them often on all kinds of websites, after a question mark in the page URL.
Parameters can pass data to your analytics software, alter the appearance and content of the page, and achieve a whole range of other results.
Multiple parameters can be used on a single page, separated by ampersands (the ‘&’ symbol) in the URL.
However, poor URL parameter handling can be disastrous for your search presence.
If the search engines think each version of the page is a different URL, they can falsely identify the text on that page as duplicate content – and it can vanish from the search results.
In this guide to URL parameter handling, we’ll look more closely at how to use URL parameters, along with some best practice for URL parameters and SEO.
What are URL parameters used for?
URL parameters are variables concatenated to the end of the page URL after a question mark, and separated by ‘&’ symbols when multiple parameters are used.
Each URL parameter (sometimes known as a ‘query string’) contains a ‘key’ which names the variable and a ‘value’ which defines its value. The key and value are joined by an equals sign.
The result is a string of one or more URL variables that looks something like:
Parameter keys can be descriptive, e.g. ‘size=large’ or ‘colour=red’, to make them easier to understand for anyone looking directly at the URL.
Common examples of what URL parameters are used for include:
- Filtering (e.g. by colour, date range, price range or size)
- Identifiers (e.g. a specific product or category)
- Pagination (to load a specific numbered page or range of items)
- Searching (to pass the query string to the page)
- Session Tracking (including UTM parameters for analytics)
- Sorting (e.g. by date, by price, by relevance)
- Translation (to pass the chosen language to the page)
Some of these obviously change the page content significantly, such as translating it into a different language or loading a different numbered page. But many of them are cosmetic, such as sorting items into a different order or just passing tracking data.
If you don’t follow best practice for URL parameters, these multiple versions of the same page can be detected, crawled and indexed separately by the search engines, leading to duplicate content flags for your website and/or unintended keyword cannibalisation.
The cost of poor parameter practice
Poor practice with URL parameters can have real consequences, especially if it causes the search engine robots to detect a very large number of ‘different’ pages on your server, which are actually the same content just with different parameters on the end of the URL.
Some of the main risks include:
- False positive duplicate content flags and rank fluctuations
- High bandwidth demand as robots crawl pages over and over
- Slower indexing as robots struggle to keep up
In the worst cases, pages might significantly fall down the rankings, disappear completely from the SERPs after being flagged as duplicate content, or never get indexed at all as the robots fail to crawl parts of your website.
When URL parameters cause different versions of the same page to be detected as unique pages, this can also complicate your analytics data, making it harder to track performance as third-party websites and social media users link to different URLs for the same page.
URL parameters and poor UX
User experience, or UX, is about making your website easier for human visitors to use. Long strings of URL parameters make URLs complex and for beginners, that can look quite scary, leading to less people linking to your page.
Dodgy-looking URLs can also reduce your clickthrough rate, affecting your human traffic arriving to a landing page, and negatively influencing your search rankings.
Amplified across every page on your site, even a small negative impact can add up to a substantial fall in aggregate search rankings, total traffic and ultimately, sales volumes and values.
Make sure you put human UX high on your list of what matters when building out your website with new pages and content – SEO is important but it’s not the only thing you should keep in mind.
At the very least, use descriptive URL variable keys, so users can clearly see that your parameters are not doing anything suspicious, but are just filtering or sorting the page data.
What are UTM parameters?
It’s worth taking a moment to understand UTM parameters. UTM stands for Urchin Tracking Module, and refers to a set of five standardised URL parameters that pass data to analytics platforms like Google Analytics:
- utm_source: Used to track the referring site via the hyperlink URL.
- utm_medium: Used more generally to group referrers, e.g. ‘social’ for links from social networks.
- utm_campaign: Used across all the links in a specific SEO, PPC or equivalent campaign.
- utm_term: Used to specify which search terms were used to find the page.
- utm_content: Used to identify the page content that was clicked to link to the page, e.g. a text link, logo or banner ad.
Combining multiple UTM parameters can provide useful granular and aggregate data to track the performance of online marketing campaigns in detail, and parameters can overlap in different ways, so that you can view all your traffic from one campaign across all sources, or from one source or medium across all current campaigns, and so on.
How to audit URL parameters
If you think you have a problem with URL parameters, it’s good to start with an audit of your entire site to identify all the parameters you are currently using – including any that your developers have not kept a note of.
An easy way to do this is to crawl your site and search for any page URLs that contain a question mark, as this is used to demarcate the start of the parameters string.
Google Search Console’s URL Parameters Tool does this automatically, so this can be a good first place to check.
Alternatively, filter your Google Analytics data to only show pages that contain a question mark in their URL, and this again should give you a list of your current URL parameters.
Five ways to tackle URL parameters
Once you know the full list of URL parameters in use on your site, you can start to take action against any unruly parameters that might be harming your search performance, traffic and conversion rates.
Here are 5 ways to tackle URL parameters to help you get started:
1. Eliminate unnecessary URL parameters
Look for URL parameters that are hardly ever used, as you may be able to remove these completely, or combine them with a different parameter (e.g. ‘featured’ and ‘recommended’ filters).
Make sure you are using URL parameters in line with current practice. Session IDs may be better stored as cookies, rather than as visible variables in the address bar.
2. Remove blank URL parameters
Poor configuration can cause URL parameters to appear in the address bar even when they have no value – this is unnecessary complication and serves no useful purpose.
Remove blank parameters from your page URLs and you keep things simple. You might even find that pages don’t need historic URL parameters anymore at all.
3. Single use parameter keys
It’s best practice to use variables only once, and the same applies to URL parameters. For each key, make sure you only assign one value.
Of course you can update the value, for example as the user clicks through from page=2 to page=3 and so on, but you should avoid using the same key multiple times in a single page URL.
4. Consistent parameter order
It’s also best practice to put your parameters in the same order every time, so that your page URLs are consistent – and so that any one page always has the same sequence of parameters in its URL.
You can use any order of your preference, for example alphabetical order. You might find it useful to group parameters into identifiers, pagination, sorting/filtering and search queries, with UTM parameters and any other tracking placed last of all.
5. Server-side static URLs
Server-side URL rewrites can take parameter strings and turn them into static URLs that point to a particular version of a page. This reduces complexity and helps the search engine robots – especially Google – to understand your site hierarchy as a structure of subfolders.
This is not suitable for UTM tracking variables, or for free-text variables such as user-generated search queries, but it can work well for filters such as different sizes and colours of the same product.
More top tips to reduce URL parameter confusion
There are a few more tools in your belt to reduce URL parameter confusion for the search bots and ensure the major search engines, including Google and Bing, can crawl your content successfully:
- rel=”canonical” attributes to point to the definitive SEO-friendly version of a page.
- txt file in your server root folder to apply site-wide rules to block crawler access.
- robots=”noindex” meta tag to prevent search engines from indexing unwanted pages.
Finally, proactively define your URL parameters in the Google Search Console legacy URL Parameter Tool, and you can designate specific variables as:
- ‘representative’ if page content is unchanged (e.g. UTM tracking).
- ‘sorts’ if the parameter changes the order of content on the page.
- ‘narrows’ if the parameter filters the page content to narrow it down.
- ‘specifies’ if the parameter displays a specific item (e.g. an ecommerce product).
- ‘translates’ if the parameter changes the language of the page content.
- ‘paginates’ for pagination/navigation parameters.
By proactively defining your URL parameters, you can prevent them from being listed as ‘Let Googlebot decide’, putting the control in your hands instead of in Google’s.
Do what works for you
The above tips for URL parameter best practice are not exhaustive, and you might not need to use them all – in fact, you probably won’t.
Always start with an audit of your existing variables, eliminate any that are obsolete, and then optimise those in current use.
From there, you can take logical steps to implement alternative methods that make sense for you, your website and your audience, to drive the best possible results while still giving your website its essential functionality.