SEO y redirecciones

Según va pasando el tiempo el SEO es algo menos espectacular pero hay veces que algunos elementos básicos, como las redirecciones, se tienen que revisar. No hay que olvidar que el SEO es Internet, e Internet es tecnología, por lo que los cambios y avances tecnológicos son los que hacen que el SEO cambie y se adapte.

Y es que hay veces que hay que evitar determinados elementos, porque no siempre se hacen las redirecciones correctamente.

y es que ya he hablado en alguna ocasión lo que dice el HTTP/1.1 sobre las redireccions 3xx, pero hay que tener en cuenta que, el HTTP va evolucionando y ahora mismo hay 4 posibilidades interesantes, pero no únicas.

Existen los siguientes códigos de redirección (según la última especificación válida):

  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found
  • 303 See Other
  • 304 Not Modified
  • 307 Temporary Redirect
  • 308 Permanent Redirect

300 Multiple Choices

Seguramente esta es la más extraña de todas, porque en realidad no tiene una resolución sencilla. Básicamente lo que se informa con esta respuesta es que hay varias opciones, y que el user-agent debería tomar la decisión para hacer la redirección. Obviamente, los navegadores no suelen saber que hacer, por lo que este sistema es un poco absurdo. Si se usa, se debería incluir la cabecera Location e incluir una URL, lo que hace que ya no sea una opción múltiple.

301 Moved Permanently

La página antigua ya no tiene esa URL sino esta otra. Básicamente es “lo viejo ya no está, lo nuevo está aquí”. Pero este sistema tiene un ligero problema… y es que aunque se identifica claramente con que no se debe alterar la petición en general no se trata correctamente. Vamos, los contenidos que habían en la URL antigua ahora están en la nueva.

El tema es que es posible que hagas una petición GET, POST o HEAD y que acabe convirtiéndose en GET con este sistema, lo que hace que nos ea 100% fiable la redirección.

302 Found

La página antigua sigue estando donde estaba, pero por ahora muéstrale al usuario esta otra. Esta redirección básicamente lo que hace es que en caso de ser una máquina no tengas que actualizar la URL que tengas, sino que simplemente has de mandar al usuario a la nueva, sin actualizarte internamente.

El problema de este sistema es que, aunque Google no actualiza la URL anterior, se suele redirigir a una URL abierta y rastreable, lo que hace que se generen contenidos duplicados. Por eso, es importante que en este caso las URL sean diferentes en cuanto a contenidos. Esto significa que los contenidos antiguos siguen donde estaban, pero por ahora al usuario le muestras otros contenidos.

Hay que tener en cuenta que al igual que el 301, este sistema debería recibir peticiones GET, POST o HEAD y no cambiarlas, pero sí, en algunos casos las modifica a GET, lo que puede suponer un problema.

303 See Other

Este caso es bastante curioso, ya que a diferencia de los anteriores básicamente está enfocado a peticiones PUT o POST. Cuando haces la petición y ha finalizado, lo que le devuelves es un GET hacia otra URL, que es a la que habría que mandar al usuario.

Un ejemplo podría ser el de subir un contenido y que, al acabar de subirse, en vez de mostrarte el contenido recién subido te mande a una página donde te da las gracias por haberlo subido.

304 Not Modified

El código 304 a mi personalmente me hace bastante gracia porque es básicamente una “redirección a la caché”. En el fondo lo que estás diciendo al sistema es que no hace falta mandar o utilizar ningún recurso porque ya lo tienes, por lo que la redirección has de hacerla al sistema interno del mismo dispositivo.

En principio este sistema solo se debe dar en peticiones GET o HEAD (es decir, los POST no deberían devolver un 304 y por tanto no cachear nada) si existen las cabeceras If-None-Match o If-Modified-Since. Pero para que esto se de, previamente la misma llamada debería haber devuelto un código 200 con alguna respuesta Cache-Control, Content-Location, Date, ETag, Expires o Vary.

307 Temporary Redirect

La verdadera redirección temporal. Sin duda el comportamiento es exacto a la del código 302, con una gran diferencia: esta está obligada a cumplir lo que la 302 no cumple.

En este caso, a diferencia del sistema que te puede cambiar la forma de llamada, cuando se hace una redirección de tipo GET consigues un GET, y si la petición es POST, consigues un POST.

308 Permanent Redirect

La verdadera redirección permanente. De nuevo el comportamiento es exacto al de un código 301, pero, de nuevo, en esta ocasión se ha de cumplir obligatoriamente con lo que se pide.

De la misma forma que el anterior, cuando se hace una redirección de tipo GET consigues un GET, y si la petición es POST, consigues un POST.

Conclusión

Aunque en la mayoría de ocasiones los usuarios y los webmaster no van a notar ningún cambio, si queremos ser estrictos con la “legislación web”, deberías usar los códigos 307 y 308, donde conseguirás lo siguiente:

  • Redirección 307: La URL antigua seguirá estando en Google y probablemente la nueva también. Esto podría implicar contenidos duplicados a menos que las páginas tengan contenidos distintos.
  • Redirección 308: La URL antigua desaparecerá de Google dando paso únicamente a la URL nueva, que mantendrá todo el peso que tenía la anterior. ¡Atención! Si tienes enlaces internos (al menos los propios) deberás sustituirlos por los nuevos, sino, perderás parte del peso conseguido históricamente a medio plazo.

A partir de ahora, cuando alguien te hable de 301 o 302 y no te hable de 307 o 308, no le hagas caso: no tiene ni idea de SEO, es un vendehumo ;)

3 comentarios en “SEO y redirecciones

Deja un comentario