Stay organized with collections
Save and categorize content based on your preferences.
Wednesday, April 21, 2010
That is the question we hear often. Onward to the answers! Historically, it's common for URLs with
a trailing slash to indicate a directory, and those without a trailing slash to denote a file:
https://example.com/foo/ (with trailing slash, conventionally a directory)
https://example.com/foo (without trailing slash, conventionally a file)
But they certainly don't have to. Google treats each URL above separately (and equally) regardless
of whether it's a file or a directory, or it contains a trailing slash or it doesn't contain a
trailing slash.
Different content on slash and non-slash URLs is okay for Google, but often is less ideal for users
From a technical, search engine standpoint, it's certainly permissible for these two URL versions
to contain different content. Your users, however, may find this configuration horribly
confusing—just imagine if www.google.com/webmasters and
www.google.com/webmasters/ produced two separate experiences.
For this reason, trailing slash and non-trailing slash URLs often serve the same content. The most
common case is when a site is configured with a directory structure:
You can do a quick check on your site to see if either of the URLs matching this pattern
redirects to the other:
https://example.com/foo/
(with trailing slash)
https://example.com/foo
(no trailing slash)
If only one version can be returned (that is, the other redirects to it), that's great! This
behavior is beneficial because it reduces
duplicate content. In the
particular case of redirects to trailing slash URLs, our search results will likely show the
version of the URL with the
200 response code
(most often the trailing slash URL)—regardless of whether the redirect was a
301 or 302.
If both slash and non-trailing-slash versions contain the same content and each returns
200, you can:
Consider changing this behavior (more info below) to reduce duplicate content and improve
crawl efficiency.
Leave it as-is. Many sites have duplicate content. Our indexing process often handles this
case for webmasters and users. While it's not totally optimal behavior, it's perfectly
legitimate and a-okay. :)
Rest assured that for your root URL specifically, https://example.com is
equivalent to https://example.com/ and can't be redirected even if you're Chuck
Norris.
Steps for serving only one URL version
What if your site serves duplicate content on these two URLs:
https://example.com/foo/
https://example.com/foo
Meaning that both URLs return 200 (neither has a redirect or contains
rel="canonical" link tag
), and you want to change the situation?
Choose one URL as the preferred version. If your site has a directory structure, it's more
conventional to use a trailing slash with your directory URLs (for example,
example.com/directory/ rather than example.com/directory), but you can
choose whichever you like.
Be consistent with the preferred version. Use it in your internal links. If you have a
sitemap, include the preferred version
(and don't include the duplicate URL).
Use a 301 redirect from the duplicate to the preferred version. If that's not
possible, the rel="canonical" link tag is a strong option.
rel="canonical" works similarly to a 301 for Google's indexing
purposes, and other major search engines as well.
Test your 301 configuration through
Fetch as Googlebot
in Webmaster Tools.
Make sure your URLs, https://example.com/foo/ and
https://example.com/foo, are behaving as expected. The preferred version should
return a 200 status code. The duplicate URL should 301 redirect to the
preferred URL.
Check for
Crawl errors
in Webmaster Tools, and, if possible, your webserver logs as a quick check that the
301 redirects are implemented.
Profit! (just kidding) But you can bask in the sunshine of your efficient server configuration,
warmed by the knowledge that your site is better optimized.
Written by Maile Ohye, Developer Programs Tech Lead
[[["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"]],[],[[["\u003cp\u003eGoogle treats URLs with and without trailing slashes as distinct pages, regardless of their content.\u003c/p\u003e\n"],["\u003cp\u003eWhile Google can handle duplicate content on URLs with/without trailing slashes, it's better for users and SEO to consolidate to a single version.\u003c/p\u003e\n"],["\u003cp\u003eChoose a preferred URL version (with or without trailing slash) and 301 redirect the other version to it to avoid duplicate content issues.\u003c/p\u003e\n"],["\u003cp\u003eUse the \u003ccode\u003erel="canonical"\u003c/code\u003e link tag as an alternative to 301 redirects if redirects are not feasible for consolidating duplicate URLs.\u003c/p\u003e\n"],["\u003cp\u003eEnsure consistency in internal linking, sitemaps, and server configuration to support your preferred URL version for optimal crawling and indexing.\u003c/p\u003e\n"]]],["URLs with and without trailing slashes are treated separately by Google, regardless of their file or directory designation. Identical content on both versions is acceptable, but can cause user confusion and duplicate content issues. To resolve this, choose one URL style, use it consistently in internal links and sitemaps, and redirect the other version using a 301 redirect or rel=\"canonical\" tag. Verify this configuration with the `Fetch as Googlebot` and by checking web server logs for crawl errors.\n"],null,["# To slash or not to slash\n\nWednesday, April 21, 2010\n\n\nThat is the question we hear often. Onward to the answers! Historically, it's common for URLs with\na trailing slash to indicate a directory, and those without a trailing slash to denote a file: \n\n```\nhttps://example.com/foo/ (with trailing slash, conventionally a directory)\nhttps://example.com/foo (without trailing slash, conventionally a file)\n```\n\n\nBut they certainly don't have to. Google treats each URL above separately (and equally) regardless\nof whether it's a file or a directory, or it contains a trailing slash or it doesn't contain a\ntrailing slash.\n\nDifferent content on slash and non-slash URLs is okay for Google, but often is less ideal for users\n---------------------------------------------------------------------------------------------------\n\n\nFrom a technical, search engine standpoint, it's certainly permissible for these two URL versions\nto contain different content. Your users, however, may find this configuration horribly\nconfusing---just imagine if `www.google.com/webmasters` and\n`www.google.com/webmasters/` produced two separate experiences.\n\n\nFor this reason, trailing slash and non-trailing slash URLs often serve the same content. The most\ncommon case is when a site is configured with a directory structure: \n\n```\nhttps://example.com/parent-directory/child-directory/\n```\n\nYour site's configuration and your options\n------------------------------------------\n\n\nYou can do a quick check on your site to see if either of the URLs matching this pattern\n[redirects](/search/docs/crawling-indexing/301-redirects) to the other:\n\n1. `https://example.com/foo/` \n (with trailing slash)\n2. `https://example.com/foo` \n (no trailing slash)\n\n- If only one version can be returned (that is, the other redirects to it), that's great! This behavior is beneficial because it reduces [duplicate content](/search/docs/advanced/guidelines/duplicate-content). In the particular case of redirects to trailing slash URLs, our search results will likely show the version of the URL with the [`200` response code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) (most often the trailing slash URL)---regardless of whether the redirect was a `301` or `302`.\n- If both slash and non-trailing-slash versions contain the same content and each returns `200`, you can:\n - Consider changing this behavior (more info below) to reduce duplicate content and improve [crawl efficiency](/search/blog/2009/08/optimize-your-crawling-indexing).\n - Leave it as-is. Many sites have duplicate content. Our indexing process often handles this case for webmasters and users. While it's not totally optimal behavior, it's perfectly legitimate and a-okay. :)\n - Rest assured that for your root URL specifically, `https://example.com` is equivalent to `https://example.com/` and can't be redirected even if you're Chuck Norris.\n\nSteps for serving only one URL version\n--------------------------------------\n\nWhat if your site serves duplicate content on these two URLs: \n\n```\nhttps://example.com/foo/\nhttps://example.com/foo\n```\n\n\nMeaning that both URLs return `200` (neither has a redirect or contains\n[`rel=\"canonical\"` link tag](/search/docs/crawling-indexing/consolidate-duplicate-urls)\n), and you want to change the situation?\n\n1. Choose one URL as the preferred version. If your site has a directory structure, it's more conventional to use a trailing slash with your directory URLs (for example, `example.com/directory/` rather than `example.com/directory`), but you can choose whichever you like.\n2. Be consistent with the preferred version. Use it in your internal links. If you have a [sitemap](/search/docs/crawling-indexing/sitemaps/overview), include the preferred version (and don't include the duplicate URL).\n3. Use a `301` redirect from the duplicate to the preferred version. If that's not possible, the `rel=\"canonical\"` link tag is a strong option. `rel=\"canonical\"` works similarly to a `301` for Google's indexing purposes, and other major search engines as well.\n4. Test your `301` configuration through [Fetch as Googlebot](https://support.google.com/webmasters/answer/9128668) in [Webmaster Tools](https://search.google.com/search-console). Make sure your URLs, `https://example.com/foo/` and `https://example.com/foo`, are behaving as expected. The preferred version should return a `200` status code. The duplicate URL should `301` redirect to the preferred URL.\n5. Check for [Crawl errors](https://support.google.com/webmasters/answer/9679690) in Webmaster Tools, and, if possible, your webserver logs as a quick check that the `301` redirects are implemented.\n6. Profit! (just kidding) But you can bask in the sunshine of your efficient server configuration, warmed by the knowledge that your site is better optimized.\n\nWritten by [Maile Ohye](/search/blog/authors/maile-ohye), Developer Programs Tech Lead"]]