Redirección permanente 308

Qué es un 308 Permanent Redirect, cómo conserva el método HTTP mientras señala permanencia, a diferencia de un 301, y cómo Google transmite las señales de posicionamiento a través de él.

Publicado por primera vez: 28 jun 2026 · Última actualización: 8 ago 2026 · Avanzado
Idiomas
1 señal de evidencia en esta página

Un 308 Permanent Redirect es un traslado permanente (igual que un 301) con una garantía adicional estricta: el cliente no debe cambiar el método de la solicitud en la nueva URL —y, como un cliente conforme repite la misma solicitud en lugar de emitir una nueva, el cuerpo viaja con ella, por lo que un POST sigue siendo un POST. Para SEO es idéntico a un 301: la documentación de Google lo denomina 'Equivalente a 301', Gary Illyes dice que Google lo fusiona con 301, y Fabrice Canel de Bing confirma que Bing los trata igual. Por tanto, no hay ningún motivo de posicionamiento para elegir uno u otro. Usa un 308 cuando estés redirigiendo una solicitud que no es GET y que debe llegar intacta —un endpoint de API, un webhook, un formulario o un POST de autenticación—, porque un 301 puede, 'por motivos históricos', convertir silenciosamente ese POST en un GET y dejar el cuerpo sin enviar. Para un traslado de página ordinario, un cambio a HTTPS o un cambio de dominio (todos GET simples), 301 sigue siendo la opción predeterminada pragmática gracias a su mayor compatibilidad con herramientas, CDN y plugins. La compatibilidad de los navegadores es alta en 2026 — caniuse actualmente lo registra en torno a un 96,5 % o más, con brechas principalmente en navegadores obsoletos—, pero la advertencia que vale la pena comprobar es tu propio stack: algunos plugins de CMS, interfaces de reglas de edge y proxies heredados todavía solo exponen 301/302/307.

