¿Qué te ha parecido?
(Votos: 6 Promedio: 4.7)

PrestaShop es una excelente herramienta para crear tiendas online funcionales y que sirvan al propósito de una tienda. Es decir, vender. Piensa en una funcionalidad para tu tienda y muy posiblemente PrestaShop o ya la tiene implementada o existen módulos ya desarrollados para que la puedas implementar gratis o por un precio la mayoría de las veces modesto. Por el otro lado también es cierto que a veces los desarrolladores de PrestaShop han patinado un poco, sobre todo con lo relacionado al SEO. Es el caso, por ejemplo, de los productos desactivados o productos descatalogados y las redirecciones que generan. Pero vamos por partes.

Qué es una redirección

Imagínate que tu pareja deja siempre las zapatillas en el medio del salón. Un buen día tu las recoges y las dejas ordenaditas en el mueble zapatero. Resultado: cuando tu pareja vuelva y busque las zapatillas no las va a encontrar, porque tu ne le has avisado. Trasladado en Internet, la búsqueda de tu pareja (que como Google, todo lo sabe) daría un «error 404 página no encontrada» porqué tú no has redireccionado correctamente su búsqueda. Hacemos una redirección cuando queremos indicar a los buscadores que hemos cambiado, movido o eliminado una dirección URL. Existen diferentes tipos de redirecciones  según el cambio que queramos comunicar:

  • Redirección 301 (permanente). Envía todo el tráfico destinado a la URL A hacia la URL B, así como la autoridad SEO.
  • Redirección 302 (temporal). Por ejemplo cuando queremos indicar que nuestra web no va a estar disponible por un tiempo.

Porqué son importantes las redirecciones

Las redirecciones tienen una importancia fundamental de cara al posicionamiento. Si no indicamos correctamente el las redirecciones corremos el riesgo de perder el posicionamiento y la autoridad de nuestra tienda online.

Qué hacer con los productos descatalogados y cómo desactivarlos

Pongamos que se ha acabado la temporada y ya esa prenda se va  a descatalogar, que tu proveedor de relojes de piloto ya no fabrica ese modelo o que en tu tienda de afeitado clásico ya no te queda más stock de brochas de afeitar. En estos casos te puedes plantear desactivar los productos para quitarlos del catálogo y retirarlos así de la venta. Para hacerlo es suficiente ir a la ficha del producto en la pestaña «información» y desactivar el producto (Activado: no).

Desactivar productos sin redirección (Error 404)

El problema de PrestaShop es que cuando desactivamos un producto, por defecto no asigna ninguna redirección, generando un error 404 de «página no encontrada». Es importante saber que los errores 404 perjudican el posicionamiento de nuestra página web. Así que mucho cuidado con lo de desactivar productos.

Cómo redireccionar productos desactivados a su categoría.

Cuando desactivamos un producto, PrestaShop por defecto no asigna ninguna redirección, dando origen a un erorr 404 «Página no encontrada».

En lugar de ir producto a producto, existe también la posibilidad de desactivar productos masivamente utilizando la opción de «acciones agrupadas» desde el administrador > catálogo, que permiten habilitar o deshabilitar de manera masiva los productos previamente seleccionados. ¡Pero ojo! estaremos generando una aluvión de errores 404.

Desactivar productos con redirección (301 o 302)

Las opiniones sobre cual sea la mejor manera de gestionar los productos desactivados son muchas y variadas y darían para hablar largo y tendido. De todas formas y con carácter general, cuando se desactiva un producto suele ser recomendable redireccionar a un producto similar. Para hacerlo seleccionamos la opción «Redireccionado permanente (301)» y en el campo «Producto relacionado» indicamos un producto similar.

Prestashop. Cómo Redireccionar Productos sin Perder SEO y Evitar Errores 404.

PrestaShop. Cómo Redireccionar Productos sin Perder SEO y Evitar Errores 404.

¿Y si no hay un producto similar? En este caso, la lógica diría de redireccionar a la categoría superior más cercana. Y aquí es cuando no encontramos con otra limitación de PrestaShop, ya que no permite redireccionar un producto desactivado a la categoría de pertenencia. Para resolver esta pequeña inconsistencia, hay que recurrir a un override de un controlador.

Cómo redireccionar productos sin perder SEO y evitar errores 404

Primero tenemos que redireccionar los productos desactivados a la categoría de pertenencia. Este cambio interviene sobre el controlador de producto y está explicado muy bien en el foro de PrestaShop. Lo que hace es redireccionar los productos desactivados a la categoría superior más cercana. Cambio propuesto en el foro, redireccionando los productos a la categoría de pertenencia:

if (!$this->product->id_product_redirected || $this->product->id_product_redirected == $this->product->id) {
		/************************************
		Cuando desactivamos un producto, en lugar de un 404 hacemos un 301 				
		**************************************/
		//$this->product->redirect_type = '404';
		$this->product->redirect_type = '301';
                    }

                    switch ($this->product->redirect_type) {
                        case '301':
                           header('HTTP/1.1 301 Moved Permanently');
                           /************************************
			  En lugar de redirigir a un producto, redirigimos a la categoría de pretenencia
			  **************************************/
			  //header('Location: '.$this->context->link->getProductLink($this->product->id_product_redirected));
			  header("Location: ".$this->context->link->getCategoryLink($this->product->id_category_default));
                          exit;
                        break;
                        case '302':
			  /************************************
			  En caso de un 302, también hacemos un 301
			  **************************************/
                          //header('HTTP/1.1 302 Moved Temporarily');
			  header('HTTP/1.1 301 Moved Permanently');
                          header('Cache-Control: no-cache');
                          header('Location: '.$this->context->link->getProductLink($this->product->id_product_redirected));
                          exit;
                        break;
                        case '404':
                        default:
                            header('HTTP/1.1 404 Not Found');
                            header('Status: 404 Not Found');
                            $this->errors[] = Tools::displayError('This product is no longer available.');
                        break;
                    }

Una vez realizado el cambio, es recomendable borrar la caché de PrestaShop para que el cambio se haga efectivo. Por último, no está demás verificar que las redirecciones que acabamos de crear funcionen correctamente. Para eso podemos utilizar la herramienta gratuita Redirect Checker. Introducimos la URL que hemos cambiado, eliminado o movido y verificamos que la redirecciones creadas estén funcionando.

La comprobación de redirecciones indica que es de tipo 301.

La comprobación de redirecciones indica que es de tipo 301.