Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

According to this blog ("Understanding SEO Friendly URL Syntax Practices") I should change

http://example.com/Hello-Dolly

To

http://example.com/hello-dolly

The reasons given are:

  • URLs, in general, are case-sensitive
  • it will simplify any case sensitive SEO and analytics reports

According to this GIF that I found on Wikipedia's article on URL Normalization I should convert my URLs from any uppercase to all lowercase.

However I use ASP.NET MVC4 and by default my URLs are structured like this (CamelCase):

http://www.domain.com/Controller/Action/Parameter

http://www.greatsite.com/Categories/List/Bicycles

I've skimmed through the RFC1738 but I didn't see any definitive answers to this.

Should I go out of my way to force the framework to change everything to lower case? Why did Microsoft choose to design their framework like this if everybody is telling me to use lowercase?

share|improve this question
3  
Great question and wonderful presentation of your query to the community here at webmasters.stackexchange.com! You really did your 'homework' on this issue as well before asking! –  toughskin Aug 9 '13 at 8:21
add comment

3 Answers 3

up vote 9 down vote accepted

Should I go out of my way to force the framework to change everything to lower case?

No, that's not necessary. Windows operating systems are case insensitive, including their server OS's and framework applications. Linux/Unix operating systems are however case sensitive.

Internet-based applications (e.g., browsers) should normalize URL's, as covered in section 6 of RFC 3986:

One of the most common operations on URIs is simple comparison: determining whether two URIs are equivalent without using the URIs to access their respective resource(s). A comparison is performed every time a response cache is accessed, a browser checks its history to color a link, or an XML parser processes tags within a namespace. Extensive normalization prior to comparison of URIs is often used by spiders and indexing engines to prune a search space or to reduce duplication of request actions and response storage.

Since you'll be using a Windows server no doubt, requested URLs and URIs will be returned to client applications just fine.


In regards to search engines, as stated in the RFC above, and in your Wikipedia link on URL Normalization:

Search engines employ URL normalization in order to assign importance to web pages and to reduce indexing of duplicate pages.

And as sources like this report on the subject:

More recently, Google began to better understand that /page1.html and /Page1.html were just two instances of the same content.


Why did Microsoft choose to design their framework like this if everybody is telling me to use lowercase?

It's compatible with their operating system, and technically not incorrect according to the RFC's. They also have their own way of doing things, which keeps webmasters guessing :-)

share|improve this answer
1  
Great answer, I was going to post an answer very similar but you beat me to it! "Why did Microsoft choose to design their framework like this if everybody is telling me to use lowercase? ... They also have their own way of doing things, which keeps webmasters guessing." - Love that bit. As far back as I can remember Microsoft has had their own means for 'making' developers/webmasters bend to their rigid rules! –  toughskin Aug 9 '13 at 8:20
    
Your section about the RFCs is incorrect. It says the scheme is case sensitive (i.e. http), not the Path of the URL. –  DisgruntledGoat Aug 9 '13 at 21:35
1  
@DisgruntledGoat That's case-insensitive, not case-sensitive. Regardless, the section was updated as it's true for the entire URI. –  dan Aug 9 '13 at 22:48
    
Argh, typo. Yes I meant case-insensitive. But that still only applies to the scheme and host, the RFC says nothing about the rest of the URI being case-insensitive. –  DisgruntledGoat Aug 10 '13 at 11:29
    
Where is it said that "Internet-based applications (e.g., browsers) should normalize the URL to lowercase"? Actually, they should not (except for scheme + host), because the URL path is case-sensitive and differences in case could be meaningful. –  unor Aug 15 '13 at 16:56
show 3 more comments

I don't know that you should change it but you should make sure to be consistent.

I looked into this a couple years back and Google's standard was that case before the TLD doesn't matter but after the TLD does.

At the time I was working on a defunct site called BusinessForPhotographers.com; apparently that is consistently treated as case insensitive.

After the .com is another matter. Google views /Great-Article as distinct from /great-article, even if you server routes them to the same place.

This might impact canonicalization and duplicate content issues. I think the safest method would be to force a 301 redirect to the correct version.

While this may seem pointless think about a service like YouTube, is /A1B2C3 the same URL as /a1b2c3?

Not in Google's eyes.

share|improve this answer
add comment

URI paths are case-sensitive (if not defined otherwise). See the URI standard STD 66, section 6.2.2.1. Case Normalization:

The other generic syntax components are assumed to be case-sensitive unless specifically defined otherwise by the scheme

If uppercase letters in HTTP URI paths would be a problem for some users, the Wikipedia would be broken for them. These two HTTP URIs (only differing in lowercase o vs. uppercase O) lead to different pages:

So no, you don’t have to change your URIs.

However, if possible (if you don’t make use of the case, as Wikipedia does), it would be good practice to allow all case variants and 301 redirect to a canonical variant.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.