21

According to 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 MVC and by default my URLs are (PascalCase):

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

http://www.example.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?

4
  • 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!
    – dvnkiss
    Aug 9, 2013 at 8:21
  • 1
    I ran into a problem where a proxy changed the requested URL to all lowercase - and caused a 404 on requests to a Linux server that hosted a page in my ./SO/ subdirectory (where I put stackoverflow examples). That's a use case where lowercase makes a difference (you can argue the proxy was badly coded but that's real life...)
    – Floris
    Feb 3, 2015 at 3:53
  • 1
    BookReviews/TherepistHat.html, BookReviews/TheRapIsThat.html, and BookReviews/TheRapistHat.html could be three different pages reviewing three novels with similar titles, one about a psychologist, one about a music artist, and one a crime story. Any thought of "normalization" would just be wrong. Feb 14, 2020 at 14:23
  • @RayButterworth you should separate the words Oct 16, 2020 at 8:54

3 Answers 3

12

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 :-)

1
  • 3
    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!
    – dvnkiss
    Aug 9, 2013 at 8:20
4

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.

0
4

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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