by John Sher­rod, Direc­tor of SEO

I work with a lot of ASP.NET web­sites and inevitably the issue of URL case sen­si­tiv­i­ty and SEO rears its ugly head. It is not uncom­mon for a sin­gle URL to be artic­u­lat­ed mul­ti­ple ways in an ASP.NET web­site because it doesn’t affect the out­come of the page request. On Microsoft / Win­dows servers, /page1.html is treat­ed the same as /Page1.html and /PAGE1.html. And I’ve heard it said many times “if it works, it’s right”.

Unfor­tu­nate­ly, Google doesn’t sub­scribe to that phi­los­o­phy.

Google’s lit­er­al inter­pre­ta­tion of char­ac­ters and their case is pre­cise, much like how pass­words work. That could be a con­scious deci­sion but it also just hap­pens to be how UNIX/Linux servers work (they’re cus­tomiz­able – so for the sake of sim­plic­i­ty, I’ll just call them all UNIX and move on). Microsoft servers don’t dis­tin­guish between upper and low­er case let­ters. UNIX servers do.

Not to get into the qual­i­ty, sta­bil­i­ty and reli­a­bil­i­ty debate between Microsoft and UNIX servers, suf­fice it to say that they work dif­fer­ent­ly. If you’re devel­op­ing in PHP, you’re on a UNIX serv­er. Because of the neces­si­ty of pro­vid­ing exact match page requests to the UNIX serv­er, it is much more dif­fi­cult to intro­duce dupli­cate con­tent involv­ing dif­fer­ent case URL struc­tures.

On UNIX, mis-matched URLs will sim­ply break and the dam­age will be imme­di­ate­ly appar­ent. It just won’t work. So if you have a page called /page1.php and you acci­den­tal­ly link to /Page1.php, the serv­er will respond with a 404 not-found error.

If your site is in ASP.NET then you are using a Microsoft serv­er. In this case, /page1.html, /Page1.html and PAGE1.html will all be returned suc­cess­ful­ly and will not break. In oth­er words, requests for those URLs will resolve in a 200 ok serv­er response indi­cat­ing, “All is well with those URLs”. So if Google index­es those 3 dif­fer­ent URLs (and they will) they will see them as unique and inde­pen­dent.


For­tu­nate­ly, in most cas­es Google is smart enough to even­tu­al­ly fig­ure out that these unique URLs are real­ly all the same page. Unfor­tu­nate­ly, the flow of pageR­ank to each of those pages can be dilut­ed or thinned because the var­i­ous incom­ing links to those pages are not con­sol­i­dat­ed. When this hap­pens, rank­ings can actu­al­ly suf­fer.

To put it sim­ply, 50 links to /page1.html and 50 links to /Page1.html is not equal to 100 links to /page1.html.

Sev­er­al years ago, Google had a hard time dis­tin­guish­ing between and if they both resolved with a 200 ok serv­er response. That is prac­ti­cal­ly a non-issue with Google today but can be a seri­ous prob­lem with Bing.

More recent­ly, Google began to bet­ter under­stand that /page1.html and /Page1.html were just two instances of the same con­tent. I don’t believe we will have to wait too long until the pageR­ank con­sol­i­da­tion of /page1.html and /Page1.html occurs in Google’s rank­ing algo­rithm. I can only guess that is some­thing on their radar.

How­ev­er, don’t count Bing out of the race. Yes, Microsoft invent­ed both ASP.NET and Bing but they are like wild­ly dif­fer­ent sib­lings that just hap­pen to have the same par­ents. Bing is picky. Bing likes a defined Canon­i­cal, light code, clean archi­tec­tures and pages that are named, tagged and opti­mized with key­words. And even though Bing uses their own servers (one would assume) their CDN is actu­al­ly Aka­mai, which runs on Lin­ux. But I digress.

So, back to the ques­tion – Is case impor­tant in URL struc­tures when it comes to SEO? Yes, it is.

At a fun­da­men­tal lev­el, search engines need to clear­ly under­stand the dif­fer­ence between bird the ani­mal and Bird the nick­name (Char­lie Park­er) and Lar­ry Bird the leg­endary bas­ket­ball play­er. Cap­i­tal­iza­tion mat­ters because the intent is dif­fer­ent. And intent is that lit­tle nuanced piece of love­li­ness that search engines con­stant­ly strug­gle to deter­mine about its users. They are good at it, but not great.

So don’t leave it up to the search engines to try and deter­mine your intend­ed struc­ture. That’s just more work for them to do and his­to­ry says they can and will get it wrong. And that can cost you or your client’s mon­ey when it comes to SEO.