Redirección 301: Cambiando de URL
En muchos casos nos encontramos con la situación de tener una dirección URL de una página que hemos cambiado a otra URL nueva, y por supuesto, queremos que nuestros visitantes actuales accedan mediante la nueva dirección.
Asumamos el hipotético caso de querer cambiar a una URL nueva por una serie de razones (hemos cambiado de dominio, el hosting tenía un dominio propio, nos gusta más un dominio.com, etc...). El cambio será, por ejemplo, el siguiente:
http://micarromelorobaron.blogspot.com/ a un nuevo dominio.
En este ejemplo cambiaremos de dirección porque la longitud de la URL original no nos parecía adecuada. Asi pues, cambiamos a una nueva URL:
http://www.micarromelorobaronanochemientrasdormia.com/.
El usuario webmaster suele realizar una de las tareas siguientes para solucionar esta situación:
Avisar por texto e incluir un enlace
El webmaster ha preparado una página para que al acceder a la dirección anterior muestre un texto avisando al visitante humano que la página ha cambiado de dirección, junto a un enlace para acceder a la nueva dirección. La peor solución de todas.
Una redirección META
El webmaster incluye el siguiente código HTML en su dirección anterior:
<head>
<meta http-equiv="refresh"
content="0;URL=http://www.nuevaurl.com/">
<title>La página ha cambiado de dirección </title>
</head>
Con ello realiza una redirección a nivel del navegador (pero que sólo algunos navegadores lo efectuan) y la cuál tarda más en realizarse. Mejor que la anterior, pero sigue siendo una mala opción.
Redirección a nivel del servidor
El webmaster coloca el siguiente código, en un lenguaje de servidor, como por ejemplo ASP o PHP:
<?php
header("Location: http://www.nuevaurl.com/");
?>
Con este ejemplo, hacemos una redirección instantánea. El usuario no se da cuenta de que hay una redirección, excepto por el cambio de la URL. De las mejores soluciones con respecto a las anteriores, no obstante, no es la mejor.
Redirección 301
Esta redirección trata a nivel de usuario humano exactamente igual que la anterior, pero con un ligero cambio que es muy importante.
La mayoría de los buscadores o robots indexadores, al encontrar una redirección 301 saben que la URL ha cambiado a la web redirigida, actualizando en un breve espacio de tiempo todas las URLs antiguas de su base de datos a la nueva URL. Esto es muy importante, ya que en un buscador como Google, por ejemplo, perdería el número de enlaces existentes a su web, muchos usuarios no entrarían y buscarían otra web por no tener que volver a pinchar en un enlace, etc.
<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.nuevaurl.com" );
?>
¡Por fin! Hemos llegado a la mejor redirección posible.
Redirección 301 con ModRewrite
Una forma más limpia aún, para los que tengan el módulo de ModRewrite instalado en su apache, es la siguiente, editando el fichero .htaccess:
RewriteEngine On
RewriteRule .* http://www.nuevaurl.com/ [R=301]
Para más información, echarle un vistazo a la chuleta de ModRewrite, con más datos sobre este sistema.
Existe, también, una manera todavía más sencilla mediante .htaccess que no requiere ModRewrite:
Redirect 301 / http://www.nuevaurl.com/
La redirección 301 es muy importante por esta última razón. Siempre se debe mantener una dirección principal de esta forma para no duplicar contenido. Además, se rumorea que Google penaliza a páginas con contenido duplicado.
Más sobre redirecciones 301 en More 301 Redirect y redirección 301 en dirson.