# 307 Temporary Redirect: un 302 que conserva el método

> 307 Temporary Redirect envía al cliente a otra URL por ahora y le obliga a repetir allí el mismo método y el mismo cuerpo.

URL: https://yes-seo.com/es/codigos-http/307

**307 Temporary Redirect** envía al cliente a otra URL por ahora y garantiza que el método y el cuerpo de la solicitud no cambian. Un POST que recibe un 307 se reenvía como POST a la nueva ubicación, que es lo único que el [302](https://yes-seo.com/es/codigos-http/302) nunca prometió.

## Definición

La [RFC 9110, sección 15.4.8](https://www.rfc-editor.org/rfc/rfc9110#section-15.4.8) dice que el recurso de destino reside temporalmente bajo un URI diferente y que el agente de usuario “NO DEBE cambiar el método de la solicitud” si sigue la redirección automáticamente. Como la redirección es temporal, los clientes siguen usando la URL original en solicitudes futuras. El 307 se añadió en HTTP/1.1 para eliminar la ambigüedad del 302, cuyo tratamiento del método variaba entre clientes.

## Impacto en el SEO

Para Google, el 307 equivale al 302, según su [documentación sobre códigos de estado HTTP](https://developers.google.com/search/docs/crawling-indexing/http-network-errors?hl=es). Googlebot lo sigue, y la redirección es una señal débil de que el destino debe ser el canónico, así que la URL original suele quedarse en los resultados. Eso es correcto para un desvío temporal e incorrecto para un cambio permanente; para esos casos usa [308](https://yes-seo.com/es/codigos-http/308) o [301](https://yes-seo.com/es/codigos-http/301).

## La “307 Internal Redirect” de Chrome

Mucha gente conoce el 307 por primera vez en el panel Network del navegador: `http://example.com` aparece con **307 Internal Redirect** y `Non-Authoritative-Reason: HSTS`. Esa respuesta nunca salió de tu servidor. El navegador tiene tu sitio en su lista [HSTS](https://yes-seo.com/es/glosario/hsts) y pasa la solicitud a HTTPS por su cuenta antes de enviar nada. Googlebot y las herramientas del lado del servidor no comparten ese estado del navegador, así que ven lo que tu servidor envía realmente para la URL `http://`, idealmente un único 301 o 308 a HTTPS. No intentes “arreglar” una redirección interna; comprueba la respuesta real.

## De dónde vienen los 307 reales

- Frameworks: Next.js usa 307 en las redirecciones con `permanent: false` y 308 con `permanent: true`; el `RedirectResponse` de FastAPI usa 307 por defecto.

- API que trasladan el tráfico temporalmente a otro endpoint conservando intactos POST, PUT o DELETE.

- Balanceadores de carga y pasarelas de autenticación que hacen pasar a los usuarios por un paso de inicio de sesión.

Si un valor por defecto del framework convirtió un cambio permanente en un 307, cámbialo de forma explícita:

```
// next.config.js
module.exports = {
  async redirects() {
    return [
      { source: '/blog/:slug', destination: '/articles/:slug', permanent: true }, // 308
    ];
  },
};

# Nginx: una redirección temporal deliberada que conserva el método
location = /api/v1/upload {
    return 307 https://upload.example.com/api/v1/upload;
}
```

## Cómo comprobarlo

Usa el [comprobador de redirecciones](https://yes-seo.com/es/comprobador-redirecciones) para rastrear los saltos reales del lado del servidor de una URL, incluido el paso de http a https que Chrome oculta tras HSTS. El [comprobador de cabeceras HTTP](https://yes-seo.com/es/comprobador-cabeceras-http) muestra la cabecera `Location` y las de caché de una sola respuesta. Un 307 genuino tiene este aspecto:

```
HTTP/1.1 307 Temporary Redirect
Location: https://upload.example.com/api/v1/upload
Cache-Control: no-store
Content-Length: 0
```

## Preguntas frecuentes

### ¿Una redirección 307 es mala para el SEO?

No, siempre que el cambio sea temporal. Google trata el 307 como el 302 y normalmente mantiene la URL original en los resultados. Para los cambios permanentes, usa 301 o 308.

### ¿Por qué Chrome muestra un 307 cuando mi servidor envía un 301?

Esa “307 Internal Redirect” la genera el navegador por HSTS: pasa de http a https antes de contactar con tu servidor. Los buscadores y los comprobadores del lado del servidor ven la respuesta real de tu servidor.

### ¿Debo usar 302 o 307?

Para redirecciones de página sencillas, Google trata ambos igual. Elige 307 cuando el cliente deba repetir el mismo método, por ejemplo un POST a un endpoint de API que se ha movido temporalmente.

