K Khan
Dec 2, 2014
  4461
(1 votes)

Trailing slashes in website

Trailing slashes in your website.
We got some SEO requirements for a website that
1. All the links in website either should have a trailing slash (preferred) or not.
2. Further if user enters www.site.com it should automatically redirect to www.site.com/ . Our site is a commerce site and using DefaultHierarchialRouter for commerce routing.

For the first requirement solution is very simple. In some initialization module we can force trailing slash for the website using EPiServer.Web.Routing.ContentRoute.UseTrailingSlash = true;

For the 2nd requirement in 7.5 multiple suggestion came by Quan and Johan. You can find those details under thread http://world.episerver.com/Modules/Forum/Pages/Thread.aspx?id=113080. But we preferred to install IIS rewrite module to solve this issue, that can be downloaded from http://www.microsoft.com/en-us/download/details.aspx?id=5747 and can be setup http://thatsit.com.au/seo/tutorials/how-to-fix-canonical-issues-involving-the-trailing-slash 
We requires some extra rules to avoid trailing slash for online center, images, and other static contents. You can find a general rule set for an episerver site as following
<rule name="AddTrailingSlashRule1" stopProcessing="true">
<match url="(.*[^/])$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{URL}" pattern="/bundles/" negate="true" />
<add input="{URL}" pattern="/cm/UI/" negate="true" />
<add input="{URL}" pattern="/App_Themes/" negate="true" />
<add input="{URL}" pattern="/util/" negate="true" />
<add input="{URL}" pattern="/SearchAction" negate="true" />
<add input="{URL}" pattern="/Index" negate="true" />
<add input="{URL}" pattern="/globalassets/" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}/" />
</rule>

Dec 02, 2014

Comments

Johan Book
Johan Book Dec 4, 2014 09:19 AM

Is there really a SEO difference between a URL with- and without trailing slash? IMO they should be treated the same way. Then again, I'm not google ;-)

K Khan
K Khan Dec 4, 2014 11:37 AM

Requirement was that there must not be mix of urls. either whole site should be with trailing slash or whole site should be without trailing slash.

Technically, Urls may look similar and even can take a visitor to the same url, but they can be very different, from an SEO perspective. e.g. a trailing slash in one URL could be read by search engines as two separate and different URLs. This can create the potential for duplicate content issues to arise, which can confuse search engines.

When trailing slashes are used in URLs for backlinking, Google will recognize those Web pages differently than a main page that has no trailing slash.

http://googlewebmastercentral.blogspot.co.uk/2010/04/to-slash-or-not-to-slash.html

Justin Le
Justin Le Dec 5, 2014 08:48 AM

One note on using iis rewrite is that you might have issue with multiple redirection. For example if you have two rule: first one is add trailing slash and second one is force lower url. Then when you type: www.site.com/Abc, browser will make two redirection www.site.com/Abc -> www.site.com/Abc/ -> www.site.com/abc/, which is bad for SEO.

I would suggest to extend the default router and using SegmentContext.PermanentRedirect(string url) to redirect your url. Then you could force lower case and add ending trail if missing.

K Khan
K Khan Dec 5, 2014 11:25 AM

Well, Lower case is resolved in initialization module EPiServer.Web.UrlSegment.UseLowerCaseSegments = true;
I am agreed SegmentContext.PermanentRedirect is best solution as a permanent fix.

Please login to comment.
Latest blogs
Plug-in manager is back in CMS 12

Plug-in manager is back in the UI, what is it and how can i use it?

Luc Gosso (MVP) | Oct 6, 2022 | Syndicated blog

Display Child Pages in Content Delivery API Response

The below example will implement an instance of IContentConverterProvider to customise the serialisation of PageData and output child pages in the...

Minesh Shah (Netcel) | Oct 4, 2022

Bring the Report Center back in Optimizely CMS 12

The Report Center has been a part of Optimizely CMS since its first debut in version 5R2 in 2008, but in CMS 12, it's removed! Don't despair! Make...

Tomas Hensrud Gulla | Oct 4, 2022 | Syndicated blog

Customizing Property Lists in Optimizely CMS

Generic property lists is a cool editorial feature that has gained a lot of popularity - in spite of still being unsupported (officially). But if y...

Allan Thraen | Oct 2, 2022 | Syndicated blog