# Qué es una redirección 301 y cuándo usarla en una tienda

> Qué es una redirección 301, en qué se diferencia de una 302 o una 308, qué hace Google con ella y cómo redirigir una ficha que cambia de URL en Shopify.

URL: https://clione.ai/es/glosario/redireccion-301/
Lang: es

Una redirección 301 es lo que evita que un enlace antiguo acabe en «página no encontrada». En una tienda hace falta más a menudo de lo que parece: un producto cambia de nombre y con él de URL, una [ficha de producto](/es/glosario/ficha-de-producto/) se descataloga, dos categorías se fusionan, la tienda cambia de plataforma. No tiene nada que ver con el desvío de un enlace de afiliado: es una respuesta del servidor con un código concreto. Para quien compra, la diferencia entre un 301 y un 404 es llegar o no llegar. Para Google, **la redirección dice qué URL tiene que mostrar a partir de ahora**, y por eso un 301 mal puesto se paga en la [indexación](/es/glosario/indexacion/).

## Cómo funciona

El código 301 lo define el estándar de HTTP, hoy el RFC 9110, publicado en 2022: el recurso se ha movido a una URL nueva y permanente, y el cliente debería usar esa dirección en sus peticiones futuras. La URL nueva viaja en la cabecera `Location`, y la respuesta **se puede guardar en caché aunque nadie lo indique**.[^rfc9110] El mismo estándar define a sus parientes. El 308 también es permanente, pero obliga a repetir la petición con el mismo método, de modo que un formulario enviado sigue siendo un envío, mientras que con un 301 el cliente puede cambiar un envío por una simple petición de página. El 302 y el 307 son temporales: no dicen que el recurso se haya mudado.[^rfc9110]

Google agrupa las redirecciones por lo que significan para él, no por el número:[^google-redirects]

| Tipo       | Cómo se hace                                                                  | Qué hace Google                                                                                                           |
| ---------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Permanente | 301, 308, `meta refresh` a 0 segundos, un cambio de `location` con JavaScript | Sigue la redirección, toma el destino como la URL que debe ser canónica y lo muestra en los resultados[^google-redirects] |
| Temporal   | 302, 303, 307, `meta refresh` con más de 0 segundos                           | Mantiene la URL de origen en los resultados; el destino puede indexarse si otras señales lo apoyan[^google-redirects]     |

Esa señal es la misma que persigue la etiqueta [canonical](/es/glosario/canonical/): que cuente una sola URL. Google prefiere las redirecciones hechas en el servidor y deja las de JavaScript para cuando no hay otra opción, porque si falla el renderizado puede no llegar a verlas. Y avisa de un efecto que despista: **la URL antigua puede seguir saliendo un tiempo como nombre alternativo** después de una redirección permanente, y deja de salir sola con el tiempo.[^google-redirects]

En [Search Console](/es/glosario/search-console/), la URL antigua aparece en el informe de indexación como «Página con redirección»: una URL no canónica que redirige a otra y que no se indexará. El destino puede estar indexado o no, según lo que Google considere.[^gsc-page-indexing] La redirección elige la URL; no garantiza que el destino entre en el índice.

Cuando lo que cambia son muchas URL a la vez, la guía de Google para migraciones añade tres reglas. Mantener las redirecciones **tanto tiempo como sea posible, en general al menos un año**. Que las cadenas sean cortas: idealmente no más de 3 saltos, y menos de 5. Y no mandar muchas URL antiguas a un único destino que no tiene que ver con ellas, como la portada, porque confunde a la gente y puede tratarse como un error _soft 404_. Una web pequeña o mediana puede tardar unas semanas en ver la mayoría de sus páginas en las URL nuevas, y una grande, más.[^google-site-move]

## En una tienda

Un **ejemplo ficticio**: una tienda de té cambia el nombre de una tetera y con él su URL. Así responde la dirección antigua vista con `curl`, que enseña la respuesta sin seguir la redirección:

```text
$ curl -I https://tienda.example/products/tetera-hierro-06l
HTTP/2 301
location: https://tienda.example/products/tetera-hierro-fundido-06l
```

Dos líneas bastan: el código dice que el cambio es permanente y `location` dice adónde. Lo que no dicen es si el destino es el que debe ser, y esa decisión se toma URL a URL:

| Qué ha pasado (ejemplo ficticio)          | URL antigua                     | Respuesta                                                                       |
| ----------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------- |
| La tetera cambia de nombre                | `/products/tetera-hierro-06l`   | 301 a la URL nueva del mismo producto                                           |
| Un té se descataloga y tiene sucesor      | `/products/sencha-2025`         | 301 a la ficha del sucesor                                                      |
| Un té se descataloga sin nada equivalente | `/products/te-edicion-limitada` | Un 404; mandarlo a la portada puede tratarse como _soft 404_[^google-site-move] |
| Dos categorías se fusionan                | `/collections/te-verde-japon`   | 301 a la colección que reúne las dos                                            |

En Shopify, las redirecciones se crean desde el apartado de menús del panel (_Content › Menus › View URL Redirects_ en la interfaz en inglés), una a una o importando un CSV, y se activan al momento. Tres reglas de la plataforma cambian lo que puedes hacer. **Solo se puede redirigir desde una URL rota**, una que muestra «página no encontrada» o un 404: si la ficha antigua sigue publicada, la regla no funciona. No se pueden redirigir las rutas fijas `/products`, `/collections` y `/collections/all`, ni las que empiezan por prefijos como `/cart`, `/orders` o `/apps`. Y el máximo es de 100.000 redirecciones, o 20.000.000 en el plan Plus. Shopify avisa además de que las URL con parámetros pueden no funcionar como se espera, y de que **los navegadores y los buscadores guardan las 301 en caché**: si borras una que ya se ha usado, puede seguir funcionando para esa persona hasta que caduque.[^shopify-redirects]

Al cambiar el identificador (_handle_) de una [colección de Shopify](/es/glosario/coleccion-shopify/), el panel ofrece una casilla para crear la redirección desde la URL anterior, para que quien llegue por un enlace viejo no acabe en un 404. Shopify pide también no cambiar el identificador a menudo, porque la colección podría dejar de aparecer en los resultados de los buscadores.[^shopify-collection-settings]


**Mandar a la portada todo lo que desaparece parece prudente, y no lo es.** Google pide no redirigir muchas URL antiguas a un único destino que no tiene que ver con ellas, como la portada de la web nueva: confunde a quien llega y puede tratarse como un _soft 404_, es decir, como si la página no existiera.[^google-site-move] La redirección tiene sentido cuando el destino responde a lo que buscaba quien pidió la URL vieja; si no hay nada equivalente, el 404 es la respuesta honesta.


## Cómo comprobarlo

1. **Pide la URL antigua con `curl -I`** y mira las dos primeras líneas: el código tiene que ser 301 o 308, y la cabecera `Location` tiene que llevar la URL de destino.[^rfc9110] Un 302 o un 307 dicen a Google que el cambio es temporal.[^google-redirects]
2. **Sigue la cadena entera** con `curl -sIL` y cuenta los saltos. Lo ideal son 3 o menos, y nunca 5 o más.[^google-site-move] Si la URL ha cambiado varias veces, haz que todas las antiguas apunten directamente a la última.
3. **Abre el destino** y comprueba que responde con un 200 y que es el mismo producto o su sustituto, no la portada ni una categoría genérica.[^google-site-move]
4. **Actualiza los [enlaces internos](/es/glosario/enlazado-interno/) y el [sitemap XML](/es/glosario/sitemap-xml/)** para que apunten a la URL nueva. Google pide sustituir en los enlaces propios todas las URL que cambian y enviar el sitemap nuevo en Search Console.[^google-site-move]
5. **Inspecciona las dos URL en Search Console.** La antigua debería aparecer como «Página con redirección» y la nueva, con el tiempo, como indexada.[^gsc-page-indexing]

## Concepto cercano: redirección 302

La 302 es la redirección temporal, y se confunde con la 301 porque para la persona que navega no hay diferencia: las dos la llevan al destino. Para Google, sí la hay. Con una permanente, muestra el destino en los resultados; con una temporal, **mantiene la URL de origen en los resultados**, y el destino solo se indexa si otras señales lo apoyan.[^google-redirects] La regla es la del estándar: la 302 es para un recurso que está en otro sitio por un tiempo y va a volver; la 301, para uno que se ha mudado.[^rfc9110] Una ficha renombrada no va a volver a su URL vieja, así que su redirección es una 301. Si las dos URL tienen que seguir abiertas, por ejemplo una ficha vista desde una colección, la herramienta es otra: la canonical, que no redirige a nadie.

Para seguir, la entrada de [rastreo vs indexación](/es/glosario/rastreo-vs-indexacion/) explica por qué una URL redirigida se rastrea pero no se indexa, y la [ruta de lectura de rastreo e indexación](/es/aprender/rastreo-e-indexacion/) ordena el resto de términos.
