Quizá necesites hacer una redirección 301(o varias redirecciones 301) por un problema con tu pagina web, con tus archivos web o has cambiado de sitio tu pagina que te haya hecho llegar hasta este artículo sobre redirección 301; o puede que estés investigando sobre servidores, has tenido algun problema con tu las redirecciones en tu web en ideaWeb nos ha pasado alguna vez también es algo habitual en el desarrollo web o el diseño web encontrarte con estas situaciones en el día a día por eso os queremos ayudar con esta recopilación completa de los casos en que usar el 301.
Resumen:
Cualquiera que esté un poco metido en este mundo del diseño y desarrollo web, ha oído alguna vez la frase “haz una redirección 301”, y muchos os habréis preguntado “¿y qué es eso?”. En cualquiera de los casos os vamos a ayudar con este manual completo de redirección 301, todo lo que debes saber sobre redirecciones de tipo 301, o redirecciones permanentes de archivos web.
Pues básicamente, una redirección 301 es un recurso para mover, eliminar y consolidar páginas, se suele utilizar mucho actualmente como una solución a problemas SEO. Una 301 lo que hace es indicarle al “visitante”, ya sea un crawler (buscadores), bot, navegador u otro servidor, amablemente que tu web ya no está en ese lugar donde va a buscarla, que se ha cambiado de forma permantente a otro lugar, le dice: eh, lo que buscas ya no está aqui, ahora lo hemos cambiado a la siguiente dirección URL, así que te mando para allá automáticamente.
Aquí tenemos todo lo necesario y completo para que te montes tus 301 redirect a tope, así que hoy vamos a aprender a hacer un redireccionamiento 301 en servidores Apache.
Qué es una redirección 301
Vamos a usar un supuesto que se da bastante como caso de uso para explicaros las 301, imagínate que acabas de hacer una nueva página, con una URL diferente a la que ya tenías, claro, pero quieres que tus antiguos usuarios te sigan encontrando fácilmente, utilizando la URL que ellos conocían e incluso tenían guardada (la antigua). Pues lo puedes hacer fácilmente con una redirección 301.
Lo podemos hacer con unos comandos que permiten reenviar, de forma automática, a los usuarios o buscadores de una URL a otra.
Así nos evitaremos, les evitaremos, a nuestros usuarios, que lleguen a una página que no existe (error 404).
Utilizaremos estas redirecciones en diferentes casos y diferentes usos de la redirección 301:
- Para cambiar la URL de una página o eliminarla
- Si tenemos contenido duplicado
- Si tienes URL’s que ya no exiten
- Si necesitas cambiar de gestor de contenidos (CMS)
- Necesitas establecer la versión canónica de tu sitio.
Cuándo utilizar redirecciones 301 y Por qué
Seguro que has pensado en si no puedes hacer esto de otra forma o incluso lo has hecho y te preguntas por qué debes hacerlo con un 301.
Pues la respuesta es fácil: las únicas redirecciones que pasan la prueba de los buscadores son las 301; Es decir, estas redirecciones transmiten y mantienen el Pagerank o actualmente mejor la autoridad del sitio y posicionameinto de cierto contenido, redireccionar es algo importante también considerando que los buscadores calculan la popularidad de cada página basándose en los enlaces si te estaban enlazando otros a tu web y los pierdes, con un 301 los rediriges automáticamente a tu nuevo sitio y aprovechas el SEo que te aporten esos enlaces.
Cuando un buscador se encuentra con una redirección 301 lo que hace es:
- Elimina la página antigua de su índice, así no volverá a aparecer en las páginas de resultados.
- Incluye la nueva página en su índice.
- Transfiere el valor de la antigua página a la nueva.
Con esto, el SEO de tu sitio web, no se verá afectado.
Cómo se hace una redirección 301
Lo primero que hay que hacer es abrir el archivo .htaccess. Este archivo, que controla la configuración del servidor, lo puedes encontrar en la raíz de tu sitio web. Será aquí donde añadiremos los comandos necesarios para hacer una redirección 301.
Como acabas de leer, .htaccess controla la configuración del servidor y eso quiere decir que es un archivo importante y fundamental y que debemos tener mucho cuidado cuando lo editemos.
Se recomienda siempre hacer una copia por si cometemos algún error al editarlo. También es importante no cambiar nada de lo que ya aparece allí, al menos si lo único que quieres hacer es una redirección 301.
Para abrir el archivo .htaccess debes conectarte mediante FTP al servidor, por ejemplo con FileZilla, y buscarlo. Normalmente la ruta a seguir es: www/httdocs/public. Puede que no esté visible y para solucionarlo bastará con que actives la opción para ver todos los archivos.
Una vez que ya lo tenemos localizado y hemos tomado las precauciones debidas a la hora de editarlo, veamos qué debemos añadir.
Las líneas de código a añadir serán diferentes dependiendo de qué queramos redireccionar:
Redireccionar una Página
Si lo que quieres es cambiar la URL de una página, mover el contenido de una página a otra o simplemente eliminarla, esto es lo que debes añadir:
Redirect 301 /vieja-pagina https://www.example.com/nueva-pagina
Si sólo quieres cambiar la Home (la página de inicio) de tu sitio web puedes poner:
RedirectMatch 301 ^/$ https://www.example.com/nueva-pagina
Observa que al hacer referencia a la página antigua no es necesario indicar el domino y en cambio sí lo especificamos en la nueva. Con ello será más fácil cambiar nuestro sitio a otro dominio.
Redireccionar un directorio
Vamos a imaginar que tenemos un directorio con otros subdirectorios en su interior o páginas o ambas cosas, y que queremos mover todo el contenido a otro directorio diferente manteniendo su estructura interna y su SEO. En ese caso deberíamos añadir:
Redirect 301 /viejo-directorio/ https://www.example.com/nuevo-directorio/
También podemos redireccionar subdirectorios:
Redirect 301 /directorio/viejo-subdirectorio/ https://www.example.com/directorio/nuevo-subdirectorio/
O, complicándolo un poco, podemos mover directorio hacía un subdirectorio más profundo:
Redirect 301 /directorio/subdirectorio/
Y si tenemos un directorio del que cuelgan páginas internas y lo queremos quitar ese directorio y lo que contiene, habría que añadir:
RedirectMatch 301 ^/viejo-directorio/(.*)$ https://www.example.com/nueva-pagina
Redireccionar un dominio
Si lo único que quieres cambiar es el nombre del dominio manteniendo SEO y toda la estructura de URL’s lo que debes añadir es:
Redirect 301 / https://www.example.com/
Y si quieres redireccionar todo el contenido del viejo dominio a solo la página principal del nuevo ya que la nueva pagina web será diferente:
RedirectMatch 301 (.*) https://www.example.com
Importante: en este caso deberás renovar el antiguo dominio junto con tu plan de alojamiento (no lo debes dejar caducar o perder, hay que continuar renovándolo, “pagando”) para poder conservar las redirecciones. Si lo pierdes, perderás también el jugo de enlace acumulado hasta ahora por tu sitio.
Redireccionar una IP
Otro punto importante y que debemos asegurarnos de tener bien configurado, es que la dirección IP de un sitio debe reconducir a la URL del dominio y no a la del servidor.
Para redireccionar la IP del servidor a nuestro dominio añadir:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^198\.51\.100\.24
RewriteRule (.*) https://www.example.com/$1 [R=301,L,QSA]
</IfModule>
Cuidado: en la segunda línea de este fragmento de código aparece una IP de ejemplo (^198\.51\.100\.24^). NO olvides cambiarlo por la de tu servidor.
Redireccionar a www o sin ellas y viceversa
Otro problema con el que nos podemos encontrar es el de tener dos versiones de un mismo sitio web: uno con www y otro sin ellas. Es decir, podemos tener: www.example.com y example.com
Ahora dependiendo de con cuál nos queramos quedar podremos hacer una redirección u otra:
- Si queremos quedarnos con la versión con www utilizaremos la redirección canónica:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule (.*) https://www.example.com/$1 [R=301,L,QSA]
</IfModule>
- Si lo que queremos es eliminar las tres w’s, es decir, sin www, añadiremos:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule (.*) https://example.com/$1 [R=301,L,QSA]
</IfModule>
Redireccionar de HTTP a HTTPS y viceversa
Este redireccionamiento se suele añadir cuando añades a tu servidor un certificado SSL para no perder el SEO se hace una redireccion 301 para conservar el SEO ya que al tener una s en el protocolo http Google lo considera un sitio web nuevo y perderías el SEo. Este redireccionamiento está basado en si nuestro sitio tiene certificado SSL o no. Si quieres saber como hacerlo bien, uede leer nuestro artículo de como añadir un certificado SSl a tu web WordPress.
Si nuestra web es segura, es decir, tiene certificado SSL, nos deberíamos asegurar que cualquiera de las páginas se sirve desde el protocolo HTTPS y para ello añadiremos:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.example.com/$1 [R=301,L,QSA]
</IfModule>
En cambio si quieres quitar el certificado de seguridad SSL. Debes hacer una redirección a HTTP y eso se consigue añadiendo:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} on
RewriteRule (.*) https://www.example.com/$1 [R=301,L,QSA]
</IfModule>
Importante: si no haces esta redirección, el usuario se encontrará con un mensaje de error que es molesto y alarmante y eso hará que pierdas usuarios
Redireccionar la barra del final (/)
Nos volvemos a encontrar, de nuevo, con un caso de posible duplicidad. Si nosotros podemos llegar a nuestro sitio poniendo una barra ( / ) al final o sin ponerla,
https://www.example.com/pagina
https://www.example.com/pagina/
tendremos una duplicidad y para resolverla la única opción es hacer una redirección 301 añadiendo:
- Si queremos que tenga la barra al final (https://www.example.com/pagina/) añadimos:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*) https://www.example.com/$1/ [R=301,L,QSA]
</IfModule>
- Si queremos quitar la barra del final (https://www.example.com/pagina)
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ https://www.example.com/$1 [R=301,L,QSA]
</IfModule>
NOTAS y aspectos importantes a tener en cuenta cuando hagamos una redirección 301:
- Antes de dar por finalizado nuestro proceso de redirección 301, debemos comprobar todas y cada una de las redirecciones introducidas, incluyendo directorios, páginas individuales, …..
- Cualquier cambio que hagamos, de este tipo en nuestro sitio web, es recomendable hacerlo en las horas de menos tráfico.
- Una vez hecho estas redirecciones deberíamos dejarlas configuradas así para siempre (lo que podría llevar en algunos casos a tener que mantener dos dominios o dos alojamientos). Pero sabemos que esto es casi imposible, así que nos debemos asegurar de mantenerlas, al menos, durante un año, ya que según algunos analistas de Google, el buscador puede tardar de seis meses a un año en reconocer que un sitio web ha cambiado de dirección.
- Recuerda que estos cambios los debes hacer sobre el archivo .htaccess, en un servidor web Apache y con la función mod rewrite activada.
Para que este modo de reescritura esté activado, debemos añadir, al principio del archivo, el siguiente código:
Options +FollowSymlinks
RewriteEngine on
- Vigila muy bien que al redireccionar otros sitio no se encuentren con un 404 not found. Si acabas de hacer una redirección 301, avisa a los sitios de referencia para que actualicen los enlaces a tus páginas nuevas o el usuario se encontrará con una página 404. Nunca confíes en dejar la redireccion y ya está. Por ejemplo: si das de baja el dominio antiguo los enlaces que no estén actualizados harán un 404.
- Por último, no olvides que todos los nombres de páginas, directorios y demás son de ejemplo, así como la IP, debes sustituirlas por las tuyas propias para que todo funcione.
Para acabar, si ves que todo esto te puede, en ideaWeb somos desarrolladores web y gestionamos servidores, cuentas de alojameinto web hosting, paginas web, soporte técnico web completo… ya sabes, nos dedicamos a estos, asi que si ves que te supera o directamente no te da la gana de hacerlo o no tienes tiempo, no dudes en consultar con nosotros sobre nuestros servicios de soporte técnico web y estaremos encantados de ayudarte o darte presupuesto para lo que necesites hacer en tu página web.