HTTP 3xx: cuándo usar 301, 302, 307 o 308
Los códigos HTTP 3xx redirecciones son respuestas del servidor que le indican al cliente que el recurso solicitado se encuentra en otra ubicación. Hay seis variantes principales: 301 (permanente), 302 (temporal), 303 (cambio de método a GET), 304 (no modificado), 307 (temporal con preservación de método) y 308 (permanente con preservación de método). Elegir mal entre ellos puede costarte posiciones en Google o romper formularios en producción.
En 30 segundos
- 301 transfiere entre el 90-99% de la autoridad SEO a la URL destino; 302 no transfiere nada (o casi nada, dependiendo cuánto tiempo lo dejés activo).
- 307 y 308 son los únicos códigos que garantizan que un POST siga siendo POST después de la redirección, crítico para APIs y formularios.
- 304 no es una redirección: es una respuesta condicional que le dice al cliente que use su caché. Google la trata diferente a los otros 3xx.
- Las cadenas de redirecciones (A→B→C→D) le cuestan crawl budget y le diluyen autoridad; Google rastrea hasta 10 hops antes de cortar.
- Mantené los 301 activos mínimo un año antes de removerlos; sacarlos antes puede deshacer meses de transferencia de autoridad.
Qué son los códigos HTTP 3xx y para qué existen
Un código HTTP 3xx es una respuesta del servidor que le indica al cliente (un navegador, un bot de Google, un script de Python) que debe tomar una acción adicional para completar el pedido. En la práctica, esa acción casi siempre es: “buscá este recurso en otra URL”.
El protocolo HTTP define varios rangos de respuesta. Los 2xx significan éxito. Los 4xx, error del cliente. Los 5xx, error del servidor. Y los 3xx, que el contenido se movió o que hay algo que el cliente tiene que resolver antes de continuar. No todos redirigen en el sentido estricto — el 304, por ejemplo, no te manda a ningún lado.
Lo que importa entender es que cada código 3xx tiene semántica distinta, y esa semántica importa tanto para los navegadores como para los crawlers de los buscadores. Usar el código equivocado no es un error tipográfico: puede significar que Google no transfiera autoridad a tu nueva URL, que un formulario POST pierda sus datos, o que un redirect loop mande a todos al infinito.
Los 6 códigos 3xx más importantes: 301, 302, 303, 304, 307 y 308
Según la referencia canónica publicada en mayo de 2026, estos son los seis códigos que vas a encontrar en la práctica:
| Código | Nombre | Permanente | Preserva método HTTP | Señal SEO |
|---|---|---|---|---|
| 301 | Moved Permanently | Sí | No (puede cambiar a GET) | Fuerte (transfiere autoridad) |
| 302 | Found (temporal) | No | No (puede cambiar a GET) | Débil (retiene URL original) |
| 303 | See Other | No | No (fuerza GET explícitamente) | Ninguna |
| 304 | Not Modified | No aplica | No aplica (no es redirect) | Neutral (respuesta de caché) |
| 307 | Temporary Redirect | No | Sí (garantizado) | Débil (temporal) |
| 308 | Permanent Redirect | Sí | Sí (garantizado) | Fuerte (transfiere autoridad) |

