A lo largo de la vida de una web nos iremos encontrando con diversas situaciones que afectarán a nuestras distintas landing pages. Algunas de estas situaciones pueden suponer:

  • Desactivación temporal de páginas.
  • Cambios de URL.
  • Migración de dominio.
  • Eliminación definitiva de páginas.

Con el fin de no perder la relevancia de nuestras landing pages, así como para no perder el tráfico de referencia que puedan generar, deberemos planificar qué tipo de redirección de servidor aplicar en cada caso e implementarla correctamente.

¿Redirección? ¿Qué es y cómo se hace eso?

Vale, vayamos por partes. Una redirección de servidor es una configuración mediante la cual, cuando un agente (Chrome, Firefox, Googlebot, etc…) realice una petición para cargar una página específica, el servidor devolverá una respuesta indicando la nueva ubicación donde realizar la petición.

En el caso de los servidores Apache, podremos implementar esta configuración editando el archivo .htaccess.

¿.htaccess? A mi me hablas más sencillo…

Ok… El archivo .htaccess es un fichero especial que permite definir ciertas reglas de configuración del servidor sin necesidad de modificar el archivo de configuración del servidor Apache. Para editarlo puedes hacerlo desde el gestor de archivos web que tenga tu proveedor de hosting, aunque yo te recomiendo descargarte un cliente como FileZilla y que te conectes por FTP a tu servidor.

A continuación, veremos distintas situaciones que se pueden dar y cómo implementar la redirección correspondiente en un hipotético ecommerce sólo apto para nostálgicos.

Situación inicial

En este escenario inicial, estamos en un 1992 en el que la globalización y el acceso a internet por cable está a la orden del día. Tenemos un ecommerce en el que vendemos videoconsolas Sega y Nintendo y tenemos nuestras landing pages con la siguiente estructura:

Redirects con htaccess - escenario inicial

En este caso, tenemos dos categorías de producto (Sega y Nintendo) de las que cuelgan las distintas consolas que vendemos para cada una de ellas. Paralelamente, tenemos una categoría de ofertas en la que se ofrecemos distintas ofertas y packs puntuales y de la que cuelgan dos ofertas especiales que todos los años publicamos en unas fechas concretas (Black Friday y Cyber Monday).

Escenario 1: desactivación temporal de una página

Después de petarlo en el Black Friday, tenemos que desactivar esta oferta hasta el Black Friday del próximo año. Puesto que cada año utilizamos la misma URL, para mantener su relevancia e indexación, implementaremos una redirección temporal 302 hacia la landing del nivel superior /ofertas/ donde el usuario encontrará las ofertas activas en este momento.

Para añadir esta redirección en el archivo .htaccess, deberemos añadir la siguiente línea:

Redirect 302 /ofertas/black-friday/ http://midominio.com/ofertas/

Así pues, tras la redirección nuestra web quedaría del siguiente modo:

Redirects htaccess - Escenario 1

Escenario 2: migración de dominio

Resulta que el dominio que tenemos para nuestro ecommerce no resulta muy atractivo ni fácil de recordar. Después de darle muchas vueltas, decidimos que ya es hora de profesionalizar nuestro pequeño ecommerce y lanzarnos a conquistar el sector de venta de videoconsolas por internet bajo una nueva marca comercial. Pero ojo, no por cambiar de dominio hay que renunciar al trabajo SEO que hemos hecho hasta ahora.

En este caso, y puesto que vamos a mantener toda la estructura y nomenclatura de páginas, deberemos implementar una redirección permanente 301 para cada una de las páginas de midominio.com. Para ello, deberemos añadir la siguiente línea en nuestro archivo .htaccess:

RedirectMatch permanent ^(.*)$ http://minuevodominio.com$1

Ojo cuidado: recuerda mantener el dominio viejo activo durante por lo menos 6 meses después de la migración y con un sitemap en el que tengas las URLs antiguas para que los buscadores puedan rastrear y seguir las redirecciones para:

  • Eliminar del índice las URLs antiguas.
  • Traspasar la relevancia a las páginas nuevas.

