Manual completo sobre las Redirecciones 301

Manual completo sobre las Redirecciones 301

Realizar una redirección supone que cuando un usuario llega a una url de una página web concreta, automáticamente le redirigimos a otra url diferente. Esto puede ser necesario por varios motivos: si la URL ya no exista, que hayamos cambiado de dominio, ante un cambio en la estructura de secciones de la web o por el simple hecho de querer que los usuarios vayan a otra página diferente.

Tipos de redirecciones

Existen diferentes tipos de redirecciones en función del motivo por el que se plantea o de la capacidad técnica de quien la vaya a realizar. Nos vamos a centrar en la redirección 301 ya que es la óptima para SEO, dejando fuera las que se pueden hacer con html o javascript, y las temporales 302.

Al realizar la redirección 301 se envía al usuario a otra URL, teniendo en cuenta que este cambio también afecta a la mayor parte del link juice, la popularidad que tiene la página por los enlaces externos. También es importante saber que Google las recomienda en su página de ayuda.

Realizar una redirección 301

Comenzamos con el método más común de realizar una redirección como es el de hacerlo a nivel de servidor. Si éste es un servidor Apache, debe estar activado el módulo mod_rewrite y haciendo los cambios en el archivo .htaccess. Este último se encuentra en la raíz del servidor, editable con un editor de texto o aplicación de edición html, ya que es un archivo de texto plano.

Un punto importante recomendable es el de hacer una copia de seguridad previa del archivo a modificar. El acceso a este archivo es muy sencillo utilizando cualquier aplicación de FTP. Y que si realizamos una incorrecta configuración del archivo puede derivar en un mal funcionamiento del servidor y que la consulta de la web nos devuelva un error 500, como muchas veces ocurre con una incorrecta sintaxis del archivo.

Comenzando

Lo primero que debemos hacer es añadir una primera línea en el archivo .htaccess haciendo una llamada al módulo mod_rewrite.

Options +FollowSymlinks

RewriteEngine On

También cobra importancia la diferencia entre ruta y URL. La URL es la dirección web completa, incluido el protocolo y subdominio. Sin embargo, al hablar de rutas consideramos solamente la dirección a partir del final del dominio.

Ejemplo de URL: http://www.imaginanet.com/blog

Ejemplo de ruta: /blog

Realizar redirecciones simples

Con redirección simple hablamos de redirigir una página 1 hacia otra página 2. Supone el ejemplo de redirección más simple y más utilizado. Se utiliza mucho cuando se detectan errores 404 con la herramienta Google Webmaster Tools, o cuando queremos mover o eliminar una página de nuestro sitioweb. Para hacerla es suficiente con añadir Redirect 301 y a continuación la ruta de la página antigua y después la URL  de la página de destino, quedando de esta forma:

Redirect 301 /pagina-antigua http://www.dominio.com/pagina-nueva

No olvidar el espacio entre las ordenes, si quedan espacios de más u otros caracteres se podría provocar un error 500.

Realizar redirecciones de directorios

En ocasiones lo que queremos hacer es mover o renombrar un directorio entero, y para realizar esto lo que debemos hacer es lo siguiente:

Redirect 301 /directorio-antiguo/ http://www.dominio.com/directorio-nuevo

Tener en cuenta que esto atañe únicamente a los directorios, si lo que deseas es que todas las páginas se redirijan al mismo tiempo, hay que poner lo siguiente:

RedirectMatch 301 /directorio-antiguo/(.*) /nuevo-directorio/$1

Así, todas las páginas incluidas en el directorio antiguo se redirigen a las nuevas páginas, manteniendo la misma estructura. Con ello la URL http://www.dominio.com/directorio-antiguo/pagina.html obtiene una redirección 301 hacia http://www.dominio.com/directorio-nuevo/pagina.html.  Lo mismo sucederá con todo el contenido incluido en el directorio antiguo.

También se puede hacer que un directorio al completo se redirija a una misma página. El ejemplo puede ser si necesitamos eliminar una categoría por completo de un blog o catálogo y que el contenido al completo de esta categoría se redirija a la página de inicio de la web, u otra preparada al efecto:

RedirectMatch 301 ^/directorio-antiguo/(.*)$ http://www.dominio.com/pagina.html

Realizar redirecciones de dominios

Otras veces la necesidad pasa por redirigir un dominio al completo y en esta ocasión existen 3 opciones diferentes.

La primera es en el caso en que queremos redirigir únicamente la raíz del dominio hacia otro diferente. Basta con modificar el archivo .htaccess añadiendo el siguiente fragmento:

Redirect 301 / http://www.dominio.com/

El segundo caso se plantea cuando la necesidad pasa por redirigir todo el dominio pero además todo su contenido hacia otro nuevo, en este caso el método será el siguiente:

RedirectMatch 301 ^(.*)$ http://www.dominio.com/

En el tercer y último caso se plantea una migración total del dominio, y cada página antigua debe dirigirse hacia la misma en el dominio nuevo. El código a utilizar será en este caso el siguiente:

RedirectMatch 301 ^(.*)$ http://www.example.com/$1

Realizar una redirección canónica del dominio (sin www a con www y al revés)

Dentro del análisis SEO de un sitio web este es uno de los primeros factores a tener en cuenta, ya que es preciso que una página web solo responda a uno de los dos. Si lo hiciera a ambos, nos podríamos encontrar con un caso de contenido duplicado, con los perjuicios que esto puede ocasionar. La solución es muy sencilla, modificando el archivo .htaccess en función de la necesidad, de las dos siguientes maneras:

Redirigir el dominio sin www a con www

RewriteCond %{HTTP_HOST} ^dominio.com [NC]
RewriteRule ^(.*)$ http://www.dominio.com/$1 [L,R=301]

 Redirigir el dominio con www a sin www

RewriteCond %{HTTP_HOST} ^www.dominio.com [NC]
RewriteRule ^(.*)$ http://dominio.com/$1 [L,R=301]

Realizar redirecciones con parámetros GET

Este es un caso más complejo y se encuentra cuando existen sitios web en los que hay URL no amigables que incluyen parámetros como parte de la propia URL. En el caso de querer redireccionar una página del tipo http://www.dominio.com/index.php?id=blog hacia una página del tipo http://www.dominio.com/blog/ es necesario utilizar lo siguiente:

RewriteCond %{QUERY_STRING} id=blog
RewriteRule ^index.php$ /blog/? [L,R=301]

Dentro de este artículo hemos resumido las principales maneras de hacer redirecciones en un servidor Apache.

Comentarios

Sin comentarios
Ha habido un error en el envío
Comentario enviado. Será revisado por la moderación antes de ser publicado.

Deja tu comentario

Tu nombre:
Tu email:
Tu comentario: