Redirect 301 frente a 302
El número no es un detalle técnico sin importancia: 301 significa "movido de forma permanente" y 302 significa "movido de forma temporal", y Google trata cada uno de forma distinta. Con un 301, la URL de destino pasa a ser la versión canónica y es la que Google muestra en los resultados de búsqueda. Con un 302, Google sigue mostrando la URL de origen en los resultados mientras dure la redirección, porque asume que en algún momento volverá a estar activa por sí misma.
| Situación | Código correcto | Por qué |
|---|---|---|
| Cambio de dominio | 301 | La URL antigua no volverá a usarse |
| Cambio de slug de una página | 301 | La dirección anterior queda obsoleta de forma definitiva |
| Test A/B entre dos versiones de una página | 302 | La versión original debe seguir siendo la de referencia mientras dura el test |
| Landing page de una campaña estacional | 302 | La página desaparecerá cuando acabe la campaña, la URL original sigue vigente |
El error más caro es dejar un 302 puesto en un cambio que en realidad es definitivo. Pasa mucho en migraciones de dominio: el CMS o la plataforma nueva aplica un 302 por defecto, nadie lo revisa, y durante semanas o meses Google sigue mostrando en resultados la URL del dominio antiguo en vez de consolidar el valor en el nuevo. El dominio nuevo tarda más en heredar el historial de rastreo y de clics porque, para Google, la redirección todavía puede revertirse en cualquier momento.
La regla práctica es simple: si hay alguna posibilidad de que la URL antigua vuelva a estar activa, es un 302. Si esa posibilidad no existe, es un 301.
Comprobar el código real es fácil desde la línea de comandos, sin depender de lo que diga el CMS o el plugin de turno:
curl -I https://ejemplo.com/página-antigua
HTTP/1.1 301 Moved Permanently
Location: https://ejemplo.com/página-nueva
Los cambios de protocolo o de subdominio también son 301 aunque a veces no se piensen como una "migración": pasar de http a https, o de una versión sin www a una con www (o al revés), consolida de forma permanente en una única dirección y debería llevar siempre este código, no un 302 temporal ni, peor todavía, dejar ambas versiones sin ningún tipo de redirección.
En la práctica, el error casi nunca es una decisión consciente por el 302, es la configuración por defecto del software. Muchos plugins de redirección y configuraciones de proxy inverso aplican un 302 sin preguntar, porque es la opción por defecto más prudente: una redirección marcada por error como permanente es más difícil de deshacer que una marcada por error como temporal. Quien no lo revisa después de una migración suele arrastrar el código equivocado durante meses sin darse cuenta, porque para quien visita el sitio todo sigue funcionando con normalidad. Solo el buscador percibe la diferencia.
