Una redirección le dice al navegador y a Google: «lo que buscas ya no está aquí, está en esta otra dirección». Las usarás al pasar de HTTP a HTTPS, al cambiar de dominio, al reorganizar las URL de una tienda o al borrar una página que tenía enlaces. Elegir el código correcto y configurarlo bien es lo que separa una migración tranquila de una caída de tráfico. En esta guía verás qué significa cada código, cómo afecta al SEO y ejemplos listos para Apache y Nginx.
Los códigos de redirección
| Código | Nombre | Tipo | Método | Uso típico |
|---|---|---|---|---|
| 301 | Moved Permanently | Permanente | Puede cambiar POST a GET | Cambio definitivo de URL o dominio |
| 302 | Found | Temporal | Puede cambiar POST a GET | Campañas, pruebas A/B, mantenimiento |
| 307 | Temporary Redirect | Temporal | Conserva el método | Temporal en APIs o formularios |
| 308 | Permanent Redirect | Permanente | Conserva el método | Permanente cuando importa el método |
Para el SEO lo importante es la distinción permanente / temporal:
- Con 301 o 308, Google entiende que la URL nueva es la canónica y, con el tiempo, la muestra en lugar de la antigua.
- Con 302 o 307, Google tiende a mantener la URL antigua en el índice porque espera que vuelva. Si una 302 se queda meses, Google puede acabar tratándola como permanente, pero no conviene dejarlo al azar.
También existen la redirección por <meta http-equiv="refresh"> y por JavaScript. Funcionan, pero son más lentas y menos fiables para los buscadores; úsalas solo si no tienes acceso al servidor.
Cómo afectan al SEO
- No se pierde PageRank por usar una 301 o 302, según Google.
- La relevancia sí importa: redirige cada URL antigua a su equivalente más cercano. Redirigir cientos de productos descatalogados a la portada se suele tratar como un 404 suave.
- Mantén las redirecciones al menos un año, y mejor indefinidamente.
- Actualiza los enlaces internos para que apunten directamente a la URL final; no dependas de la redirección.
- Actualiza el sitemap con las URL nuevas y elimina las antiguas.
Cadenas y bucles
Una cadena es cuando A redirige a B, B a C y C a D. Cada salto añade latencia, y los rastreadores pueden abandonar tras varios saltos (Googlebot sigue hasta 10). El caso típico:
http://ejemplo.com/tienda
→ https://ejemplo.com/tienda
→ https://www.ejemplo.com/tienda
→ https://www.ejemplo.com/tienda/
Tres saltos donde bastaba uno. La solución es redirigir directamente cada variante a la URL final.
Un bucle es cuando A redirige a B y B vuelve a A: el navegador muestra ERR_TOO_MANY_REDIRECTS. Suele ocurrir al combinar reglas del servidor con las de un plugin, o con Cloudflare en modo SSL «Flexible» mientras el servidor fuerza HTTPS.
Comprueba cualquier URL con el comprobador de redirecciones: muestra cada salto, su código y el destino final. Para ver la cabecera Location y el resto de cabeceras de una respuesta concreta, usa el comprobador de cabeceras HTTP.
Ejemplos para Apache (.htaccess)
#Una página concreta
Redirect 301 /servicios-antiguos /servicios
#Todo el dominio antiguo al nuevo, conservando la ruta
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?dominio-antiguo\.es$ [NC]
RewriteRule ^(.*)$ https://dominio-nuevo.es/$1 [R=301,L]
#Forzar HTTPS y sin www en un solo salto
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://ejemplo.com%{REQUEST_URI} [R=301,L]
Ejemplos para Nginx
#Una página concreta
location = /servicios-antiguos {
return 301 /servicios;
}
#Dominio antiguo → nuevo
server {
server_name dominio-antiguo.es www.dominio-antiguo.es;
return 301 https://dominio-nuevo.es$request_uri;
}
#Temporal (mantenimiento de una sección)
location /ofertas {
return 302 /proximamente;
}
Si no quieres escribir las reglas a mano, el generador de redirecciones 301 crea el código para Apache y Nginx a partir de una lista de URL.
Migraciones: paso a paso
- Inventario de todas las URL antiguas: sitemap, Search Console (páginas indexadas y con enlaces) y analítica.
- Tabla de correspondencias URL antigua → URL nueva, una por una para las páginas importantes.
- Implementa las 301 en el servidor, no con plugins que se ejecuten después de cargar WordPress si puedes evitarlo.
- Prueba una muestra: cada URL debe llegar en un salto y devolver 200 en el destino.
- Actualiza enlaces internos, canonicals, hreflang y sitemap.
- En un cambio de dominio, usa la herramienta de cambio de dirección de Search Console.
- Vigila los errores 404 y la cobertura del índice durante las semanas siguientes.
Cuándo usar cada una
- Has cambiado de dominio o de estructura de URL → 301.
- Pasas de HTTP a HTTPS → 301 (o 308).
- Un producto está agotado temporalmente → mejor no redirigir: deja la página con un aviso y alternativas.
- Producto descatalogado sin sustituto → 410 o 404 con enlaces útiles; si hay sustituto directo, 301.
- Página de mantenimiento puntual → 302 o 307, o mejor un 503 con
Retry-After. - Redirección por idioma o país → con cuidado: no redirijas automáticamente a Googlebot; ofrece un selector y usa hreflang.
Lista de comprobación
- Cambios permanentes con 301/308; temporales con 302/307.
- Cada URL antigua apunta a su equivalente más relevante.
- Ninguna cadena de más de un salto, ningún bucle.
- Enlaces internos y sitemap actualizados a las URL finales.
- Redirecciones mantenidas al menos un año.
- Revisión de 404 en Search Console tras cada cambio.
Si estás migrando a HTTPS, consulta también la guía de certificados SSL.