HTML, PHP o htaccess: Redirigir / actualización con pausa

Redirigir o actualizar son casi lo mismo, la diferencia es que para actualizar la página se hace una redirección a la misma página (se carga la misma página una vez mas). Hay algunos detalles técnicos que se aplican a las redirecciones, no todas las redirecciones son iguales. Algunas son permanentes, algunas son provisionales, algunas envían a una página con el mismo contenido, otras no. Esto es útil de saber cuándo estas pensando en SEO (Search Engine Optimization) y la necesidad de explicar a los motores de búsqueda por que este desvio de página está sucediendo. Así que antes de hacer las redirecciones vamos hablar un poco acerca de los códigos de estado HTML.

Tipos de redirección:

Los códigos de estado HTML que comienzan con 3 informan sobre una redirección. Los más importantes son el 301, la página se trasladó permanentemente a otra dirección, lo que significa que los motores de búsqueda actualizarán sus enlaces con la nueva URL y el 302, la página se trasladó temporalmente, la nueva página se encontró y no hay ninguna actualización necesaria (lo se, los ordenadores dicen mucho con pocos números). En una redirección 301 Google también transferirá el PageRank de la primera página para la página de la nueva dirección, me imagino que otros motores de búsqueda hacen algo similar. Esto es bueno cuando cambias la dirección de tu sitio por ejemplo. Ahora vamos hacer nuestras redirecciones.

Diferentes técnicas para redirigir:

Hay muchas técnicas para redirigir, veremos aquí tres diferentes: la técnica de la vieja escuela con una etiqueta meta HTML, la técnica del servidor a través de un script PHP y la técnica del Webmaster con el archivo .htaccess o httpd.conf. Cada método tiene sus ventajas, vamos echar un vistazo en ellos.

Redirigir con una etiqueta meta HTML (legado)


Ponga esta etiqueta en la cabecera de tu página HTML, entre <head> y </head>.

<meta http-equiv="Refresh" content="5;url=http://www.ejemplo.com" />
 

El número del "content" es el número de segundos antes de que la página se redirige hacia la dirección "url". Si "content" es 0, Google considera que es una redirección de tipo 301, de lo contrario será 302. Si el URL apunta a la misma página, entonces se actualiza el contenido de la página actual. Esta es una buena manera de actualizar el contenido, ya que tienes el control sobre el tiempo durante el cual la página permanece.

Redirigir con PHP

Ponga este script en el comienzo de la página, que bien podría ser la única cosa en la página porque la redirección será procesada directamente por el servidor y no se mostrará al usuario.



<?php
header('HTTP/1.1 301 Moved Permanently'); //opcional
header('Location: http://www.ejemplo.com');
exit();
?>

Si no pones la línea opcional la redirección será 302. PHP no ofrece una manera de tener un intervalo antes de redirigir (ya que la redirección sucede en el servidor) entonces nunca debes usar esta opción para actualizar la página. Si el código apunta a la misma página un bucle infinito se creará.

 

Redirigir con htaccess o httpd.conf
 

Coloque este código en el archivo .htaccess y ponga el archivo en la carpeta raíz de tu sitio. Puedes optar por poner el código de estado HTML o omitirlo para una redirección 302.


Redirect 301 /pagina-vieja.html http://www.ejemplo.com/pagina-nueva.php

También puedes redirigir carpetas enteras con una sola línea.

Redirect 301 /carpeta-vieja/ http://www.ejemplo.com/carpeta-nueva/

O sitios enteros.

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

 

Si necesitas más control sobre tus redirecciones, utilice esto:


Options +FollowSymLinks
RewriteEngine on
 
RewriteCond %{HTTP_HOST} ^www.sitio-viejo.com$ [NC]
RewriteRule ^.*$ http://www.sitio-nuevo.net/$1 [R=301,L]

El "RewriteCond" es la condición para hacer un cambio de URL. El [NC] significa "No case", no hacemos diferencia entre mayúsculas o minúsculas. Luego antes del URL puedes escoger cual URL debe ser redirigido:

"^" = "redirigimos si es este URL"

"!^" = redirigimos si no es este URL"

El "RewriteRule" explica como debemos hacer la redirección. El final "$1" debe ser utilizado se tu sitio nuevo es exactamente igual al sitio antiguo. En este caso el URL www. site-antiguo. com/pagina1.html se transforma en www. site-nuevo. com/pagina1.html. Si quieres que los visitantes sean redirigidos a la página inicial cualquier que sea la página que piden del sitio antiguo entonces simplemente borres el "$1".

Al final ponemos el [R=301, L] que significa que se trata de una redirección 301 y que este es el ultimo comando.

Este es el método habitual para hacer redirecciones de http:// www.url.tld para http:// url.tld (o el incontrario). Cambie el código para que diga "si el URL no es url.tld entonces redireccione a url.tld$1". Si has entendido las explicaciones sabes que es fácil.

Si tienes un servidor dedicado es mejor colocar el código anterior directamente en el archivo httpd.conf y omitir la primera línea “Options +FollowSymLinks”.

Bueno, eso es! Probablemente ya sabes la técnica y el código de estado que necesitas, pero sólo para recapitular:


301 = redirección permanente que actualiza los enlaces de motores de búsqueda y la trasferencia de PageRank.
302 = redirección indefinida y temporal. Se considera que la página fue encontrada.

HTTP meta tag = te permite establecer un tiempo de retraso en la redirección.
PHP script = redirección hecha en el servidor.
Htaccess/ httpd = redirección de carpetas y sitios enteros posible.


Gracias por leer este tutorial!


Comentarios

Muy detallado el articulo, sabes como puede afectar el redireccionamiento el SEO? hasta que punto se puede considerar contenido duplicado y acabar penalizados?, por ejemplo si se tienen tres dominios que con un redireccionamiento muestren la misma pagina

Ola Alina,

Si tienes tres paginas que redireccionam a un mismo contenido no hay contenido duplicado, solo las redirecciones son iguales. En este caso no hay ningún tipo de penalización. Se considera contenido duplicado si dos paginas (con URL diferentes) tienen un mismo contenido (o muy similar). En este caso Google da prioridad a la primera pagina que descubre y deja sus copias olvidadas (no se si los otros motores de búsqueda hacen lo mismo). No se trata realmente de una penalización, es simplemente una manera de dar prioridad al contenido original.

Saludos!

Añadir nuevo comentario