URL parameters (also known as “query strings”) are a way to structure additional information for a given URL. Parameters are added to the end of a URL after a ‘?’ symbol, and multiple parameters can be included when separated by the ‘&’ symbol.
Query parameters are primarily used to specify and sort content on a web page, but they’re also often used for traffic tracking.
This is an example of what a URL with URL parameters looks like:
What are URL parameters used for?
There are a number of reasons to use URL parameters. The most common are:
Sorting and Filtering: parameters are often used on large ecommerce sites (or similar) to allow users to dynamically generate a page with their desired sorting or filtering applied
e.g. /dresses?sort=a-z, /womens-shoes?color=red, or /hotels/seattle-wa?rating=5-star
Pagination: parameters can be used for identifying multiple pages of archive or search results
Site search: parameters can be used for passing through the search queries that someone used in a site search
Translation: parameters can be used for language options
Describing: parameters can be used to pass through details of a product
Tracking: parameters can be used for specific advertising campaigns or button clicks to be able to track traffic that came via that campaign or button
Why do URL parameters matter for SEO?
There are a few SEO considerations when it comes to URL parameters, largely because the use of parameters can lead to a high volume of pages with very similar content. Parameters are sometimes generated dynamically when a user completes an action without’t actually changing the content on the page. This can lead to a few common SEO issues:
Duplicate content: if we have a lot of different URLs that are all just parameterized versions of the same page, we don’t want search engine crawlers to view these as duplicate content, which is a problem since search engines like Google view it as low quality content.
Wasted crawl budget: Duplicate content is also a problem froma crawl budget perspective. If search engine crawlers are crawling many URLs that are all versions of the same page, they may not budget enough resources to crawl unique and valuable pages.
Dilution of page ranking signals: if other sites are linking to different versions of your URL due to parameter usage, the value of those backlinks is split across multiple versions of the same page. These pages could end up cannibalizing your primary page’s rankings.
Tracking issues: If you use a tracking tool like Google Analytics, many of the reports are based on exact URL. If you have a lot of different versions of the same page that use parameters, each of those will show up separately in your reports (unless you set up special configurations to address this).
URL parameters are a useful tool, especially when managing a website with a lot of pages, products, or a marketing strategy that relies on reliable tracking of various campaigns. So how do we make sure we can use URL parameters effectively without hurting SEO performance?
SEO best practices for URL parameters
For URLs with campaign parameters or which otherwise are serving completely duplicate content, add a canonical tag pointing to the non-parameter version.
For URLs where the content changes depending on parameters (i.e. filter / sort, pagination, languages), ask yourself whether these page variations have search value in their own right (e.g., a category page for shoes filtered to just include women’s shoes could have search value for “women’s shoes” queries which would be less relevant to the broader “all shoes” version of the page).
If a page with parameters has search value independent of the primary version of the page, you can leave it available for crawlers to crawl and index. Make sure that metadata and any on-page content is optimized and sufficiently targeted to differentiate the content from the primary version of the URL.
If a page with parameters does not have search value independent of the primary version of the page, but does have value for users, add a canonical tag. Don’t use robots.txt to block these pages.
For URLs where parameters are used for localization, use hreflang annotations to associate different country/language variations with each other. (Note that using parameters for country/language localization is not recommended for SEO purposes.)
Note that for sites with a lot of parameters, there is a tool in Google Search Console which can be used to help manage Google’s understanding and crawling of your site’s parameters. However, this is a more advanced approach and Google’s guidelines state that you should not use this tool unless:
your site has more than 1,000 pages, and
you see a significant number of duplicate pages being indexed by Googlebot, where these duplicate pages only vary by URL parameters, and
you are an experienced SEO.
Otherwise you risk causing Google to ignore important pages, without warning or reporting.