Blog

Redirecciones Web: Cuando utilizar una redirección 301 y 302.

En ocasiones nos surge la necesidad de realizar redirecciones entre páginas Web o entre dominios, para hacerlo correctamente deberemos utilizar las redirecciones 301 o 302 según sea el caso. Normalmente nos encontramos con que una página Web cambia de URL y tenemos que redireccionar de la vieja URL a la nueva, o tenemos una Web que cambia su dominio y tenemos que redireccionar las url del antiguo dominio al nuevo.

Nunca debemos realizar este tipo de redirecciones por HTTP, javascript, etc. porque nos podemos encontrar con que los buscadores no puedan seguir esas redirecciones. Para hacerlo correctamenteme, como comentábamos antes, deberemos de usar redirecciones 301 y 302.

¿Y que diferencia hay entre las redirecciones 301 y 302?

Con la redirección 301 estamos indicando al buscador que esa redirección es permanente, es decir, que una URL A ha cambiado definitivamente a la URL B.

Con la redirección 302 estamos indicando al buscador que esa redirección es temporal, es decir, que una URL A  se ha cambiado temporalmente a la URL B.

¿Y cuando utilizar cada una de estas redirecciones?

Las redirecciones 301 debemos de utilizarlas cuando, como hemos comentado antes, cambiamos una, varias o todas las URL de una Web definitivamente. Nosotros solemos utilizar las redirecciones 301 para evitar contenido duplicado en la home de las Webs ya que algunas son accesibles con URLs del tipo www.midominio.com y www.midominio.com/index.php. Para que Google no tome como contenido duplicado esas dos URL que en realidad es la misma realizamos una redirección 301 de www.midominio.com/index.php a www.midominio.com

Nos ha ocurrido también algún caso de un cliente que tras cambiar de CMS tiene los mismos contenidos pero con distintas URL. Esto quiere decir que todas las páginas que tiene indexadas Google van a devolver un error 404 de página no encontrada y se perderá el valor de todos los enlaces que apunten a las páginas Web internas. En este caso lo que hay que hacer es un redirección 301 de las URL viejas a las URL nuevas.

Ocasionalmente algún cliente toma la decisión de cambiar el nombre del dominio por motivos diferentes. En este caso también habría que realizar una redirección 301 de todas las URL del antiguo dominio al nuevo.

También se suelen utilizar redirecciones 301 cuando disponemos uno o más dominios y queremos que redireccionarlo a otro dominio, cosa que suele ser bastante habitual. Por ejemplo el dominio www.microsoft.es tiene una redirección 301 a http://www.microsoft.com/spain.

¿Y las redirecciones 302?

Es una redirección más ambigua y menos usual. Nosotros lo utilizamos en clientes que utilizan gestores de dontenidos que obligan a que la redirección de la home sea por ejemplo del tipo www.midominio.com/cms/portada/index.php. En este caso realizamos una redirección 302 desde www.midominio.com a la URL que hemos descrito anteriormente. El valor de los enlaces enviados a www.midominio.com afectarán a la URL www.midominio.com/cms/portada/index.php, además los buscadores mostrarán como en sus resultados el dominio simple en lugar de la URL de ejemplo con la que estamos trabajando.

Un ejemplo lo podemos ver en la anterior URL de Microsoft que hemos citado: http://www.microsoft.com/spain . Esta URL tiene una redirección 302 a http://www.microsoft.com/es/es/default.aspx, si buscamos microsoft en Google vemos que la dirección que nos muestra en verde es la primera, sin embargo nos envía a la segunda cuando hacemos clic.

¿Como hacer estas redirecciones?

En PHP sería así para realizar una redirección 301:

Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: url_permanente" );

Y así para realizar una redirección 302:

header("HTTP/1.1 302 Moved Temporarily");
header("Location: url_temporal");

Para realizar una redirección 301 desde el archivo  el htaccess

redirect 301 /http://www.midominio.com/url_antigua.html http://www.midominio.com/url-permanente/

Redirect 302 /http://www.midominio.com/url_antigua.html http://www.midominio.com/url-temporal/