La diferencia entre las redirecciones 301 y 302

Cubre el traslado permanente frente al temporal, además de 308 y 307, que preservan el método.

301 Moved Permanently significa que el recurso se ha trasladado de forma permanente a una nueva URL. Los motores de búsqueda toman esta señal y transfieren la posición y el valor de los enlaces de la URL antigua a la nueva. Úsalo para traslados que no vas a deshacer, como una migración de dominio o el cambio de HTTP a HTTPS.

302 Found es un traslado temporal. La URL original sigue siendo válida, por lo que los motores de búsqueda no trasladan la posición. Es adecuado para situaciones que pronto volverán a la normalidad, como un desvío temporal a una página de mantenimiento o una redirección tras iniciar sesión.

Un aspecto a tener en cuenta es la preservación del método. Históricamente, los navegadores a veces cambiaban POST por GET con 301 y 302. Si necesitas conservar el método, usa 308 para un traslado permanente y 307 para uno temporal, y usa 303 See Other cuando envíes al usuario a una página de resultado tras un POST.