Opciones para redireccionar una página web
La redirección de dominios juega un papel fundamental en el desarrollo y correcto funcionamiento de proyectos web de gran tamaño. La capacidad de redirigir el tráfico de una página web a otra ayuda a los webmaster a mantener el flujo de tráfico mientras se llevan a cabo, por ejemplo, reestructuraciones en la web. Además, redireccionar un dominio permite poner a disposición de los usuarios contenido idéntico, a través de diferentes dominios, sin que sea considerado como contenido duplicado. Como consecuencia, la redirección de dominios es una herramienta eficaz de indexación dentro del SEO. Durante el proceso surgen diferentes opciones que permiten redireccionar un dominio o un subdominio a nivel interno o externo. La mayoría de veces, la redirección se hace a través de .htaccess, PHP, etiquetas meta HTML y JavaScript.
Redireccionar el dominio de una web activa
Las redirecciones tienen como función principal notificar a los servidores que el contenido de una página web se ha trasladado de una URL a otra. Esto es fundamental si la dirección original recibe enlaces entrantes, si ha sido marcada como favorita en el navegador de un visitante o si cuenta con una posición destacada en los resultados de los motores de búsqueda. Así, al redireccionar una web se le está informando al navegador web o al crawler que el contenido buscado ha sido trasladado, redireccionándolo automáticamente a la nueva URL. De no ser así, los visitantes de la página web se encontarian con el mensaje genérico de error 404, que debe ser evitado, especialmente, por portales de comercio online.
La mayoría de tiendas online ofrecen una gama de productos muy amplia y que cambia regularmente, lo que se refleja en una gran cantidad de páginas web individuales. Así, cuando un artículo no está disponible, los clientes potenciales son simplemente redirigidos a una nueva subpágina con productos similares. Mediante la redirección eficiente de los flujos de visitantes, todo proyecto web está minimizando significativamente la tasa de rebote. Redireccionar una página web permite poner a disposición el mismo contenido web en diferentes URL, redirigiendo todas las direcciones alternativas al dominio deseado.
Tipos de redirección de dominios
En general se distinguen dos tipos de redirecciones: aquellas que se llevan a cabo desde el servidor y aquellas basadas en el cliente. Para redireccionar un dominio desde el servidor, se muestra un código de estado HTTP al agente de usuario (ya sea el navegador web o el crawler). Cuando la redirección se basa en el cliente, se hace de manera automática sin ningún tipo de notificación al visitante. Esto hace que estas últimas no sean compatibles con todos los agentes de usuario, generando así que algunos usuarios permanezcan en la web original sin ser redirigidos al nuevo dominio. Es por este motivo que se suele recomendar redireccionar una página web desde el servidor. Las soluciones basadas en el cliente se deben usar solo cuando las limitaciones técnicas por parte del servidor impiden la redirección.
Redirección desde el servidor
En la mayoría de los casos se utiliza un archivo .htaccess o un script PHP para redireccionar un dominio. La ventaja de estos métodos reside en que es posible definir individualmente qué código de estado HTTP debe mostrarse al agente de usuario, caracterizando así las redirecciones como temporales o permanentes. Así, resultan relevantes especialmente dos códigos de estado HTTP, el 301 y el 302:
- 301 – Moved Permanently: la página solicitada por el agente de usuario estará disponible de manera permanente bajo la URL redireccionada. La antigua URL será, por lo tanto, inválida.
- 302 – Moved Temporarily: la página solicitada por el agente de usuario está temporalmente disponible bajo la nueva URL. A diferencia de la redirección 301, la antigua dirección sigue siendo válida.
En caso de que no se defina específicamente el código de estado HTTP, el servidor mostrará por defecto un código de estado 302, lo que no siempre es ideal. Por lo tanto, es aconsejable introducir manualmente todos los códigos de estado para evitar errores de indexación como el URL Hijacking. A diferencia de la redirección 301, el código de estado 302 le comunica al crawler que la URL original debe seguir siendo indexada. De mantenerse activa, la URL antigua competirá con la nueva en el índice de los motores de búsqueda.
Redirección .htaccess
.htaccess hace referencia a un tipo de archivo de configuración para el servidor web Apache, con el que es posible asignar permisos de acceso a directorios y archivos. Estos archivos permiten a los propietarios de páginas web realizar los ajustes necesarios en los directorios de un dominio o un subdominio. Una de las funciones del archivo .htaccess consiste en redireccionar un dominio de una URL a otra desde el servidor. Así, al crear un archivo .htaccess con el siguiente código en el directorio principal, todas las visitas desde la URL antigua serán redireccionadas al dominio “www.ejemplo.es”:
La línea de código comienza con “Redirect 301” y especifica, por lo tanto, la información que debe transmitirse a partir del código de estado HTTP del servidor. La siguiente parte del código indica que la ruta de acceso guiará al usuario a los contenidos que han sido redireccionados en este caso, como lo denota la barra invertida, a la totalidad de la web. Por último, la línea de comandos incluye la dirección completa de destino a la que el agente de usuario será redirigido.
Este método también permite redirigir archivos individuales. El siguiente código muestra cómo redireccionar un archivo de una página web a otra:
Después del código de estado HTTP 301 se encuentra el directorio que va a ser redirigido de forma permanente (“/directorio/documento-de-ejemplo.html”), así como la URL de destino (“http://www.ejemplo.es/ejemplo.html”).
En un servidor Apache con el módulo mod_rewrite activado, la redirección permanente de un dominio a otro se verá de la siguiente manera:
La línea 01 del código activa el módulo mod_rewrite del servidor Apache con el comando “RewriteEngine On”. La segunda línea comienza con “RewriteRule”, que se encarga de definir el enrutamiento del archivo y denotar la dirección de destino. El símbolo de intercalación (^) y el símbolo del dólar marcan el principio y el final de la ruta, L designa la última regla del mod_rewrite para solicitudes similares. R=301 redirige con el código de estado HTTP 301.
Hay que tener especial cuidado con la configuración .htaccess para redireccionar un dominio, pues un error en el código modifica automáticamente los archivos de configuración de la web y puede generar problemas en su funcionamiento. Debido a que las modificaciones son aplicadas inmediatamente después de haber sido guardadas, es recomendable comprobar el código y verificar los cambios antes de guardarlos.
Redirección con PHP
Redireccionar una página web no solo es posible a través de archivos .htaccess. También lo es usando comandos en script PHP (por ejemplo en el index.php). El siguiente código ejemplifica una redirección permanente a la URL de destino ficticia “www.ejemplo.es”.
En la redirección con PHP, la función “header” en la línea de código 02 define el código de estado –en este caso el 301 de redirección permanente. Debido a que, por defecto, las redirecciones desde el servidor son temporales, es necesario forzar la redirección a través del código de estado 301. La URL de destino –en este caso “www.ejemplo.es”– en la línea de comando 03 también es definida por la función “header”. La función “exit” en la línea de comando 04 finaliza el script y evita que se ejecuten códigos posteriores. Para que la redirección por PHP funcione, el bloque de código debe ubicarse al principio, asegurando así que el servidor no mostrará ningún tipo de contenido HTML en la página de redirección.
Redirecciones basadas en el cliente
En caso de que, como consecuencia de problemas técnicos, no sea posible redireccionar una página web desde el servidor, alternativamente se puede usar una solución basada en el cliente. Para este fin se dispone de los meta tags HTML “refresh” y del JavaScript correspondiente. La desventaja de la redirección de dominios basada en el cliente es que el servidor no emite ningún código de estado HTTP al navegador web o al crawler. Esto significa que no se hace referencia explícita a la redirección. Por otra parte, no todos los agentes de usuario soportan la redirección basada en el cliente, por lo que se corre el riesgo de que algunos de los visitantes a la página web no sean redirigidos.
Otra de las desventajas es el efecto generado en la indexación de los motores de búsqueda. Al redireccionar una web desde el cliente usando el código de estado HTTP 301, los buscadores no desindexarán automáticamente de sus resultados el dominio antiguo, lo que quiere decir que el anterior dominio empezará a competir en el ranking con el dominio de destino. Mientras que las redirecciones basadas en el cliente siempre implicarán un retraso que seguramente tendrá un impacto en la tasa de rebote de los visitantes, las redirecciones desde el servidor (que se mantienen invisibles para el usuario con la única diferencia del cambio de dirección en la casilla del navegador) resultan mucho más convenientes.
Redireccionar una página web con el meta tag HTML “refresh”
La redirección mediante la meta etiqueta HTML se realiza utilizando el atributo “http-equiv”. Así, para configurar la redirección, es necesario crear un archivo HTML simple con la etiqueta correspondiente en el encabezado de la línea de comandos. Con el fin de informar a los visitantes de la web sobre la redirección, es posible crear un mensaje de texto en el documento HTML –p. ej. “¡Nos hemos mudado! Serás redirigido automáticamente en unos segundos”. Una redirección simple de dominios a través del la meta etiqueta HTML “refresh” se verá de la siguiente forma:
La meta etiqueta “http-equiv” se encarga de solicitarle al cliente la redirección del dominio. A continuación se define el atributo del contenido. En el comando anterior, pasados 10 segundos, el usuario será redirigido a la URL de destino “www.ejemplo.es”.
Redirección con JavaScript
Utilizar JavaScript es otro método sencillo para redireccionar una URL desde el cliente. Al igual que la redirección con la etiqueta meta “refresh”, la redirección con JavaScript solo debe ser usada como último recurso, pues por motivos de seguridad este script no es soportado por todos los navegadores web. Recuerda además que las redirecciones con JavaScript también son un problema para crawlers y usuarios que tengan activados complementos NoScript en sus navegadores. Un ejemplo clásico de redirección a través de JavaScript se verá de la siguiente forma:
La importancia en esta secuencia de comandos reside principalmente en la línea 03. En el ejemplo, el objeto “window.location” se utiliza para referirse al nuevo dominio. El comando “replace” le indica al navegador que debe redirigir al usuario al dominio entre paréntesis “www.ejemplo.es”.