¿Cuál es la diferencia entre redireccionamientos 301 y 302?

Contenidos

Ilustración de redireccionamiento 301

Si ha movido su contenido, es mejor redirigir los links rotos viejos a la ubicación de trabajo. Hay dos tipos de redireccionamientos: 302, que se utiliza para realizar pruebas, y 301, que es permanente y es el mejor para SEO.

302 es temporal, 301 es permanente

Ambos tipos de redireccionamiento logran el mismo efecto. Cuando un usuario intenta tener acceso a recursos redirigidos (a modo de ejemplo, la versión HTTP de un link HTTPS), el servidor web envía un código de respuesta 301 o 302 al navegador del usuario, junto con un link al destino deseado. El navegador del usuario inmediatamente hará otra solicitud a la página correcta, redirigiéndolos de manera efectiva.

La diferencia radica en lo que sucede la segunda vez que un usuario visita esa página. Si está sirviendo un redireccionamiento 302, el navegador lo verá como temporal. En el ejemplo de HTTPS, el navegador continuará realizando solicitudes a la versión HTTP insegura de la página y el servidor web continuará enviando códigos de respuesta 302 cada vez.

Esto es malo para el rendimiento de su sitio, dado que un usuario tendrá que realizar más viajes de ida y vuelta al servidor web para llegar al destino previsto. Para solucionar esto, puede usar un redireccionamiento 301. Cuando el navegador intente realizar una segunda solicitud, comprobará su caché y recordará que se supone que la URL debe ser redirigida y redirigir automáticamente sin molestar al servidor. Se supone que un redireccionamiento 301 se envía una vez y se redirecciona de forma definitiva.

Esto significa que una redirección 301 es muy permanente. Chrome recordará uno hasta que el usuario borre el caché, que es una operación manual. Si realizó accidentalmente una redirección 301 incorrecta, podría causar problemas en el futuro, por lo que siempre querrá probar los cambios con una redirección 302 primero para verificar que funciona y posteriormente poner en práctica una redirección 301.

¿Cómo afecta esto al SEO?

La mayoría de las veces, los motores de búsqueda como Google verán un redireccionamiento 301 y actualizarán sus clasificaciones de búsqueda en consecuencia. Si está cambiando los nombres de dominio, querrá redirigir 301 los links de su antiguo dominio a las páginas del nuevo dominio. Esto hará que su nuevo dominio reemplace al anterior en las clasificaciones de búsqueda, que es (probablemente) lo que desea.

En última instancia, tener que redirigir su sitio probablemente no afectará mucho a su SEO. Entre el 90 y el 99% de la clasificación de sus sitios se transferirá cuando cambie su nombre de dominio completo, por lo que redirigir algunas páginas no le hará ningún daño. Tenga en cuenta que esto solo se aplica a los redireccionamientos 301; los redireccionamientos 302 son temporales y no tendrán ningún efecto inmediato en su clasificación, pero pueden arrastrarlo hacia abajo a largo plazo si no cambia a 301.

Cómo configurar redirecciones en Nginx

En Nginx, puede poner en práctica redireccionamientos usando el rewrite directiva. Esto hará coincidir una cadena con una expresión regular y redirigirá al usuario a una URL modificada. Si simplemente desea redirigir una página antigua a una página nueva, puede elegir el nombre de la página y reemplazarlo con una reescritura:

server {
  server_name www.example.com;
  rewrite ^/old_page.html$ new_page.html redirect;
}

Posteriormente, si desea convertirlo en una redirección permanente, reemplace «redirección» por «permanente»:

rewrite ^/old_page.html$ new_page.html permanent;

Puede usar la misma sintaxis para hacer coincidir varias páginas. A modo de ejemplo, si desea adjudicar un dominio completo a un nuevo dominio, puede utilizar:

server {
  server_name olddomain.com;
  rewrite ^/(.*)$ https://newdomain.com/$1 permanent;
}

Para redirigir HTTP a HTTPS, en su lugar, querrá utilizar un bloque de escucha en el puerto 80 que redirigirá todo el tráfico sirviendo manualmente un 301:

server {
  listen 80;

  server_name example.com;
  return 301 https://example.com$request_uri;
}

Cómo configurar redirecciones en Apache

Para Apache, la configuración además es simple. Para redireccionamientos básicos, puede utilizar el Redirect directiva, que toma dos argumentos: la página antigua y la página nueva.

Redirect /oldpage https://www.example.com/newpage

Este valor predeterminado es un redireccionamiento 302, pero puede hacerlo permanente usando «Redirect 301“.

La directiva Redirect toma parámetros manuales, pero puede utilizar RedirectMatch para hacer coincidir las URL con expresiones regulares. A modo de ejemplo, para reasignar una carpeta como /img a un subdominio, puede utilizar:

RedirectMatch ^/img/(.*)$ http://media.example.com/$1

Para redirigir HTTP a HTTPS, querrá utilizar:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

Este valor predeterminado es 302, pero puede hacerlo permanente configurando el código de retorno al final:

RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]
Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.