¿En qué se diferencian las redirecciones 301 y 302?
Qué significa cada código de redirección (301, 302, 307 y 308), cuándo usar uno u otro, por qué las cadenas y los bucles cuestan visitas y posiciones, y por qué mandar todo a la portada no es una solución.
Por Javier Tenjo, Desarrollador full stack
En esta página
Cada vez que cambias la dirección de una página (porque reorganizas el menú, cambias de plataforma o corriges un nombre), la URL antigua sigue existiendo en algún sitio: en Google, en enlaces de otras webs, en los marcadores de tus clientes, en un PDF que circula por correo. Una redirección es la instrucción que le dice al navegador y al buscador «esto ahora vive allí».
Parece un detalle técnico menor, y lo es hasta que se hace mal. Entonces se traduce en tráfico que desaparece después de un rediseño sin que nadie sepa explicar por qué.
¿Cómo funciona una redirección?
Cuando alguien pide una URL, el servidor responde con un código de estado HTTP, un número de tres cifras que resume qué ha pasado. Los que empiezan por 3 son redirecciones: el servidor no entrega la página, sino una cabecera Location con la dirección nueva, y el navegador la pide automáticamente.
El visitante casi nunca lo nota. El buscador sí: lee el código y, según cuál sea, decide qué URL guardar en su índice.
¿Qué significa cada código?
Hay cuatro códigos de redirección que importan para una web:
| Código | Nombre | Significado | Método de la petición |
|---|---|---|---|
| 301 | Moved Permanently | Se ha mudado para siempre | Puede cambiar a GET |
| 302 | Found | Está en otro sitio de momento | Puede cambiar a GET |
| 307 | Temporary Redirect | Está en otro sitio de momento | Se conserva |
| 308 | Permanent Redirect | Se ha mudado para siempre | Se conserva |
La columna del método solo importa en casos concretos, como un formulario que envía datos con POST: con 301 o 302 algunos navegadores repiten la petición como GET y los datos se pierden por el camino, y con 307 o 308 no. Para páginas normales, que se piden con GET, 301 y 308 son equivalentes, y también lo son 302 y 307.
La diferencia que de verdad cuenta es la otra: permanente o temporal.
¿Qué cambia para Google entre permanente y temporal?
Con una redirección permanente (301 o 308), le dices a Google que la URL nueva sustituye a la antigua. Google traslada a la nueva la señal acumulada (enlaces, historial, relevancia) y, con el tiempo, deja de mostrar la antigua en los resultados.
Con una temporal (302 o 307), le dices que la antigua sigue siendo la buena y que el desvío es pasajero. Google tiende a mantener la URL original en el índice, porque espera que vuelva.
De ahí sale la regla práctica:
- Usa 301 (o 308) cuando el cambio es definitivo: cambio de dominio, de estructura de URLs, de
httpahttps, fusión de dos páginas en una, producto retirado con un sustituto claro. - Usa 302 (o 307) solo cuando de verdad vas a deshacerlo: una página en mantenimiento, una promoción de temporada que ocupa la portada unas semanas, una prueba A/B.
El error más común es el inverso: un 302 puesto «de momento» en una migración que nunca se revisa. Google puede acabar tratando como permanente un 302 que dura mucho, pero tarda bastante más, y mientras tanto la señal no se consolida donde debería.
Hay un matiz en la dirección contraria: los navegadores guardan en caché los 301 con mucha insistencia. Si te equivocas de destino en una redirección permanente, quien ya la siguió puede seguir yendo al sitio equivocado aunque corrijas la regla. Merece la pena probarlas antes de publicarlas.
¿Qué son las cadenas y los bucles?
Una cadena es una redirección que lleva a otra redirección. Pasa sobre todo cuando se acumulan migraciones: en una se movió /servicios.html a /servicios, en otra /servicios a /servicios/, y en la última /servicios/ a /que-hacemos/. Quien llega con la dirección más antigua da tres saltos.
Cada salto es una ida y vuelta más al servidor, que el visitante paga en tiempo de carga, sobre todo en móvil. Google sigue hasta 10 saltos y después abandona; por debajo de eso los sigue, pero tarda más en procesarlos y aumenta la probabilidad de que algo se rompa por el camino.
Un bucle es una cadena que vuelve sobre sí misma: A lleva a B y B lleva a A. El navegador lo corta con un error («demasiadas redirecciones») y la página es inaccesible para todo el mundo. Suele aparecer cuando dos reglas se pisan, por ejemplo una del servidor que añade la barra final y otra del CMS que la quita.
La solución en los dos casos es la misma: cada URL antigua debe apuntar directamente a su destino final, en un solo salto. Cuando añades una regla nueva, revisa si alguna regla anterior apuntaba a la URL que ahora redirige y actualízala.
También cuentan como saltos los que nadie piensa como redirecciones: de http a https, de www a sin www y de la URL sin barra final a la URL con barra. Lo ideal es resolverlos en una sola regla que lleve directamente a la versión canónica.
¿Por qué no redirigir todo a la portada?
Es la tentación de cualquier migración con prisa: cientos de URLs antiguas sin equivalente evidente, y una regla que las manda todas a la página de inicio. Parece que así nadie ve un error.
Google lo interpreta de otra forma. Si alguien buscaba una página sobre un producto concreto y aterriza en la portada, la redirección no responde a lo que pedía. Google la trata como un soft 404, un error disfrazado: no traslada la señal y puede seguir mostrando la URL antigua. Para el visitante es aún peor, porque llega a un sitio que no explica dónde está lo que buscaba.
Lo correcto es redirigir cada página a su equivalente más parecida: un producto retirado a su sustituto o a su categoría, un artículo antiguo al que trata el mismo tema. Y si de verdad no hay nada equivalente, es más honesto responder 410 (eliminada para siempre) o 404 con una página de error útil.
Decidir qué pasa con cada URL es el centro de cualquier migración que conserve el posicionamiento.
¿Cuánto tiempo hay que mantener una redirección?
Más de lo que parece. Google recomienda conservarlas al menos un año, que es lo que tarda en consolidar la señal en la URL nueva. Pero la URL antigua sigue viva en enlaces de otras webs, en correos antiguos y en documentos impresos, así que en la práctica lo prudente es no quitarlas nunca mientras no estorben.
Una regla ocupa una línea; perder los enlaces que apuntaban a esa dirección cuesta bastante más.
También conviene que el sitemap solo liste las URLs finales: una dirección que redirige no debería aparecer en él.
¿Cómo comprobar las tuyas?
El comprobador de redirecciones sigue la cadena completa de una o varias URLs (hasta veinte por tanda) y enseña cada salto con su código, hasta la página final. Señala lo que este artículo describe: saltos temporales donde debería haber permanentes, cadenas de más de un salto, bucles, saltos sueltos de www o de barra final y URLs profundas que acaban en la portada. También muestra las cabeceras de la respuesta final, como la caché o un noindex enviado por cabecera.
Es especialmente útil justo después de una migración: pega una muestra de las URLs antiguas más visitadas y comprueba que cada una llega a su sitio en un salto. Si todavía no tienes esa lista, el buscador de URLs antiguas de un dominio te ayuda a reconstruirla.
Una buena redirección es invisible: un solo salto, permanente si el cambio lo es, y hacia la página que la persona esperaba encontrar. Todo lo que se aparte de eso acaba costando visitas, aunque tarde unas semanas en notarse.