El 304 merece una aclaración especial: no te redirige a ningún lado. Es una respuesta a un GET condicional (con cabecera If-None-Match o If-Modified-Since) que le dice al cliente “el recurso no cambió, usá lo que tenés en caché”. Google lo trata diferente al resto de los 3xx, y si aparece mucho en tus logs puede indicar que el crawler está usando su caché en vez de rastrear contenido fresco.
301 vs 302: el impacto real en SEO
La diferencia más importante para SEO es esta: el 301 le dice a Google que el cambio es permanente y que transfiera la autoridad (link juice) a la nueva URL. El 302 le dice que es temporal, así que Google retiene la URL original como canónica y no transfiere autoridad. En nuestra guía de hreflang y redirecciones profundizamos sobre esto.
¿Cuánta autoridad transfiere un 301? Las estimaciones de la industria hablan de entre 90% y 99% del PageRank. No es el 100% que tenía la URL original, pero es lo máximo que podés lograr. Con un 302, esa transferencia no ocurre (o ocurre de forma incompleta y no garantizada).
Eso sí: Google puede llegar a tratar un 302 como permanente si lo mantienen activo más de 12 meses. No es comportamiento documentado, es algo que se observa en la práctica. Pero no es en lo que querés confiar para una migración importante.
Una migración de dominio completa tarda entre 6 y 12 meses en propagarse en los rankings. Primeras seis semanas podés ver caídas de hasta 30-40% en posiciones — eso es normal y esperado, no una señal de que algo salió mal. Lo que sí es señal de problema es si después de 6 meses las posiciones no se recuperaron.
307 y 308: cuando el método HTTP importa
Acá viene la parte que la mayoría ignora hasta que se les rompe algo en producción.
Ponele que tenés un endpoint de API que recibe requests POST con un payload JSON. El cliente hace POST a /api/v1/submit y vos decidís mover ese endpoint a /api/v2/submit. Si usás un 301 o 302, el cliente puede convertir el POST a un GET cuando sigue la redirección. Perdiste el payload. El request llegó vacío. Todo explota.
El 307 (temporal) y el 308 (permanente) garantizan por especificación que el método HTTP se preserva. Si llegó como POST, sigue como POST a la nueva URL. Si llegó como PUT, sigue como PUT. Para más detalles sobre configuración de pipelines, consultá nuestro artículo sobre CI/CD.
La diferencia entre 307 y 308 es la misma que entre 302 y 301: temporalidad vs. permanencia. Si estás migrando una API de versión y el cambio es definitivo, usá 308. Si estás haciendo una redirección temporal por mantenimiento o A/B testing, usá 307.
Para sitios web HTML donde los formularios siempre son POST y el resultado es mostrar una página, el 303 tiene sentido: fuerza la conversión a GET explícitamente, que es el comportamiento que querés después de procesar un formulario (el patrón POST/Redirect/GET).
Cómo configurar redirecciones en Nginx
El framework de referencia publicado en mayo de 2026 está construido específicamente para Nginx 1.26+ en Debian. Estos ejemplos aplican a esa configuración.
Redirección 301 (permanente, dominio completo)
El caso más común: migrar de subdominio de agencia a dominio propio. El mismo documento describe 14 clientes migrados bajo este patrón (por ejemplo, handledtax.thatwebhostingguy.com a handledtax.com):
server {
listen 80;
server_name handledtax.thatwebhostingguy.com;
return 301 https://handledtax.com$request_uri;
}Redirección 307 (temporal, preserva método)
location /api/v1/submit {
return 307 /api/v2/submit;
}Redirección 308 (permanente, preserva método)
location /api/v1/ {
return 308 /api/v2/;
}Después de cualquier cambio en la configuración de Nginx, recargá sin downtime: nginx -t && systemctl reload nginx. El nginx -t valida la sintaxis antes de aplicar — omitirlo y hacer reload directo es el tipo de cosa que te deja el servidor caído un domingo a las 11pm.
Si tu infraestructura está en la nube y necesitás un hosting con soporte real para configuraciones Nginx en servidores VPS, donweb.com tiene planes con acceso root donde podés aplicar exactamente estas configuraciones.
Errores que destruyen tu ranking después de una migración
La mayoría de las migraciones que salen mal no salen mal por usar el código equivocado. Salen mal por cometer uno de estos errores:
Cadenas de redirección innecesarias
A→B→C→D en lugar de A→D directo. Cada hop consume crawl budget, agrega latencia y diluye la transferencia de autoridad. Las cadenas de más de dos hops empiezan a ser un problema SEO real. Google rastrea hasta 10 hops antes de cortar, pero eso no significa que debas usarlos todos.
Sacar los 301 demasiado rápido
La regla es mantenerlos activos mínimo un año. Sacarlos a los tres meses porque “ya migré” puede hacer que Google vuelva a tratar la URL vieja como canónica. La transferencia de autoridad no es instantánea, es un proceso que tarda meses en consolidarse.
Usar 302 para cambios permanentes
Es el error más común. “Por las dudas lo pongo como temporal mientras pruebo” — y después se olvidan de cambiarlo. Meses después el SEO de la nueva URL no mejora y nadie entiende por qué. La URL vieja retiene la autoridad porque el 302 le dice a Google que el cambio no es definitivo.
Open redirects sin validación
Un redirect que acepta la URL destino como parámetro sin validarla es una vulnerabilidad de seguridad. /redirect?url=https://evil.com puede usarse para phishing porque el dominio origen es legítimo. Si usás parámetros para destinos de redirección, validá contra una lista blanca.
Loops infinitos
El síntoma es ERR_TOO_MANY_REDIRECTS en el navegador. La causa más común: A redirige a B y B redirige a A. Auditá todas las reglas de redirección con curl -L -v URL para ver cada hop, o usá un redirect checker para visualizarlo. Una vez que el loop está en producción, el diagnóstico en los logs de Nginx es inmediato — buscá la misma URL apareciendo en ciclos.
Plan de migración de dominio con 301: cronología realista
Si estás migrando un dominio con historia de SEO, este es el cronograma que funciona:
- Día 1: activar todos los 301 del dominio viejo al nuevo. Incluir rutas específicas, no solo la raíz.
- Semana 1-2: verificar en Google Search Console que Google detectó los redirects. Buscar errores de crawl en el informe de cobertura.
- Mes 1-3: esperar caída de posiciones (30-40% es normal). Monitorear que las URLs nuevas estén indexándose.
- Mes 6: la transferencia de autoridad debería estar completa. Si las posiciones no se recuperaron, revisar si hay cadenas de redirect o si los 301 están mal configurados.
- Mes 12+: recién ahora considerar remover los redirects. No antes.
¿Cuándo sabés que la migración fue exitosa? Cuando las URLs del dominio nuevo aparecen en Search Console con el mismo tráfico orgánico que tenía el dominio viejo. Ese proceso puede tomar entre 6 y 12 meses. No hay forma de acelerarlo comprando links o haciendo “trucos” — es un proceso de confianza que Google construye gradualmente.
Preguntas Frecuentes
¿Cuál es la diferencia entre redirección 301, 302 y 307?
301 indica cambio permanente y transfiere autoridad SEO (90-99% del PageRank) a la nueva URL. 302 indica cambio temporal: Google retiene la URL original como canónica y no transfiere autoridad. 307 también es temporal pero garantiza que el método HTTP (POST, PUT, etc.) se preserve en la redirección, mientras que 302 puede convertir POST a GET.
¿Cuánto tarda Google en procesar una redirección 301?
Google puede detectar el 301 en días, pero la transferencia completa de autoridad y posiciones tarda entre 6 y 12 meses. Las primeras 6 semanas son las más inestables: es normal ver caídas de 30-40% en rankings antes de que se recuperen. No saques los 301 antes del año.
¿Cómo configurar redirecciones en Nginx sin perder SEO?
Usá la directiva return 301 https://nueva-url.com$request_uri; dentro del bloque server del dominio viejo. El $request_uri preserva la ruta y los parámetros. Después de guardar, ejecutá nginx -t && systemctl reload nginx. Evitá usar rewrite cuando un simple return alcanza — es más simple y más rápido.
¿Qué es una cadena de redirecciones y cómo la evito?
Una cadena de redirecciones es cuando una URL pasa por múltiples hops antes de llegar al destino final (A→B→C→D en lugar de A→D). Consume crawl budget, agrega latencia y diluye autoridad SEO. Para evitarla, auditá tus reglas con curl -L -v URL o un redirect checker, y actualizá los redirects obsoletos para que apunten directo al destino final.
¿Se transfiere la autoridad SEO con una redirección permanente?
Con un 301 o 308 configurado correctamente, se transfiere entre el 90% y el 99% del PageRank de la URL origen. No es el 100% completo, pero es lo máximo posible. Con 302 o 307 no hay transferencia garantizada porque Google los interpreta como temporales y retiene la URL original como canónica.
Conclusión
Los códigos HTTP 3xx redirecciones no son todos iguales y elegir el incorrecto tiene consecuencias reales: autoridad SEO que no se transfiere, formularios que pierden datos, loops infinitos que rompen el sitio para todos. La regla básica es simple: 301 para cambios permanentes de URL estándar, 308 para cambios permanentes que involucran APIs o métodos distintos a GET, 302/307 solo cuando el cambio es genuinamente temporal.
La mayoría de los problemas post-migración no son de código HTTP incorrecto sino de mala implementación: cadenas de redirects que nadie limpió, 301 removidos antes del año, o 302 que se quedaron permanentes por olvido. Auditá tus redirects con curl, mantenelos activos el tiempo necesario, y evitá open redirects si aceptás URLs como parámetro.
Fuentes
- HTTP 3xx status codes: canonical reference — referencia técnica completa con semántica de cada código
- HTTP 2xx status codes: canonical reference — complemento sobre códigos de éxito y su interpretación por crawlers
- emirodgar.com — redirección 307: cuándo usarla y diferencias con 302
- DonWeb News — cómo diagnosticar cadenas de redirección
- InboundCycle — redirecciones 301 y 302: qué son y cómo configurarlas






