Saltar al contenido

3xx · Redirecciones

Código HTTP 301 Moved Permanently: qué significa

El código 301 Moved Permanently indica que la URL ha cambiado para siempre y que la nueva dirección está en la cabecera Location. Los navegadores la recuerdan y Google traslada el posicionamiento de la URL antigua a la nueva. Es la redirección correcta al cambiar de dominio, pasar a HTTPS o renombrar una página.

Qué significa el código 301

Un 301 es la forma de decirle a los buscadores "esta página ahora vive aquí". Google sigue la redirección, indexa la nueva URL y le transfiere las señales (enlaces, autoridad) de la antigua. Por eso, al cambiar slugs o reestructurar una web, cada URL antigua debería redirigir con 301 a su equivalente, no a la portada.

Los navegadores cachean los 301 de forma agresiva, a veces indefinidamente. Si te equivocas de destino, los visitantes que ya pasaron por ahí seguirán yendo al sitio equivocado hasta que borren la caché. Mientras pruebas, usa 302 y cambia a 301 cuando estés seguro.

Cuándo aparece

  • Paso de HTTP a HTTPS o de www a sin www (o al revés).
  • Cambio de dominio o de estructura de URLs.
  • Barra final: muchos servidores redirigen /carpeta a /carpeta/.

Qué tener en cuenta

  • Redirige cada URL antigua a su página equivalente; redirigir todo a la portada hace que Google lo trate como soft 404.
  • Evita cadenas (A → B → C): apunta directamente al destino final.
  • Actualiza los enlaces internos y el sitemap para que apunten a la URL nueva, no a la que redirige.
  • Comprueba la cadena completa con el comprobador de redirecciones.

Configuración y comandos

nginx: HTTP → HTTPS y sin www

nginx
server {
    listen 80;
    server_name ejemplo.com www.ejemplo.com;
    return 301 https://ejemplo.com$request_uri;
}

nginx: URL renombrada

nginx
location = /blog/guia-antigua { return 301 /blog/guia-nueva; }

Apache (.htaccess)

apache
Redirect 301 /blog/guia-antigua https://ejemplo.com/blog/guia-nueva
# o, con mod_rewrite:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Ejemplo de respuesta

http
HTTP/1.1 301 Moved Permanently
Location: https://ejemplo.com/blog/guia-nueva
Cache-Control: max-age=3600

Herramientas para comprobarlo

Preguntas frecuentes

¿Un 301 hace perder posicionamiento?

Google ha confirmado que las redirecciones 301 (y también las 302 y 308) no pierden PageRank. Puede haber fluctuaciones unas semanas mientras se reindexa, pero el posicionamiento se traslada.

¿Cuál es la diferencia entre 301 y 308?

Las dos son permanentes. Con 301 algunos clientes cambian un POST a GET al seguir la redirección; con 308 el método se mantiene. Para páginas web normales da igual; para APIs, 308 es más seguro.

¿Cuánto tiempo debo mantener un 301?

Google recomienda al menos un año. En la práctica, mientras existan enlaces externos a la URL antigua conviene mantenerlo.

Códigos relacionados

Ver todos los códigos de estado HTTP