Según los estándares de la web, todas las URLs deberían distinguir entre mayúsculas y minúsculas, como venta de carpas. Este es el caso de Google y otros motores de búsqueda, pero desafortunadamente esta regla no es respetada por los servidores de Microsoft. Esto significa que su sitio web podría estar sirviendo contenido duplicado en cientos o miles de páginas. Lea este artículo para protegerse de este problema.
<p>
Después de indagar un poco, he encontrado suficientes pruebas para creer que…</p><ol style=»list-style-type: decimal;»><li> Las búsquedas en Google nunca distinguen entre mayúsculas y minúsculas – como ya sabíamos.</li><li>El PR de Google distingue entre mayúsculas y minúsculas – como sospechaba, según los estándares web, las URLs distinguen entre mayúsculas y minúsculas. Google y otros motores de búsqueda siguen este estándar.</li></ol>Se han reportado algunos casos en los que las mismas páginas están en el índice de Google 2 o más veces porque fueron enlazadas con diferentes mayúsculas y minúsculas (por ejemplo: /ABC.htm, /abc.htm, /Abc.htm) – ver <a rel=»nofollow» href=»http://www.webmasterworld.com/google/3240068.htm» target=»_blank»>este post</a>.<br><br>La raíz del problema, como habrás adivinado, es la ignorancia de Microsoft hacia los estándares web. Los servidores de Microsoft están configurados en oposición al estándar web sobre la sensibilidad a las mayúsculas y minúsculas en el que /ABC.htm es diferente de /abc.htm. IIS ignora la diferencia entre mayúsculas y minúsculas y da el control de la petición a un archivo incorrecto.<br><br>Mi sitio está en un servidor Windows, ¿qué tan grave es el problema?</b><br>Bueno, no va a «derribar Internet» como algunos lammers podrían sugerir, pero hay cuestiones que deben ser abordadas. La elección de IIS de ignorar la sensibilidad a las mayúsculas y minúsculas significa que los motores de búsqueda (que distinguen entre mayúsculas y minúsculas) indexarán exactamente el mismo contenido para diferentes URLs. Es muy poco probable que un sitio web sea penalizado por esto, pero definitivamente puede perjudicar la capacidad de su sitio web para clasificar bien. Hace especialmente difícil que la página duplicada se posicione bien para los términos a los que se dirige.<br><br>Esto sólo es un problema si hay dos o más enlaces que apuntan a la misma URL en un caso diferente. Puede evitar este problema utilizando siempre minúsculas en sus etiquetas de enlace, pero no puede evitar que otros sitios web enlacen a la misma URL en mayúsculas, así que hay que hacer algo en el servidor para solucionar este problema.<br><br>¿Cómo puedo solucionarlo?<br>Casi puedo imaginaros a los «adictos a la reescritura de URLs» saltando de alegría con la solución en la mano, pero como todos sabemos, la reescritura de URLs es una función que sólo está disponible en los servidores web adecuados, nada que esperes ver en IIS.<br><br>A. <b>Componente de servidor (alternativa de IIS a la reescritura de URL)</b><br>No es gratuito, no es fácil de configurar y sólo se puede instalar en su propio servidor. La única ventaja es que esto funcionaría para todos los archivos/scripts/directorios del sitio web.<br>Una alternativa para la Reescritura de URL en IIS – <a rel=»nofollow» href=»http://www.isapirewrite.com/» target=»_blank»>Rescritura de ISA</a>.<br><br>B. <b>Script (y un poco de redirección permanente)</b><br>Es gratis, es fácil de configurar y se puede instalar en cualquier servidor, no sólo en el tuyo. La única desventaja es que sólo se puede aplicar la distinción entre mayúsculas y minúsculas para las solicitudes que son manejadas por este script. Esto significa que las páginas HTML estáticas, los directorios, las imágenes, etc. seguirían estando expuestos a este problema. SIN EMBARGO, si con un poco de ayuda de una página de error 404 personalizada puedes hacer casi cualquier cosa. Pero ese es otro tema…<br><br>Así es como se puede reforzar la sensibilidad a mayúsculas y minúsculas usando VB Script:<br><div style=»margin: 5px 20px 20px;»> <div class=»smallfont» style=»margin-bottom: 2px;»>Código:</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);»>’ Forzar URLs en minúsculas</span><br><span style=»color: rgb(51, 51, 255); font-weight: bold;»>Si </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);»>Entonces</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>No es necesario que sea lo primero en cada página, pero para realizar una redirección permanente adecuada, esto tiene que ejecutarse antes de que se escriba cualquier contenido en el flujo de salida de la respuesta, es decir. Antes de cualquier HTML o Response.Write.<br><br>Espero que esto ayude a algunos futuros expertos en SEO (y <span style=»font-style: italic;»>quiero ser</span>)