Using IIS7's URL Rewrite feature to enable good SEO practice in EPiServer
Apr 12, 2011
URL structures are an important part of SEO. Its very important that our sites do not appear to serve duplicate content. However there is one feature of EPiServer that can do exactly that, namely when using language branches in the URL and viewing content in the master langauge.
The Problem
For example, even with Globalisation switched off, this particular post could be accessed on the two following URLs:
- http://www.david-tec.com/2011/04/Using-IIS7s-URL-Rewrite-feature-to-enable-good-SEO-practice-in-EPiServer/
- http://www.david-tec.com/en/2011/04/Using-IIS7s-URL-Rewrite-feature-to-enable-good-SEO-practice-in-EPiServer/
Google and SEO people in general do not like this and see it duplicate content. The normal approach is to use a canonical URL to let Google know that the "/en/" version of the page is not the original one.
However I was never wholly satisfied with that as we should never (ever) need to serve up content on the /en/ branch as its the master language anyway.
I've used solutions in the past that have used 3rd party rewriters to get around this problem. However this never seemed a decent solution as we are adding more code into our solutions.
The solution
IIS7 has a URL rewrite feature that can do this for us very easily. To enable a 301 redirect of all "/en/" requests simply set the rule as follows (IIS > Your Site > URL Rewrite):
If you don't have this feature installed then you can either use the Web Platform Installer or download it directly here: http://www.iis.net/download/urlrewrite
Or for those that are more inclined to do this in code then the following entry in the <system.webServer> element in web.config does the trick:
Conclusion
This solution is already in use on this site so I can confirm it works!
Feedback
Please feel free to comment below or twitter me with any feedback @davidknipe