Google PR is Case Sensitive
According to web standards, all URLs should be case sensitive. This is the case for Google and other search engines, but unfortunatelly this rule is not respected by Microsoft servers. This means your website could be serving duplicate content on hundreds or thousands of pages. Read this article to protect yourself against this issue.
After a little digging up, I found enough evidence to believe that…</p><ol style=”list-style-type: decimal;”><li> Google searches are never case sensitive – as we already knew.</li><li>Google PR is case sensitive – as I suspected, according to web standards, URLs are case sensitive. Google and other search engines follow this standard.</li></ol>There have been a few reported cases of the same pages being in Google’s index 2 or more times because they were linked to with different cases (ie.: /ABC.htm, /abc.htm, /Abc.htm) – see <a rel=”nofollow” href=”http://www.webmasterworld.com/google/3240068.htm” target=”_blank”>this post</a>.<br><br>The root of the problem, as you may have guessed, is Microsoft’s ignorance towards web standards. Microsoft servers are set up in opposition to the web standard on case sensitivity in which /ABC.htm is different from /abc.htm. IIS ignores the case different and gives control of the request to wrong file.<br><br><b>My site is on a Windows Server, how bad is the problem?</b><br>Well, it’s not going to ‘bring down the internet’ as some lammers might suggest, but there are issues that need to be addressed. IIS’s choice to ignore case sensitivity means search engines (which are case sensitive) will index the exact same content for different URLs. It’s very unlikely a website would be penalized for this, but it can definitelly impair your website’s ability to rank well. It makes it specially difficult for the duplicated page to rank well for the terms it targets.<br><br>This is only an issue if there are two or more links point to the same URL in a different case. You can avoid this problem by always using lowercase in your link tags, but you can’t stop other websites linking into the same URL in capital letters – so something must be done on the server in order to deal with this issue.<br><br>How can I fix it?<br>I can almost picture you “URL Rewrite Junkies” jumping up and down with the solution on your hands, but as we all know, URL Rewrite is a feature only available to proper web-servers, nothing you’d expect to see in IIS.<br><br>A. <b>Server Component (IIS alternative to URL Rewrite)</b><br>Not free, not easy to setup and can only be installed on your own server. The only upside is that this would work for all files/scripts/directories on the website.<br>An alternative for URL Rewrite in IIS – <a rel=”nofollow” href=”http://www.isapirewrite.com/” target=”_blank”>ISAPI Rewrite</a>.<br><br>B. <b>Script (and a little permanent redirection)</b><br>It’s free, it’s easy to setup and can be installed on any server, not just your own. The only downside is that you can only enforce case sensitiveness for requests that are handled by this script. This means static HTML pages, directories, images, etc would still be exposed to this issue. HOWEVER, if with a little help from a custom 404 error page you can do just about anything. But that’s a whole other topic…<br><br>Here’s how you’d enforce case sensitiveness using VB Script:<br><div style=”margin: 5px 20px 20px;”> <div class=”smallfont” style=”margin-bottom: 2px;”>Code:</div> <pre class=”alt2″ dir=”ltr” style=”border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 146px; text-align: left;”><% <span style=”color: rgb(102, 102, 102);”>’ Force lowercase URLs</span><br><span style=”color: rgb(51, 51, 255); font-weight: bold;”>If </span>Request.ServerVariables(<span style=”color: rgb(0, 102, 0);”>”URL”</span>)<>LCase(Request.ServerVariables(<span style=”color: rgb(0, 102, 0);”>”URL”</span>)) <span style=”font-weight: bold; color: rgb(51, 51, 255);”>Then</span><br>Response.Status = <span style=”color: rgb(153, 0, 0);”>301</span><span style=”color: rgb(102, 102, 102);”> ‘Permanently Redirected</span><br>Response.AddHeader <span style=”color: rgb(0, 102, 0);”>”Location”</span>, LCase(Request.ServerVariables(<span style=”color: rgb(0, 102, 0);”>”URL”</span>))<br>Response.End()<br><span style=”font-weight: bold; color: rgb(51, 51, 255);”>End If</span><br>%></pre> </div>It doesn’t need to be the very first thing on every page, but in order to perform a proper permanent redirect, this has to be execute before any content is written to the response’s output stream, ie.: Before any HTML or Response.Write.<br><br>Hope this helps a few up-and-coming SEO experts (and <span style=”font-style: italic;”>wanna-be</span>s)