Una redirección 301 indica que una página se ha trasladado para siempre; una 302, que el traslado es temporal y que la dirección antigua volverá. Los buscadores actúan en consecuencia: tras una 301 indexan la nueva dirección en lugar de la antigua, y tras una 302 suelen conservar la antigua. Usa una 301 (o una 308) para todo lo permanente, como una página renombrada, un dominio nuevo o el paso a HTTPS, y una 302 (o una 307) solo cuando la dirección original vaya a volver de verdad. Deja cada redirección en un único salto y compruébala con una herramienta que muestre cada paso.
Los códigos de estado de redirección
Una redirección es una respuesta del rango 3xx con una cabecera Location que indica la nueva dirección. En la práctica importan cinco códigos:
CódigoSignificadoMantiene el métodoÚsalo para301 Moved PermanentlyTrasladada para siempreNo está garantizado: los navegadores convierten un POST en un GETPáginas renombradas, dominios nuevos, de HTTP a HTTPS302 FoundTemporalmente en otro sitioNo está garantizado: los navegadores convierten un POST en un GETTraslados de corta duración, enviar a los visitantes a una página de inicio de sesión303 See OtherObtén el resultado en otra direcciónNo, siempre es un GETTras enviar un formulario, para que al recargar no se envíe dos veces307 Temporary RedirectTemporalmente en otro sitioSí, método y cuerpoTraslados temporales de endpoints de API y formularios308 Permanent RedirectTrasladada para siempreSí, método y cuerpoTraslados permanentes de endpoints de API y formularios
Para las páginas normales, que los navegadores solicitan con GET, 301 y 308 se comportan igual, y lo mismo ocurre con 302 y 307. La diferencia aparece cuando un cliente envía un POST: tras una 301 o una 302, la mayoría de los clientes lo repiten como un GET sin el cuerpo, mientras que 307 y 308 les obligan a enviar de nuevo la misma petición. Por eso las API que trasladan un endpoint deberían usar 308 o 307. La lista completa de códigos está en la referencia de códigos de estado HTTP.
Cómo afectan las redirecciones al SEO
La documentación de Google sobre redirecciones considera permanentes las 301 y 308, y temporales las 302, 303 y 307. Una redirección permanente es una señal fuerte de que el destino debe mostrarse en los resultados de búsqueda en lugar de la dirección antigua. Una temporal es una señal débil, así que la dirección antigua suele seguir indexada.
De ahí salen tres errores habituales:
Una 302 para un traslado permanente. Muchos frameworks y plugins redirigen con 302 por defecto. Tras migrar un sitio, comprueba que las redirecciones respondan de verdad con 301 o 308.
Redirigirlo todo a la página de inicio. Cuando una página antigua no tiene equivalente, Google puede tratar una redirección a la página de inicio como un soft 404. Envía cada página antigua a la más parecida, o deja que responda 404 o 410.
Enlaces antiguos que apuntan a redirecciones. Una redirección es una red de seguridad, no un destino. Actualiza los enlaces internos, las etiquetas canonical y el sitemap con la dirección final, para que ni los visitantes ni los rastreadores paguen el salto de más.
Las redirecciones del lado del servidor son la señal más clara. Las etiquetas meta refresh y las redirecciones con JavaScript funcionan para los visitantes, pero los buscadores solo las ven después de cargar la página, y otros clientes puede que ni las vean.
Cuál usar
Una página se ha renombrado o se ha fusionado con otra: 301.
El sitio se ha trasladado a un dominio nuevo, a HTTPS o entre www y el dominio sin www: 301 desde cada variante antigua directamente a la dirección final.
Una página está temporalmente en otro sitio, por una campaña o mientras se rehace: 302.
El visitante debe iniciar sesión antes: 302 a la página de inicio de sesión y luego de vuelta.
Se ha enviado un formulario: 303 a la página de resultado.
Un endpoint de API se ha trasladado: 308 si es para siempre, 307 si es de momento, para que los clientes mantengan el método y el cuerpo.
El sitio está caído por mantenimiento: ninguna redirección. Responde 503 Service Unavailable en la dirección original, para que los buscadores vuelvan más tarde en lugar de indexar una página de mantenimiento.
Los navegadores recuerdan las redirecciones permanentes
Los navegadores guardan en caché las respuestas 301 y 308, a menudo durante mucho tiempo, y las siguen sin volver a preguntar al servidor. Por eso, una redirección permanente errónea sigue enviando a los visitantes recurrentes al sitio equivocado incluso después de corregir el servidor. Cuando configures una regla nueva, pruébala primero como 302 y cámbiala a 301 cuando esté bien. Si ya se ha publicado una 301 errónea, una cabecera Cache-Control: no-store en las redirecciones futuras ayuda a los visitantes nuevos, pero las copias que ya tienen los navegadores caducan a su propio ritmo.
Cadenas y bucles de redirecciones
Una cadena es una redirección a una dirección que vuelve a redirigir: de http://example.com a https://example.com, a https://www.example.com y a https://www.example.com/en/. Cada salto es otro viaje de ida y vuelta antes de que la página empiece a cargarse, y Google sigue como máximo 10 saltos. Las cadenas crecen con los años de migraciones, cada una añadiendo su regla encima de la anterior. Corrígelas enviando cada variante antigua directamente a la dirección final en un solo salto.
Un bucle es una cadena que nunca termina: dos reglas mandan a los visitantes de un lado a otro hasta que el navegador se rinde con “demasiadas redirecciones”. Las causas habituales:
HTTP y HTTPS. Una CDN se comunica con tu servidor por HTTP, mientras que el servidor redirige cada petición HTTP a HTTPS. Detrás de Cloudflare, es el ajuste SSL Flexible; Full (strict) lo soluciona.
www y el dominio sin www. El servidor web añade www y la aplicación lo quita, o al revés. En WordPress, comprueba que la Dirección de WordPress y la Dirección del sitio coincidan con la regla del servidor.
Barras finales y reglas de idioma. Una regla añade una barra o un prefijo de idioma y otra lo quita.
Cómo comprobar una redirección
Desde un terminal, curl muestra cada salto con su código de estado y su cabecera Location:
curl -sIL http://example.com/old-page | grep -iE «^(HTTP|location)»
HTTP/1.1 301 Moved Permanently
Location: https://example.com/old-page
HTTP/2 301
location: https://example.com/new-page
HTTP/2 200
Dos saltos: la segunda regla debería haber sido la primera. En un navegador, abre las herramientas para desarrolladores, marca Preserve log en la pestaña Network y carga la dirección antigua; cada redirección aparece en su propia fila. Recuerda que el navegador puede responder a una 301 desde su caché, así que una ventana privada da una imagen más limpia.
O usa nuestro comprobador de redirecciones gratuito: introduce una URL para ver cada salto con su código de estado, dónde termina la cadena y si entra en bucle, es demasiado larga o usa una redirección temporal donde probablemente querías una permanente. Sigue hasta 5 saltos, comprobados en directo desde Estocolmo.
Cómo configurar una 301
La mayoría de los hostings y CDN tienen un ajuste de redirecciones en su panel. En la configuración del servidor:
# nginx: one page
location = /old-page { return 301 /new-page; }
# nginx: a whole domain, keeping the path
server {
server_name old-example.com www.old-example.com;
return 301 https://example.com$request_uri;
}
# Apache (.htaccess): one page
Redirect 301 /old-page /new-page
Después, comprueba la dirección antigua, sus variantes con HTTP y con www, y una dirección con query string, y asegúrate de que cada una llega a la página final en un solo salto.
Monitorizar redirecciones con Uptimecheck
Un monitor HTTP(S) de la monitorización de uptime de Uptimecheck sigue hasta 10 redirecciones por defecto y evalúa la página final, que cuenta como activa cuando responde con un estado de 200 a 399. Un bucle, o una cadena más larga, se notifica como caída con “Too many redirects”, y la incidencia indica cuándo la cadena rebota entre HTTP y HTTPS o entre www y el dominio sin www. Las comprobaciones se ejecutan hasta cada minuto desde Estocolmo, Londres y Nueva York, y una segunda comprobación confirma el fallo antes de avisarte.
Para vigilar la propia redirección, por ejemplo tras un cambio de dominio, desactiva Follow redirects para que el monitor evalúe el código de estado de la redirección, pon Expected status codes en 301 y añade una comprobación de cabecera para que Location sea igual a la nueva dirección. Si alguien cambia después la redirección a una 302 o la apunta a otro sitio, te enterarás. Consulta cómo añadir tu primer monitor y la guía de códigos de estado HTTP en la monitorización.
Entérate cuando un traslado se rompa. Prueba Uptimecheck gratis durante 14 días, sin tarjeta de crédito.