Tras implementar esta redirección, nuestra web quedaría de la siguiente manera:

Redirección htaccess migración de dominio

Escenario 3: cambio de nombre de páginas

Con la creciente globalización en el sector tecnológico, los señores de Sega deciden unificar el nombre comercial de la Mega Drive y empiezan a comercializarla en todo el mundo bajo la denominación que usaban en América: Genesis.

Como el cambio es definitivo, deberemos implementar una redirección permanente 301 desde http://minuevodominio.com/sega/mega-drive/ a la nueva URL http://minuevodominio.com/sega/genesis/. Así pues, deberemos añadir la siguiente línea en el archivo .htaccess:

Redirect 301 /sega/mega-drive/ http://minuevodominio.com/sega/genesis/

La nueva estructura de nuestra web quedará del siguiente modo:

Redirects htaccess cambio URL

 Escenario 4: eliminación permanente de páginas

Pasan los años y la tecnología evoluciona. Estamos a finales de 1997 y las consolas de quinta generación llenan las cartas de los Reyes Magos de niños y de no tan niños. En este tiempo, nuestro ecommerce ha sufrido los siguientes cambios:

  • Ya no vendemos consolas de 8 ni 16 bits.
  • Vendemos dos nuevos modelos: Sega Saturn y Nintendo 64.
  • En cuanto a consolas portátiles, únicamente vendemos la nueva Game Boy Pocket.
  • Tenemos una nueva consola de un nuevo proveedor: la Sony PlayStation.

NOTA: sí, has acertado, en este universo paralelo se libraron del Sega Mega CD pero no se salvaron de la Sega Saturn.

A la vista de estos datos, deberemos analizar las redirecciones para cada uno de los casos:

  • 8 y 16 bits –> proponemos redirección permanente a la categoría superior (Sega o Nintendo).
  • Game Gear –> proponemos redirección permanente a la categoría superior (Sega).
  • Game Boy –> optaremos por una redirección a su sucesora, Game Boy Pocket.

Para implementar estas redirecciones, añadiremos lo siguiente en el archivo .htaccess:

Redirect 301 /sega/master-system-2/ http://minuevodominio.com/sega/
Redirect 301 /sega/genesis/ http://minuevodominio.com/sega/
Redirect 301 /sega/game-gear/ http://minuevodominio.com/sega/
Redirect 301 /nintendo/nes/ http://minuevodominio.com/nintendo/
Redirect 301 /nintendo/super-nes/ http://minuevodominio.com/nintendo/
Redirect 301 /nintendo/game-boy/ http://minuevodominio.com/game-boy-pocket/

Después de estos cambios, las categorías y productos quedarían del siguiente modo:

Redirects htaccess eliminación de páginas

Recopilando datos

Como hemos visto en los ejemplso anteriores, para una redirección de una única página, lo podremos hacer con el alias Redirect:

Redirect código_de_redirección URL-path URL

  • Código de redirección:
    • 301: permanente
    • 302: temporal
  • Path: ruta de la página a redirigir (sin dominio).
  • URL: ruta absoluta de destino de la redirección.

En el caso de querer redirigir directorios o patrones, utilizaremos el alias RedirectMatch:

RedirectMatch [tipo] regex URL

  • Tipo:
    • permanent: permanente (301)
    • temp: temporal (302)
  • Regex: expresión regular del patrón a redirigir (sin dominio) (más info de expresiones regulares aquí). Entre paréntesis podemos “capturar” el texto que cumple con la regex para emplearlo en la URL de destino
  • URL: ruta absoluta de destino. Con $1 podremos aplicar el texto capturado en la expresión regular.

Así que ya sabes, ya no tienes excusas para no tener un correcto control de las páginas que cambian en tu web a lo largo del tiempo 😉