301 vs 302 vs 307 vs 308: qué redirección usar
Elegir la redirección equivocada puede mantener una URL antigua en Google durante meses o convertir el envío de un formulario en una petición GET que pierde sus datos. Aquí tienes qué significa cada código de estado, cuál usar y cómo comprobar que tus redirecciones funcionan bien.
Las cuatro redirecciones de un vistazo
| Estado | ¿Permanente? | ¿Mantiene método y cuerpo? | Úsalo para |
|---|---|---|---|
301 Moved Permanently | Sí | No garantizado (POST puede convertirse en GET) | Páginas movidas, HTTP → HTTPS, cambios de dominio |
302 Found | No | No garantizado | Cambios a corto plazo, pruebas A/B, mantenimiento |
307 Temporary Redirect | No | Sí | Cambios temporales de endpoints de API y formularios |
308 Permanent Redirect | Sí | Sí | Cambios permanentes de endpoints de API que reciben POST |
En cuanto al SEO, Google trata el 301 y el 308 como señales fuertes de que la nueva URL debe reemplazar a la antigua, y le transfiere las señales de posicionamiento. El 302 y el 307 indican a Google que mantenga la URL antigua indexada. Encontrarás la información completa de cada código en la referencia de HTTP Status Codes.
Cuál elegir
- Página movida de forma definitiva (nuevo slug, artículo fusionado, nuevo dominio) → 301.
- De HTTP a HTTPS, de www a sin www → 301 (o 308).
- Temporal (página de rebajas, mantenimiento, enrutamiento por ubicación o idioma) → 302.
- Un endpoint de API o un manejador de formularios cambió de ubicación → 308 (permanente) o 307 (temporal), para que los datos del POST no se pierdan.
Evita cadenas y bucles
Una cadena es /a → /b → /c: cada salto añade un viaje de ida y vuelta, y los rastreadores pueden dejar de seguirla tras varios saltos. Un bucle (/a → /b → /a) rompe la página por completo. Después de una migración, apunta cada URL antigua directamente a su destino final. Revisa la ruta completa de cualquier URL (cada salto, estado y tiempo) con el Redirect Checker, incluido si las versiones http, https, www y sin www acaban todas en el mismo lugar.
Reglas para copiar y pegar
Apache (.htaccess):
Redirect 301 /old-page /new-page
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Nginx:
location = /old-page { return 301 /new-page; }
server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
Vercel (vercel.json): "permanent": true envía un 308, que Google trata como un 301.
{ "redirects": [ { "source": "/old-page", "destination": "/new-page", "permanent": true } ] }
Convierte una hoja de cálculo con URLs antiguas → nuevas en reglas para cualquier servidor con el Redirect Generator, o crea una configuración completa de Apache con el .htaccess Generator.
Lista de comprobación para migraciones
- Asigna cada URL antigua a la nueva más relevante, no todas a la página de inicio, que Google trata como un soft 404.
- Usa 301 (o 308) para los cambios permanentes y mantenlos al menos un año.
- Actualiza los enlaces internos y el sitemap con las URLs nuevas, para que las redirecciones sean solo una red de seguridad.
- Prueba una muestra de URLs antiguas y revisa después el informe de Páginas de Search Console para detectar 404.