Guía completa de redirecciones HTTP

Contenido

¿Qué es una redirección HTTP?

Una redirección HTTP (redirección de URL) es un mecanismo que envía automáticamente a un usuario de una URL a otra. Cuando solicitas una página, el servidor puede responder con un código de estado 3xx y un encabezado Location apuntando a la nueva dirección — el navegador entonces sigue esa dirección automáticamente.

Las redirecciones se usan en muchos escenarios comunes:

Cómo funcionan las redirecciones

Solicitud del cliente:
GET /old-page HTTP/1.1
Host: example.com

Respuesta del servidor:
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page

Tipos de redirección explicados

301 Movido permanentemente

301 es el tipo de redirección más común. Le indica a los clientes y motores de búsqueda que el recurso se ha movido permanentemente a una nueva URL.

✅ Cuándo usar 301

  • Migración permanente de dominio
  • Reestructuración permanente de URLs
  • Actualización de HTTP → HTTPS
  • Consolidación de contenido duplicado

SEO: Los motores de búsqueda transfieren la autoridad de enlace (PageRank) a la nueva URL y actualizan su índice. Google generalmente completa esto en unas pocas semanas.

Comportamiento del navegador: Los navegadores pueden almacenar en caché las redirecciones 301, omitiendo la URL original en visitas futuras.

302 Encontrado (Temporal)

302 señala un movimiento temporal. La URL original sigue siendo válida e indexada.

✅ Cuándo usar 302

  • Páginas de mantenimiento
  • Pruebas A/B
  • Enrutamiento temporal basado en geolocalización
  • Divisiones temporales móvil/escritorio

303 Ver otro

303 obliga al cliente a usar GET para la solicitud redirigida, sin importar el método original. Se usa principalmente después de envíos POST para evitar el reenvío de formularios al actualizar la página (patrón Post/Redirect/Get).

307 Redirección temporal

307 es como 302 pero preserva estrictamente el método de solicitud original. Un POST sigue siendo POST después de la redirección — a diferencia de 302, que históricamente permitía cambios de método.

308 Redirección permanente

308 es la contraparte de 301 que preserva el método. Para solicitudes GET, 301 y 308 se comportan de forma idéntica. Usa 308 cuando necesites una redirección permanente que no debe cambiar el método de solicitud.

Redirecciones del lado del cliente

Meta refresh

<meta http-equiv="refresh" content="0; url=https://example.com/new-page">

Evítalo para SEO — los motores de búsqueda pueden no manejarlo correctamente.

Redirección con JavaScript

window.location.href = "https://example.com/new-page";

No es ideal para SEO ya que los rastreadores pueden no ejecutar JavaScript.

⚠️ Limitaciones de las redirecciones del lado del cliente

Las redirecciones del lado del cliente no llevan códigos de estado HTTP, por lo que los motores de búsqueda no pueden determinar si el movimiento es permanente o temporal. Siempre prefiere las redirecciones del lado del servidor.

Cuándo usar cada tipo

Impacto en SEO

Transferencia de autoridad de enlace

Una redirección 301 transfiere casi toda la autoridad de enlace a la nueva URL. Google ha declarado que los 301 transfieren cerca del 100% del PageRank. Una 302 no transfiere autoridad — la URL original conserva sus señales de posicionamiento.

Tiempo de actualización del índice

Después de un 301, Google generalmente:

Impacto de la cadena de redirección

Cada salto adicional en una cadena (A → B → C) agrega latencia y puede diluir la autoridad. Google sigue hasta ~10 saltos, pero cadenas de más de 3 son una señal de alerta. Siempre redirige directamente desde la URL original al destino final.

🎯 Mejor práctica

Usa redirecciones directas (A → C). Audita tus cadenas regularmente y simplifícalas siempre que sea posible.

Problemas comunes y soluciones

1. Bucles de redirección

Síntoma: El navegador muestra "demasiadas redirecciones".

Causas comunes: Conflicto de configuración HTTPS entre CDN y origen, siteurl incorrecto en WordPress, reglas conflictivas en Nginx/Apache, mala configuración de .htaccess.

# Diagnosticar con curl
curl -I -L https://example.com

O usa 301check.com para visualizar la cadena completa.

2. Pérdida de query string

Asegúrate de que tus reglas de redirección preserven los parámetros de consulta. En Nginx, usa $request_uri o $is_args$args.

3. Redirecciones 301 en caché

Los navegadores almacenan en caché las redirecciones 301. Si cambias una redirección, los usuarios pueden seguir viendo el destino anterior. Prueba en una ventana privada o borra la caché.

4. Redirección móvil incorrecta

Si los usuarios móviles son redirigidos a la página de inicio en lugar de la página móvil equivalente, corrige el mapeo de URLs o cambia a un diseño responsivo.

Mejores prácticas