TL;DR — Un 308 es la redirección permanente que preserva estrictamente el método: la misma señal de canonicalización que un 301 (los documentos de Google dicen “Equivalent to 301 (traducción) «Equivalente a `301»*/), pero garantiza que el cliente no cambie el método en la nueva URL — y, dado que un cliente conforme repite la misma solicitud en lugar de una nueva, el cuerpo viaja junto con ella. Existe porque HTTP tenía un código temporal que preservaba el método (307) años antes de que tuviera uno permanente — RFC 7538 (2015) llenó ese vacío, y RFC 9110 ahora apunta a 308 directamente desde su propia definición de 301. Para SEO, ambos son intercambiables (Illyes: Google “merges” (traducción) «fusiona» 308 con 301; Canel, de Bing, confirma la paridad). Recurre a 308 cuando una solicitud que no sea GET debe sobrevivir: migraciones de API/versión, URL de webhook, flujos de POST de autenticación/formulario — pero verifica la preservación del método y del cuerpo con tu propio cliente en lugar de asumirlo solo por la especificación. De lo contrario, 301 sigue siendo la opción predeterminada — la compatibilidad de los navegadores con 308 es sólida en 2026 (caniuse actualmente registra ~96,5 % o más), pero el propio RFC 9110 todavía señala 308 como más reciente y no universalmente reconocido, y algunos plugins de CMS, las interfaces de reglas de edge y los proxies heredados todavía solo exponen 301/302/307.

Qué significa 308, mecánicamente

Un 308 Permanent Redirect transmite el mismo mensaje que un 301 —este recurso ahora reside en una nueva URL, de forma permanente— con un añadido que el 301 nunca garantizó: el cliente no debe cambiar el método de solicitud en el destino. Como el cliente está repitiendo la misma solicitud en lugar de emitir una nueva, el cuerpo viaja junto con ella en un cliente compatible con la especificación — eso es una consecuencia de la garantía del método, no una promesa certificada por separado, así que trátalo como algo que debes verificar de extremo a extremo para tu propio cliente y servidor en lugar de asumirlo sin más. MDN describe 308 como el código que mantiene el método de solicitud (y, en la práctica, el cuerpo) sin cambios a través de la redirección, mientras que un 301 puede que no.

La versión en lenguaje sencillo que uso en la guía de redirecciones de Ahrefs: “A 308 redirect is the same as a 301 redirect, except it retains the HTTP method of the original request, GET or POST, when performing the redirect.” (traducción) «Una redirección 308 es igual que una redirección 301, excepto que conserva el método HTTP de la solicitud original, GET o POST, al realizar la redirección.» O, aún más breve, en la guía de códigos de estado HTTP: “308 Permanent Redirect – Has the same functionality as a 301 redirect, except you can’t switch between POST and GET.” (traducción) «308 Permanent Redirect – Tiene la misma funcionalidad que una redirección 301, excepto que no puedes alternar entre POST y GET.» Evidence for this claim RFC 7538 defines 308 Permanent Redirect as a permanent move whose redirect follow-up must not change the request method. Scope: HTTP semantics for 308 responses. Confidence: high · Verified: IETF: RFC 7538 §3 — 308 Permanent Redirect

Esta es la diferencia de forma concreta. Supongamos que un cliente envía un pedido mediante POST a /api/orders con un cuerpo JSON:

POST /api/orders HTTP/1.1
Host: shop.example.com
Content-Type: application/json

{ "sku": "A-100", "qty": 2 }

Si ese endpoint responde con un 301 y el cliente respeta el permiso heredado de «puedes cambiar a GET», la solicitud puede llegar a la nueva URL como un GET vacío — el cuerpo desaparece, la orden se pierde. Responde con un 308 y el cliente debe repetir el POST en la nueva URL; un cliente compatible lleva el cuerpo consigo, por lo que la orden se completa — confírmalo en tus propios registros de cliente y servidor (consulta la pestaña Scripts) en lugar de asumirlo universalmente. Esa es toda la distinción práctica: solo surge cuando la solicitud original no era un GET simple.

Por qué existe 308 — la historia de la especificación

Esta es la parte que la mayoría de las explicaciones omiten, y es la forma más clara de entender el código.

El 307 fue primero. HTTP ya tenía una redirección temporal que preserva el método — el 307 — mucho antes de tener un equivalente permanente. La especificación principal original (RFC 7231) nunca definió una contraparte permanente del 307. Así que existía un código temporal de «conservar el método» y un código permanente de «puedes cambiar el método» (301), pero ningún código permanente de «conservar el método».

RFC 7538 llenó el vacío. El 308 se añadió específicamente para ser el 307 permanente que faltaba — primero como experimental RFC 7238 (junio de 2014), luego estandarizado como RFC 7538 (abril de 2015). Es un parche para un hueco real, no un reemplazo de 301.

La especificación actual apunta directamente a ello. RFC 9110, la especificación de semántica HTTP actual, todavía documenta la ambigüedad integrada de 301 — y luego nombra a 308 como la solución, dentro de su propia definición de 301: un agente de usuario “MAY change the request method from POST to GET for the subsequent request… If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead.” (traducción) «PUEDE cambiar el método de solicitud de POST a GET para la solicitud posterior… Si este comportamiento no se desea, se puede usar en su lugar el código de estado 308 (Permanent Redirect).» Esa única oración es la razón completa por la que existe 308, directamente de la especificación autoritativa. Y en su propia sección de 308, RFC 9110 añade la única advertencia honesta: este código “is much younger (June 2014) than its sibling codes and thus might not be recognized everywhere.” (traducción) «es mucho más joven (junio de 2014) que sus códigos hermanos y, por lo tanto, podría no ser reconocido en todas partes.»

Así que el comportamiento de POST a GET de 301 no es un error — es una concesión documentada “for historical reasons” (traducción) «por razones históricas» integrada en la especificación, y 308 es la forma oficialmente aprobada de excluirse de él.

301 vs 308 — la diferencia práctica en una tabla

Solicitud GET simplePOST/PUT/DELETE con cuerpo
301Se comporta de forma idéntica a un 308Puede degradarse a GET; el cuerpo puede eliminarse
308Se comporta de forma idéntica a un 301Se garantiza que el método y el cuerpo se repiten
Señal SEOIgual (permanente, consolida)Igual (permanente, consolida)

Conclusión: para la gran mayoría de las redirecciones —que son GET simples—, un 301 y un 308 hacen exactamente lo mismo. La garantía solo vale la pena cuando hay en juego un método que no es GET con un cuerpo. (Para ver la comparación completa, consulta la comparación dedicada entre 301 y 308.)

¿Google trata el 308 igual que el 301 para el SEO?

Sí, sin ambigüedades, y está documentado. El documento sobre códigos de estado HTTP de Google enumera 301 como una redirección que Google “use[s]… as a strong signal that the redirect target should be processed,” (traducción) «utiliza… como una señal fuerte de que el destino de la redirección debería procesarse», y enumera 308 simplemente como “Equivalent to 301.” (traducción) «Equivalente a 301.» Añade una advertencia razonable: “While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (traducción) «Google los procesa igual, pero siguen teniendo semánticas distintas; elige el estado adecuado para que también puedan aprovecharlo otros clientes, como lectores electrónicos y motores de búsqueda.» En términos sencillos: Google no te penalizará por usar el «equivocado», pero aun así deberías usar el que es correcto para la solicitud, porque otro software depende de la distinción.

Evidence for this claim Google treats 308 as equivalent to 301 for Search and groups both as permanent redirects. Scope: Google Search processing; the two status codes remain semantically different for HTTP clients. Confidence: high · Verified: Google: HTTP status codes and Search Google: Redirects and Google Search

La documentación de redirecciones de Google sitúa ambos códigos en el mismo nivel recomendado: “The 301 and 308 status codes mean that a page has permanently moved to a new location.” (traducción) «Los códigos de estado 301 y 308 significan que una página se ha trasladado permanentemente a una nueva ubicación.» Y su guía de migración web menciona explícitamente el 308 en lugar de tratarlo como una consideración posterior al 301: la recomendación es usar redirecciones HTTP permanentes “such as 301 and 308” (traducción) «como 301 y 308» al realizar una migración permanente.

Vale la pena saberlo: esta paridad no siempre estuvo documentada. Gary Illyes ha dicho que Google fusiona 308 con 301 internamente, y la cobertura de Search Engine Roundtable presenta el momento en que apareció en la documentación oficial como el punto en que un comentario informal finalmente se convirtió en algo en lo que podías confiar — los propietarios de sitios que preguntaron “is this actually documented?” (traducción) «¿está esto realmente documentado?» hace unos años tenían razón al ser cautelosos aunque el comportamiento subyacente nunca cambió. Si quieres la redacción exacta de Google y sus representantes, la pestaña Citas tiene citas destacadas verificadas y enlaces profundos.

¿Bing trata el 308 igual que el 301?

Sí. Bing no tiene una página de documentación dedicada que detalle el 308 de la forma en que lo hace Google, pero Fabrice Canel de Microsoft lo confirmó directamente en X en septiembre de 2024, según informó Search Engine Roundtable: Bing trata las redirecciones 308 igual que las redirecciones 301. Esa es la declaración autorizada de Bing; consulta la pestaña Citas para ver la línea textual.

Cuándo usar realmente un 308

Aquí es donde reside el caso independiente de 308, y casi siempre es una solicitud que no es GET.

Migraciones de endpoints y versiones de API. Mover /v1/ a /v2/, o reubicar un host de API, es el caso de libro. Los clientes acceden a estos endpoints con POST/PUT/PATCH/DELETE y cuerpos reales. Un 308 garantiza que el método y la carga útil sobrevivan al salto; un 301 entraña el riesgo de una degradación silenciosa que deja varada la solicitud.

Migraciones web con mucho uso de POST. Los flujos de pago, los endpoints de inicio de sesión/autenticación y los destinos de acción de formulario envían datos por POST. Si alguna de esas URL se mueve durante una migración, un 308 mantiene intacto el envío, mientras que un 301 podría no hacerlo.

Cambios de URL de webhook. Cuando otro servicio envía por POST a una URL de webhook que estás reubicando, un 308 le indica a su cliente HTTP que vuelva a enviar por POST a la nueva dirección con el cuerpo intacto, exactamente lo que un consumidor de webhook necesita.

El hilo conductor: usa un 308 en cualquier lugar donde perder el cuerpo o que el método cambie silenciosamente a GET rompería la funcionalidad, no solo redistribuiría un poco de valor de SEO.

Antes de activar cualquiera de estos, pruébalo como una integración, no solo como un código de estado:

  • Reenvía el método real y la carga útil contra una copia de staging del nuevo endpoint.
  • Confirma si los encabezados de autorización o las cookies deberían conservarse y comprueba que realmente se conservan.
  • Si la solicitud original no es idempotente (un POST que crea un pedido, por ejemplo), vigila los efectos secundarios duplicados durante el salto de redirección.
  • Confirma que la cadena de consulta y el encabezado Content-Type se conserven, no solo el cuerpo.
  • Verifica que el cliente real —el remitente del webhook, el SDK de API, el navegador— siga automáticamente un 308 antes de retirar el endpoint antiguo. No todos los clientes HTTP lo hacen de forma predeterminada.

Cuando 301 sigue siendo la opción predeterminada pragmática

Para todo lo que sea un GET simple, 301 sigue siendo la opción predeterminada sensata:

  • Cambios ordinarios de URL de contenido/página.
  • Migraciones de HTTP → HTTPS.
  • Cambios de dominio y migraciones web estándar.
  • Normalización de Trailing-slash y de www/sin www.

Aquí la solicitud es un GET simple, por lo que la garantía de 308 no te aporta nada — y 301 gana en universalidad. Ninguna de las dos opciones tiene un costo de SEO. No migres masivamente los 301 existentes a 308 buscando un aumento de posiciones; esa ventaja no existe. Ten en cuenta que, en la jerarquía de preferencia de redirección de la guía de redirecciones de Ahrefs, 308 y 301 están juntos en el nivel más alto (por delante de meta refresh, JavaScript y otras soluciones alternativas) — son equivalentes, no una escalera.

Advertencias sobre adopción y compatibilidad — qué es realmente un riesgo en 2026

La compatibilidad de los navegadores ya no es el riesgo práctico que era antes. Según el seguimiento actual de caniuse, 308 se sitúa alrededor de 96,5 % o más de compatibilidad global —consulta la tabla en vivo para ver la cifra de hoy, ya que cambia— y las brechas visibles se concentran en navegadores que llevan años muertos: anteriores a IE11, Chrome/Firefox/Safari antiguos, Android Browser antiguo. Si aún ves flotando por ahí la antigua advertencia “IE11 fails on 308” (traducción) «IE11 falla en 308» está desactualizada para el tráfico mayoritario.

Las herramientas son la salvedad más actual. La brecha honesta, vigente en 2026, es que no todas las capas exponen una opción 308. Algunos plugins de redirección de CMS, algunas interfaces de reglas de redirección de CDN/edge y algunos proxies inversos o balanceadores de carga más antiguos todavía solo te permiten elegir 301/302/307. Antes de optar por 308, verifica que la capa que realmente sirve la redirección pueda emitirla en lugar de degradarla silenciosamente — la pestaña Scripts tiene una línea de código para confirmar el código de estado HTTP real en la red. La nota del propio RFC 9110 “much younger… might not be recognized everywhere” (traducción) «mucho más joven… podría no ser reconocido en todas partes» no se limita solo a los navegadores — es la cautela general de despliegue de la especificación para 308. En 2026, el impacto práctico de esa cautela se manifiesta principalmente en las herramientas en lugar de los navegadores mayoritarios, pero vale la pena leerla como la salvedad de base de la especificación en lugar de como algo completamente retirado.

Una nota al pie no estándar: “308 Resume Incomplete”

Una peculiaridad que subraya lo joven que es todavía este código: 308 no es solo un código de redirección en el mundo real. La API de subida de Google Drive reutiliza 308 con un significado completamente diferente — “Resume Incomplete”, que señala que una subida por fragmentos se detuvo y el cliente debería reanudarla. John Mueller lo señaló él mismo (consulta la pestaña Citas), y MDN documenta el mismo uso no estándar. Esto no cambia nada sobre 308 como redirección, pero es una buena ilustración de que 308 es un código de estado más nuevo y menos “asentado” culturalmente que el venerable 301.

Las cadenas de redirecciones y los saltos se aplican igual en ambos casos

Nada de lo anterior cambia cómo funcionan las cadenas de redirecciones. Los rastreadores de Google siguen hasta 10 saltos de redirección de forma predeterminada — aunque ese es el valor predeterminado, no una constante universal; la propia documentación de Google señala que productos específicos pueden diferir (su herramienta de inspección de url, por ejemplo, no sigue redirecciones en absoluto), así que comprueba la cifra actual en la documentación de Google en lugar de tratar 10 como fijo para siempre. Ese límite predeterminado es idéntico ya sea que los saltos sean redirecciones 301s o 308s. Si estás acumulando redirecciones (por ejemplo, una ruta de API antigua que da dos saltos antes de aterrizar), se aplica la misma higiene de cadenas de redirecciones y bucles de redirección: contrae las cadenas a un solo salto donde puedas. Consulta el artículo dedicado a las cadenas de redirecciones para ver la mecánica.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.