Stay organized with collections
Save and categorize content based on your preferences.
URL structure best practices for Google Search
To make sure Google Search can crawl your site effectively, use a crawlable URL structure that
meets the following requirements. If your URLs don't meet the following criteria, Google Search
will likely crawl your site inefficiently — including but not limited to extremely high
crawl rates, or not at all.
When specifying URL parameters, use the following common encoding: an equal sign
(=) to separate key-value pairs and add additional parameters with an
ampersand (&). To list multiple values for the same key within a key-value
pair, you can use any character that doesn't conflict with
IETF STD 66, such as a comma
(,).
Recommended
Not recommended
Using an equal sign (=) to separate key-value pairs and an ampersand
(&) to add additional parameters:
Using a comma (,) to list multiple values for the same key, an equal sign
(=) to separate key-value pairs, and an ampersand (&) to add
additional parameters:
To help Google Search (and your users) better understand your site, we recommend creating a simple
URL structure, applying the following best practices when possible.
Best practices
Use descriptive URLs
When possible, use readable words rather than long ID numbers in your URLs.
Use words in your audience's language in the URL (and, if applicable, transliterated words).
For example, if your audience is searching in German, use German words in the URL:
When linking to pages on your site,
use UTF-8 encoding in your links's href attributes as necessary. Unreserved
ASCII characters may be left in the non-encoded form. Additionally, characters in the
non-ASCII range should be UTF-8 encoded. For example:
We recommend separating words in your URLs, when possible. Specifically, we recommend using
hyphens (-) instead of underscores (_) to
separate words in your URLs, as it helps users and search engines better identify
concepts in the URL. For historical reasons, we don't recommend using underscores, as
this style is already commonly used for denoting concepts that should be kept together,
for example, by various programming languages to name functions (such as format_date).
Whenever possible, shorten URLs by trimming unnecessary parameters (meaning, parameters
that don't change the content).
Be aware that URLs are case sensitive
Like any other HTTP client following IETF STD 66, Google Search's URL handling is case
sensitive (for example, Google treats both /APPLE and /apple as
distinct URLs with their own content). If upper and lower case text in a URL is treated
the same by your web server, convert all text to the same case so it's easier for Google
to determine that URLs reference the same page.
For multi-regional sites
If your site is multi-regional, consider using a URL structure that makes it easy to
geotarget your site. For more examples of how you can structure your URLs, refer to
using locale-specific URLs.
Overly complex URLs, especially those containing multiple parameters, can cause problems for
crawlers by creating unnecessarily high numbers of URLs that point to identical or similar
content on your site. As a result, Googlebot may consume much more bandwidth than necessary, or
Google Search may be unable to completely index all the content on your site.
Unnecessarily high numbers of URLs can be caused by a number of issues. These include:
Common issues
Additive filtering of a set of items
Many sites provide different views of the same set of items or search results, often
allowing the user to filter this set using defined criteria (for example: show me hotels on
the beach). When filters can be combined in an additive manner (for example: hotels on the
beach and with a fitness center), the number of URLs (views of data) in the sites explodes.
Creating a large number of slightly different lists of hotels is redundant, as Googlebot
only needs to see a small number of lists from which it can reach the page for each hotel.
For example:
If your site has an infinite calendar, add a nofollow
attribute to links to dynamically created future calendar pages.
Broken relative links
Placing a parent-relative link
on the wrong page may create infinite spaces if your server doesn't respond with the right
HTTP status code for nonexistent pages. For example, a parent-relative link such as
<a href="../../category/stuff">...</a> on https://example.com/category/community/070413/html/FAQ.htm
may lead to bogus URLs such as https://example.com/category/community/category/stuff.
To fix, use root-relative URLs in your links (instead of parent-relative).
Fixing crawling-related URL structure problems
If you notice that Google Search is crawling these problematic URLs, we recommend the following:
Consider using a robots.txt file to
block Googlebot's access to problematic URLs. Typically, consider
blocking dynamic URLs, such as URLs that generate search results, or URLs that can create
infinite spaces, such as calendars, and ordering and filtering functions.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-18 UTC."],[[["Create simple, readable URLs with descriptive words, using hyphens to separate words for better clarity for users and search engines."],["Utilize UTF-8 encoding for non-ASCII characters like umlauts, emojis, and characters from other languages instead of directly using them in the URL."],["Avoid using URL fragments, long ID numbers, and underscores in URLs, as they can negatively impact search engine understanding."],["Implement a logical URL structure, potentially using subdirectories for geotargeting, and resolve issues like redundant parameters to enhance crawling efficiency."],["For URL parameters, adhere to common encoding practices by using `=` for key-value pairs, `&` for additional parameters, and `,` for multiple values within a key."]]],["Google's URL best practices recommend using simple, descriptive words, preferably in the audience's language, and utilizing UTF-8 encoding for non-ASCII characters. Hyphens should separate words, and key-value pairs should use \"=\" and \"&\", with commas for multiple values. Avoid long ID numbers, fragments, and underscores. Complex URLs, excessive parameters, session IDs, and dynamic calendars can create indexing problems; address these by simplifying the URL structure, using robots.txt to block problem URLs, and avoiding session IDs.\n"]]