Stay organized with collections
Save and categorize content based on your preferences.
Designing a URL structure for ecommerce websites
Well-designed URLs can help Google more efficiently locate and retrieve web pages on your
ecommerce site. If you control the structure of your URLs (for example, you are building your
own site from scratch), then this guide can help you decide on your URL structure to avoid
indexing problems seen by Google on ecommerce sites.
Why URL structure matters
A good URL design structure helps Google crawl and index your site, while a poor URL structure can lead to the following issues:
Content can be missed if Googlebot incorrectly thinks two URLs will return the same
content as only one URL may be retrieved by the crawler (the other is discarded as a
duplicate). This can happen if fragment identifiers (like #fragment) are
used to show different content. Google does not use fragment identifiers in indexing.
Example:/product/t-shirt#black and /product/t-shirt#white
are considered to be the same page by Google.
The same content may be retrieved multiple times by the crawler if Google thinks two URLs
are different but result in the same page being returned. This can slow down
the crawling of your site and put additional load on your web server for no benefit.
Example:/product/black-t-shirt and /product?sku=1234 may return
the same product page, but Google cannot determine this by looking at the URL alone.
The crawler may think your site contains an infinite number of pages if your URLs
include a continually changing value such as a timestamp. As a result, Google may take
longer to find all the useful content on your site.
Example:/about?now=12:34am and /about?now=12:35am may be
treated as different URLs by Google even though both URLs display the same page.
To optimize how Google crawls and indexes your website, follow these best practices on how to
structure your URLs.
General URL recommendations
Minimize the number of alternative URLs that return the same content to avoid Google making
more requests to your site than needed. Google may not realize that two URLs return the same
page until after both are retrieved.
If upper and lower case text in a URL is treated the same by the web server, convert all
text to the same case so it is easier for Google to determine that URLs reference the same
page.
Make sure each page in paginated results has a unique URL. We see the most URL mistakes in
pagination URL structures.
Add descriptive words in URL paths. The words in URLs may help Google better understand the page.
Follow these recommendations when using query parameters to help Google successfully crawl and
index your site.
Use ?key=value URL parameters rather than ?value, where possible.
URL parameters allow Google Search to understand your site's structure and crawl and index more efficiently.
Avoid using the same parameters twice. Googlebot may ignore one of the values otherwise.
Recommended:
?type=candy,sweet
Not recommended:
?type=candy&type=sweet
Avoid internally linking to temporary parameters, such as session-IDs, tracking codes,
user-relative values (location=nearby, time=last-week), and
the current time. This can result in URLs that have a short life or duplicate URLs
for the same page. To get the best results from Google Search, use long-term, persistent
URLs.
Recommended:
/t-shirt?location=UK
Not recommended:
/t-shirt?location=nearby, /t-shirt?current-time=12:02, /t-shirt?session=123123123
How Google understands URLs for product variants
A common consideration on ecommerce sites is how to structure URLs when a product is available
in multiple sizes or colors. Each combination of product attributes is referred to as a
product variant. To help Google understand your product variants, make sure that each
variant can be identified by a separate URL. We recommend the following URL structures for variant URLs:
If you use optional query parameters to identify variants, use the URL with the query
parameter omitted as the canonical URL. This can help Google better understand the
relationship between product variants.
Using URLs in your content
To help Google Search and Google Shopping correctly identify your products and the
relationship between product variants, follow these best practices when using URLs in your
content.
Use the same URL in internal links, sitemap files, and
<link rel="canonical"> tags.
For example, if linking to the first page in a paginated sequence using a query
parameter where the default page is page one, either include or exclude ?page=1
on the URL throughout your site consistently.
Use a self-referencing
<link rel="canonical"> tag
(one where the URL in the tag points to the current page) on all indexable pages and include those URLs in a
sitemap
file.
For products with unique URLs per variant, include the canonical product URL on all variant
pages using a <link rel="canonical"> tag. For more information, see
the canonical_link property of Google Merchant Center.
Include links directly on the pages using <a href> tags;
don't use JavaScript to navigate between pages. Googlebot might not detect navigation from
JavaScript code. For more information about how Google processes JavaScript, see
Understand the JavaScript SEO basics.
Include meaningful text between <a href> and </a> tags where possible, such as
the title of the product being linked to. Don't use generic phrases such as "click here".
Avoid linking to, or at least indexing, pages without useful content. If a category has no items, use a
noindexrobotsmeta tag.
If your site detects that a category has become empty and automatically removes the category
from on-site search and browse, consider returning a 404 (not found) HTTP status code for the page.
Additional resources
Want to learn more? Check out the following resources:
[null,null,["Last updated 2025-02-04 UTC."],[[["\u003cp\u003eWell-structured URLs improve Google's ability to find and index your ecommerce site's pages, which is vital for visibility.\u003c/p\u003e\n"],["\u003cp\u003ePoorly designed URLs can lead to content being missed, duplicated, or perceived as infinite, hindering search engine crawling.\u003c/p\u003e\n"],["\u003cp\u003eOptimize URLs by minimizing alternatives for the same content, using descriptive words in paths, and following query parameter best practices.\u003c/p\u003e\n"],["\u003cp\u003eFor product variants, ensure each has a unique, identifiable URL using path segments or query parameters.\u003c/p\u003e\n"],["\u003cp\u003eUse consistent URLs in internal links, sitemaps, and canonical tags, while avoiding temporary parameters and JavaScript-based navigation for optimal indexing.\u003c/p\u003e\n"]]],["To optimize Google's crawling and indexing of ecommerce sites, ensure each page has a unique, descriptive URL. Minimize alternative URLs for the same content, avoid using fragment identifiers, and convert text to a consistent case. Use `?key=value` for query parameters, avoid duplicate parameters, and don't use temporary parameters. For product variants, assign each a separate URL using path segments or query parameters and utilize canonical URLs. Use consistent URLs in internal links, sitemaps, and `\u003clink rel=\"canonical\"\u003e` tags.\n"],null,["# Ecommerce URL Structure Best Practices | Google Search Central\n\nDesigning a URL structure for ecommerce websites\n================================================\n\n\nWell-designed URLs can help Google more efficiently locate and retrieve web pages on your\necommerce site. If you control the structure of your URLs (for example, you are building your\nown site from scratch), then this guide can help you decide on your URL structure to avoid\nindexing problems seen by Google on ecommerce sites.\n| If you're using an ecommerce platform, you can most likely skip this section, as the platform has most likely already considered these issues for you.\n\nWhy URL structure matters\n-------------------------\n\n\nA good URL design structure helps Google crawl and index your site, while a poor URL structure can lead to the following issues:\n\n-\n **Content can be missed** if Googlebot incorrectly thinks two URLs will return the same\n content as only one URL may be retrieved by the crawler (the other is discarded as a\n duplicate). This can happen if fragment identifiers (like `#fragment`) are\n used to show different content. Google does not use fragment identifiers in indexing.\n\n\n **Example:** `/product/t-shirt#black` and `/product/t-shirt#white`\n are considered to be the same page by Google.\n-\n **The same content may be retrieved multiple times** by the crawler if Google thinks two URLs\n are different but result in the same page being returned. This can slow down\n the crawling of your site and put additional load on your web server for no benefit.\n\n\n **Example:** `/product/black-t-shirt` and `/product?sku=1234` may return\n the same product page, but Google cannot determine this by looking at the URL alone.\n-\n **The crawler may think your site contains an infinite number of pages** if your URLs\n include a continually changing value such as a timestamp. As a result, Google may take\n longer to find all the useful content on your site.\n\n\n **Example:** `/about?now=12:34am` and `/about?now=12:35am` may be\n treated as different URLs by Google even though both URLs display the same page.\n\n\nSee [How Google Search Works](/search/docs/fundamentals/how-search-works)\nand [How Google's Site Crawlers Index Your Site](https://www.google.com/search/howsearchworks/crawling-indexing/)\nfor more information on how Google crawls and indexes your site.\n\nGood URL structure design best practices\n----------------------------------------\n\n\nTo optimize how Google crawls and indexes your website, follow these best practices on how to\nstructure your URLs.\n\n### General URL recommendations\n\n- Minimize the number of alternative URLs that return the same content to avoid Google making more requests to your site than needed. Google may not realize that two URLs return the same page until after both are retrieved.\n- If upper and lower case text in a URL is treated the same by the web server, convert all text to the same case so it is easier for Google to determine that URLs reference the same page.\n- Make sure each page in paginated results has a unique URL. We see the most URL mistakes in pagination URL structures.\n-\n Add descriptive words in URL paths. The words in URLs may help Google better understand the page.\n\n\n **Recommended** :\n `/product/black-t-shirt-with-a-white-collar`\n\n\n **Not recommended** :\n `/product/3243`\n\n### URL query parameter recommendations\n\n\nFollow these recommendations when using query parameters to help Google successfully crawl and\nindex your site.\n\n-\n Use `?key=value` URL parameters rather than `?value`, where possible.\n URL parameters allow Google Search to understand your site's structure and crawl and index more efficiently.\n\n\n **Recommended** :\n `/photo-frames?page=2`, `/t-shirt?color=green`\n\n\n **Not recommended** :\n `/photo-frames?2`, `/t-shirt?green`\n-\n Avoid using the same parameters twice. Googlebot may ignore one of the values otherwise.\n\n\n **Recommended** :\n `?type=candy,sweet`\n\n\n **Not recommended** :\n `?type=candy&type=sweet`\n-\n Avoid internally linking to temporary parameters, such as session-IDs, tracking codes,\n user-relative values (`location=nearby`, `time=last-week`), and\n the current time. This can result in URLs that have a short life or duplicate URLs\n for the same page. To get the best results from Google Search, use long-term, persistent\n URLs.\n\n\n **Recommended** :\n `/t-shirt?location=UK`\n\n\n **Not recommended** :\n `/t-shirt?location=nearby`, `/t-shirt?current-time=12:02`, `/t-shirt?session=123123123`\n\n### How Google understands URLs for product variants\n\n\nA common consideration on ecommerce sites is how to structure URLs when a product is available\nin multiple sizes or colors. Each combination of product attributes is referred to as a\n*product variant*. To help Google understand your product variants, make sure that each\nvariant can be identified by a separate URL. We recommend the following URL structures for variant URLs:\n\n- A path segment, such as `/t-shirt/green`\n- A query parameter, such as `/t-shirt?color=green`\n\nFor more information, see the [product variant structured data documentation](/search/docs/appearance/structured-data/product-variants).\n\n\nIf you use optional query parameters to identify variants, use the URL with the query\nparameter omitted as the [canonical URL](/search/docs/crawling-indexing/consolidate-duplicate-urls). This can help Google better understand the\nrelationship between product variants.\n\nUsing URLs in your content\n--------------------------\n\n\nTo help Google Search and Google Shopping correctly identify your products and the\nrelationship between product variants, follow these best practices when using URLs in your\ncontent.\n\n- Use the same URL in internal links, sitemap files, and [`\u003clink rel=\"canonical\"\u003e` tags](/search/docs/crawling-indexing/consolidate-duplicate-urls). For example, if linking to the first page in a paginated sequence using a query parameter where the default page is page one, either include or exclude `?page=1` on the URL throughout your site consistently.\n- Use a self-referencing [`\u003clink rel=\"canonical\"\u003e` tag](/search/docs/crawling-indexing/consolidate-duplicate-urls) (one where the URL in the tag points to the current page) on all indexable pages and include those URLs in a [sitemap](/search/docs/crawling-indexing/sitemaps/build-sitemap) file.\n- For products with unique URLs per variant, include the canonical product URL on all variant pages using a `\u003clink rel=\"canonical\"\u003e` tag. For more information, see [the `canonical_link` property of Google Merchant Center](https://support.google.com/merchants/answer/9340054).\n- Include links directly on the pages using `\u003ca href\u003e` tags; don't use JavaScript to navigate between pages. Googlebot might not detect navigation from JavaScript code. For more information about how Google processes JavaScript, see [Understand the JavaScript SEO basics](/search/docs/guides/javascript-seo-basics).\n- Include meaningful text between `\u003ca href\u003e` and `\u003c/a\u003e` tags where possible, such as the title of the product being linked to. Don't use generic phrases such as \"click here\".\n- Avoid linking to, or at least indexing, pages without useful content. If a category has no items, use a [`noindex` robots `meta` tag](/search/docs/crawling-indexing/robots-meta-tag#noindex). If your site detects that a category has become empty and automatically removes the category from on-site search and browse, consider returning a `404 (not found)` HTTP status code for the page.\n\nAdditional resources\n--------------------\n\n\nWant to learn more? Check out the following resources:\n\n- [Help Google understand your site structure](/search/docs/specialty/ecommerce/help-google-understand-your-ecommerce-site-structure)\n- [Avoid creating duplicate content](/search/docs/crawling-indexing/consolidate-duplicate-urls)\n- [Pagination, incremental page loading, and their impact on Search](/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading)\n- [Managing crawling of faceted navigation URLs](/search/docs/crawling-indexing/crawling-managing-faceted-navigation)"]]