URLs are webpage addresses. When you click on a linked URL or type one into your web browser, it tells your browser what page to load. Imagine, though, that that web address takes you to the doorstep of a huge apartment building. Yes, you arrived at the right location, but now what?
This is where URL parameters come in. They provide additional information, like an apartment number in the imaginary example above. Sometimes browsers need to know more than just the location of a page; they may need to know where the link originated, how to organize the page’s content, or other context.
Understanding URL parameters is not only crucial to reading URLs, but it can also help you manage your website. Here’s what you need to know.
What are URL parameters?
A URL, which stands for uniform resource locator, is a web address identifier. A URL parameter, also known as a query string or URL query string, is extra information added to the end of the URL that modifies or specifies the content displayed on the web page, and can include details about where the user is from. They are separated from the rest of the URL by a “?”; anything before the question mark is the root URL, and anything after is a parameter.
These parameters provide additional context and information to the web browser. Depending on the website and its functionality, they can have various purposes, from changing the page’s contents—like search results, filters, and language preferences—to providing analytical information.
More specifically, a URL parameter is a series of key-value pairings—data items with corresponding values—appended to the end of a URL, after the domain name. An example of a key would be utm_source, and an example of a value with which it could be paired is google. This is expressed in a parameter as “?utm_source=google.” (Learn more about UTM parameters below.) There’s no limit to the number of individual parameters attached to a single URL. Multiple parameters each divided by the “&” symbol.
Take the following URL, for example:
The page location is “https://www.shopify.com/blog/,” and the parameters are “?utm_source=facebook&utm_medium=ppc&exampleparam=example.” Looking closely at this URL string, you see three individual parameters, each broken up by an “&”: “utm_source=facebook,” “utm_medium=ppc”, and “exampleparam=example.”
URL parameters vs. clean URLs
URL parameters have drawbacks. Although they can provide additional context and information to web browsers, clean URLs—URLs without parameters—are easier to read and understand for both users and search engines:
- For users. Clean URLs are typically more concise, making them easier to share and remember.
- For search engines. Clean URLs without unnecessary parameters make it easier for search engine crawlers to navigate and understand a website’s structure. They also help avoid duplicate content; URLs with parameters can cause multiple URLs to point to the same content, leading to duplicate content issues (where search engines may struggle to determine the canonical version of a page).
Uses of URL parameters
All URL parameters are found in the same part of the URL—at the end, following a “?,” and separated by an “&”—but these parameters affect the web page they represent in different ways. Here are the four main uses of URL parameters.
1. Modifying content
Content modifying parameters can modify the content displayed on a web page. They’re mainly used on dynamic pages, meaning pages that can change based on how users interact with them.
For example, you may want to host a quiz for your customers on a single page of your website: “company.com/quiz.” However, you want to display only one question at a time to avoid overwhelming users and make it so new questions depend on their previous answers. If users don’t complete the quiz in a single sitting, you also want them to be able to return to the quiz where they left off. If you program the quiz to associate a parameter with each step (“/quiz?step=1”, “/quiz?step=2,” and so on), the browser can understand what step to display. This allows users to return to this step by entering the full URL and the parameter.
Another typical example of a modifying parameter is YouTube’s use of the “t” parameter. The online video service uses it to determine the timestamp where playback starts. For example, “?t=125” tells YouTube to play 125 seconds into the video when the page loads.
2. Sorting and filtering content
This is technically a subset of modifying content, but important and common enough to be discussed separately. When a page contains an assortment of objects, such as products on a collection page, it often uses parameters to understand how to arrange those objects.
If your website displays a list of products, you can use content sorting parameters to filter products by category or price, or search for a specific product using keywords. A URL with a sorting parameter might look like this:
The parameter category is used to modify the content displayed on the page by showing only products in the “clothing” category.
Standard Shopify themes use these parameters to paginate (e.g., “page=1”, “page=2,” and so on), sort the order (e.g., “?sort_by=title-ascending,” or “?sort_by=price-descending”), or filter to display a subset of objects (e.g., “?filter.v.availability=1”). Muck N Brass’s Best Sellers page uses all three types.
3. Informing web analytics
URL parameters used for informing web analytics contain information about website traffic to better understand how users find and interact with the site.
Unlike parameters designed to modify, sort, or filter, analytics parameters don’t change the content on the page. Instead, they provide context to the browser about the visit, such as the source of the traffic (e.g., a specific website or social media platform), the medium (e.g., email or referral), and the particular campaign or promotion the link is associated with, which can be used for marketing analytics, thanks to tools such as Google Analytics.
Here are typical examples of tracking parameters:
- “utm_source,” “utm_medium,” and “utm_campaign.” These three parameters fit Google Analytics’ standard conventions for understanding web traffic. They are most commonly used in advertising (e.g., “?utm_source=facebook&utm_medium=ppc&utm_campaign=summersale”). UTM stands for Urchin Tracking Module, the name of the web analytics software that was later acquired by Google and integrated into Google Analytics.
- “Gclid” and “fbclid.” These are used by Google Ads and Meta Ads as tracking parameters for clicks from ads on their platforms. They can help distinguish between the performance of different subsets of digital advertising campaigns, such as ad variants and keywords.
- “affid.” This parameter, and others like it, is used to identify affiliate referrals.
- “clientid” and “userid.” These are used to track users by aligning the specific browser being used with a user in the analytics tools’ database.
4. Informing code
Most parameter examples shared so far are commonly used conventions (for example, “utm_source,” “category,” “step”) that help marketers. But parameters can be used to tell the browser anything. Developers use them to achieve a wide variety of outcomes for their code.
If a developer wanted to, for example, they could write a line of code that looks for the parameter “?surprise,” and change all the text to red if the URL contains “?surprise=true.” In this case, “example.com/page?surprise=true” would change the text to red, but “example.com/page?surprise=false” or just “example.com/page” would not.
SEO issues caused by URL parameters
URL parameters can be essential, but they can also negatively impact SEO performance. Unlike the domain and subfolder portion of the URL, URL parameters don’t provide a page location but instead provide information about the page.
However, search engine crawlers—bots that index web pages for search engines—don’t know this. Without additional context, when crawlers crawl a page URL with parameters (such as “https://mucknbrass.com/collections/best-sellers?sort_by=best-selling”), they crawl it as if it’s a unique page, separate from “https://mucknbrass.com/collections/best-sellers.”
URL parameters can create a few common SEO issues:
- Duplicate content risk. If a search engine crawls two pages, “/collections/featured/” and “collections/featured?sort_by=price=ascending,” and finds that the content is essentially identical but in a different order, Google won’t know which page to rank in its search results, which can lead to lower overall rankings.
- Overuse of crawl budgets. Search engines set rules about how many URLs to crawl per website. Sites with high traffic get a larger budget than low-traffic sites, but every site has a limit. A site with hundreds or thousands of page variants created by URL parameters can quickly eat through its crawl budget. As a result, crawlers might leave out some of the site’s more important pages.
- Diluted backlink profile. Backlinks—links from other websites to your website—are critical for SEO. If some of your backlinks go to “/collections/featured/” and some to “collections/featured?sort_by=price=ascending,” the trust signal from these backlinks is split between the two pages, meaning search engines won’t know which page to show in search results.
Solutions for parameter-based SEO issues
Search engines like Google have gotten better at inferring the meaning of standard parameters, such as “sort_by” or “utm_campaign,” and understanding how to treat them. This is why Google removed its URL parameters tool, which was made to help website managers clarify the purpose of their parameters to Google. Nevertheless, parameter issues can persist and, when unaddressed, can hinder your SEO performance.
All solutions for parameter-based SEO issues revolve around the same principle: Make it clear to search engines which are the preferred versions of your URLs and which to ignore. It is a useful analogy to think of websites as having a daily budget of 100 crawl credits. Each unique page on the website consumes one credit, while a URL with a parameter and different values consumes additional credits. If the same URL with different parameters is found 10 times, it will cost 10 credits instead of one.
Three tools are at your disposal for solving parameter-based SEO issues:
- Canonical tags. A canonical tag is an HTML tag that tells a search engine, “This is the preferred version of the web page that should be indexed and ranked.” Designating the canonical page helps avoid duplicate content issues and ensures that the search engine understands the primary source of the content. Shopify employs this best practice by default. Properly used canonical tags generally are enough to handle most parameter-based SEO issues.
- Site map. Uploading a site map to your site and Google Search Console tells Google and other search engines which are the essential pages on your site. Shopify also generates this by default, though it must still be submitted. You can usually see a site’s site map by typing “/sitemap.xml” at the end of a domain name.
- Robots.txt. Like a sitemap, a robots.txt file tells search engines which parts of a site to crawl. But whereas a sitemap is treated as a guideline, crawlers treat robots.txt files as rules. Therefore, these should only be edited when updating canonical tags and when your sitemap has failed to stop parameter-based pages from being crawled (Shopify stores have the option to edit them). You can find a site’s robots.txt file by visiting “example.com/robots.txt”.
URL parameters FAQ
How do I find URL parameters?
URL parameters are always at the end of a URL. They always start with “?,” and individual parameters are separated by “&.” To find the parameters in a URL, locate the question mark; everything to the right is a parameter, and everything to the left is the root URL. In this example, the bold text is a parameter:
What should I avoid with URL parameters?
URL parameters are designed to alter webpages or provide additional context. However, they’re not intended to distinguish separate pages. Avoid using parameters to display entirely different parts of a website.
Why does URL structure matter?
The structure of your URLs—organizing URLs into domains, subfolders, and parameters—makes your website more readable for users and search engines. URLs indicate the site’s sections and subsections. Imagine a site that uses numbered URLs instead: “example.com/12,” “example.com/13,” “example.com/14,” and so on. This is much harder to understand than a website with subfolders describing their purpose: “example.com/products/,” “example.com/products/bath-mat,” “example.com/about/,” “example.com/about/team.”
What does “#” signify in a URL?
In a URL, the “#” symbol represents the fragment identifier—also referred to as a hash or hash symbol. When a URL contains a “#” symbol followed by a text string, it indicates that the browser should navigate to that particular section of the page.