Evitar redirecciones

Las redirecciones son un tipo de código del HTTP que permite pasar de una página a otra manteniendo determinada información.

Cuando en SEO se habla de redirecciones siempre se hace mención a dos de ellas, la 301 y la 302, pero por norma general se les da un uso erróneo. Si leemos el RFC2616 podremos ver el correcto uso de estos códigos:

  • Código 301 Moved Permanently (Mudado permanentemente): significa eso que dice, que la URL anterior ha de dejarse de usar y hay que usar la nueva.
  • Código 302 Found (Encontrado): muchos lo usan como una redirección temporal, pero realmente es el mismo significado que un código 200 pero con la peculiaridad de que se hace una redirección. Este código suele generar contenidos duplicados.
  • Código 307 Temporary Redirect (Redirigido temporalmente): la dirección URL que existe es correcta, pero en estos momentos se redirige a otra que incluye contenido relacionado.

REDIRECCIONES ACOMPAÑADAS DE “EXPIRES” O “CACHE-CONTROL”
Categoría: Conectividad, Contenidos, Servidor

Por norma general cuando se hace una redirección no se le indica la duración de la misma. Esto significa que tanto los robots como los usuarios, cada vez que visiten la página “antigua” han de hacer la petición porque no se le ha indicado el fin de esta.

En principio el código 301 no debería necesitar de este sistema de indicación de caducidad o caché, pero es recomendable indicarlo ya que no deben ser indefinidas, sino que los 301 hay que eliminarlos pasado un tiempo prudencial (entre 6 meses y un año). Una vez pasado este tiempo esa redirección se debería convertir en un código 404 Not Found.

Un ejemplo en PHP de una redirección correcta podría ser esta:


<?php
Header(“Location: http://nuevadireccion.com/”, true, 301);
Header(“Expires: Thu, 01 Dec 2011 12:00:00 GMT”);
?>


AUTOMATIZAR LA BARRA “/” AL FINAL DE URL
Categoría: Conectividad, Servidor

Gracias a sistemas como el Apache Mod_rewrite tenemos la posibilidad de crear URLs amigables para usuarios y máquinas, pero en muchas ocasiones no se controla correctamente si las URL finalizan con una “/” barra final o no. Hay que tener en cuenta que llevarla o no es totalmente distinta, ya que la URI deja de ser única y genera contenidos duplicados.

Es por esto que existen distintos métodos para que, en muchos casos, se añada o elimine de forma automática dejando al sistema solucionar esta situación. La principal es el uso del Apache Mod_dir con su directiva DirectorySlash, gracias a la cual podremos configurar si queremos la corrección automática o no.

USO DEL META-REFRESH
Categoría: Conectividad

De forma histórica los navegadores son capaces de gestionar una meta-etiqueta que permite redirigir la carga de la página a otro. Para ello se utiliza un código similar al siguiente:


<meta http-equiv="refresh" content="3;url=http://www.google.com/">

El uso de este sistema, dependiendo del navegador que se utilice, necesita validar de forma condicional e incondicional algunos elementos, por lo que el tiempo de la redirección aumenta.

Además, en el caso de usar proxy, se pueden incluir entradas Pragma: no-cache a los encabezados. Aun así, encabezados como el If-Modifies-Since pueden mantenerse y seguir devolviendo códigos 304.