Jump to content

[Résolu] Produits désactivés et supprimés en 404


Recommended Posts

Bonjour,

 

C'est un sujet qui a déjà été abordé mais j'aimerais votre avis sur mon cas précis. Je vends des produits d'occasion (qté=1, toujours) donc dès que le produit est vendu, je le désactive et ensuite je le supprime et évidemment j'obtiens un tas (même un gros tas :) de 404 dans les GWT.

 

Comment gérer cela ? j'ai vu qu'il est possible de placer les produits dans une catégorie "poubelle" désactivée tout en laissant les produits eux-mêmes activés. Mais cela va faire grossir mon nb de produits à l'infini.

 

Quelle est pour vous la meilleure solution ? Le fait d'avoir un nb important de 404 affaiblit-il le référencement ?

 

L'idéal peut-être pour moi serait de rediriger les visiteurs vers la liste produit de la catégorie ou était le produit concerné. Mais c'est plus facile à dire qu'à faire !!! Qu'en pensez-vous ?

 

Merci de votre précieuse aide.

 

PS : 1.4.6.2

Edited by kiteman (see edit history)
Link to comment
Share on other sites

le fait d'avoir une erreur 404 sur un nombre important de pages empêche en effet un référencement efficace du fait que les moteurs sont en attente de savoir où se trouve la page.

 

le plus simple me semble e t il serait de faire une redirection 301 des url des produits qui n'existent plus vers d'autres url de produits similaire qui sont encore.

Link to comment
Share on other sites

Bonjour,

 

Merci labelandco pour ta réponse rapide. Effectivement c'est bien ce que j'essaie de faire, mais je me vois mal ajouter des redirections à la mano dans htaccess pour plusieurs centaines de produits et d'autres à venir tous les jours. C'est pour cela que je recherche une solution plus globale pour effectuer une redirection vers la page de la catégorie du produit absent, plutôt qu'un 404.

 

J'ai bien trouvé un module pour cela mais qui ne s'adresse qu'aux produits désactivés (pas les supprimés)

 

Je pense que dans le code, il va falloir intervenir sur le productcontroller.php

 

/*			  * If the product is associated to the shop
		  * and is active or not active but preview mode (need token + file_exists)
		  * allow showing the product
		  * In all the others cases => 404 "Product is no longer available"
		  */
		 if (!$this->product->isAssociatedToShop()
		 || ((!$this->product->active && ((Tools::getValue('adtoken') != Tools::encrypt('PreviewProduct'.$this->product->id))
		 || !file_exists(_PS_ROOT_DIR_.'/'.Tools::getValue('ad').'/ajax.php')))))
		 {
			 header('HTTP/1.1 404 page not found');
			 $this->errors[] = Tools::displayError('Product is no longer available.');
		 }
		 else if (!$this->product->checkAccess(isset($this->context->customer) ? $this->context->customer->id : 0))

 

Mais là, je bloque.

Link to comment
Share on other sites

Plusieurs pistes:

 

- La balise Meta Expires

- Passer tes fiches produits en noindex puisqu'elles bougent rapidement et n'indexer que tes pages catégories

- Ne pas supprimer les fiches, mais ne pas les afficher dans les résultats des visiteurs, donc qu'elles n'apparaissent pas quand les visiteurs visitent une catégorie ou font une recherche... (là faut coder ou créer cette catégorie "tampon" dont tu parlais)

Edited by -stephane (see edit history)
Link to comment
Share on other sites

Merci Stéphane pour cette réponse.

 

C'est délicat de ne pas indexer car il y a des produits qui partent vite et d'autres qui séjournent plusieurs semaines, voire mois.

Ne pas les supprimer, j'y ai pensé mais dans ce cas le visiteur se retrouve par le lien Google vers un produit indisponible à la vente. Pas top.

 

En tout cas cela me permet d'avancer dans ma réflexion. Merci pour ton avis.

Link to comment
Share on other sites

Merci Stéphane pour cette réponse.

 

C'est délicat de ne pas indexer car il y a des produits qui partent vite et d'autres qui séjournent plusieurs semaines, voire mois.

Ne pas les supprimer, j'y ai pensé mais dans ce cas le visiteur se retrouve par le lien Google vers un produit indisponible à la vente. Pas top.

 

En tout cas cela me permet d'avancer dans ma réflexion. Merci pour ton avis.

 

Donc un produit vendu ne reviendra jamais en ligne?

 

J'ai pas vu ton site mais partons du principe que tu vendes une Renault Mégane 1994 verte (oué j'aime bien être précis dans mes exemples), la voiture est vendue, mais 6 mois plus tard tu as à nouveau une autre Renault Mégane 1994 verte.

 

Que fais tu? Tu réactives la fiches ou tu en crées une nouvelle?

 

Parce que dans ces cas:

- Si tu réactives la fiche il faudrait créer une redirection 302 vers la catégorie concernée pour renvoyer tes visiteurs Google vers les autres produits de la catégorie. (302= redirection temporaire, tu peux réactiver la fiche plus tard)

- Si tu crées une nouvelle fiche, il faut que l'ancienne fasse une redirection 301 vers la catégorie concernée. (301 = redirection permanente, la fiche ne sera plus jamais indexée par Google)

 

Faudrait un module pour gérer ça automatiquement, si quantité = 0 alors redirection 301 ou 302 vers catégorie.

 

Je m'avance hein, je suis référenceur, pas dév, mais sache que mon agence est certifiée prestashop et n'est pas constituée que d'un référenceur sympa et beau garçon (huhu...) mais est dotée de 2 très bons dévs qui font du custom si besoin. Je peux leur demander de faire un devis pour ça si tu le souhaites.

Edited by -stephane (see edit history)
Link to comment
Share on other sites

Effectivement Stéphane, tu as parfaitement résumé la situation. :)

 

Dans mon cas, je recrée une nouvelle fiche, donc, je cherche à rediriger vers l:a catégorie par défaut, du produit.

 

J'ai déjà un peu avancé sur le sujet. Mais je garde ta proposition sous le coude et manquerai pas de te faire appel si besoin.

 

Merci

Link to comment
Share on other sites

  • 3 months later...

Pour moi après plusieurs réflexions je pense avoir trouvé ce qu'il faut (je répète pour moi).

 

Je vais tout simplement mettre les produits hors stock avec un message: Ce produit à été victime de son succès, mais n'hésitez pas à consulter nos nombreux autres produits.

 

Au moins le client qui tombe dessus à un contenu, il est sur le site, et google ne balancera pas des 404 à tout va.

 

Après il y a la solution de balancer sur une page type avec le bloc recherche cela peut être sympa mais il faut se taper toutes les redirections 301.

Edited by hitechstore (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

Pour ma part, j'ai donc surchargé le productcontroller.php en remplaçant le code du 404 par un 301 et une redirection vers la catégory par défaut.

 

 

  if ((!$this->product->active AND (Tools::getValue('adtoken') != Tools::encrypt('PreviewProduct'.$this->product->id))
   || !file_exists(dirname(__FILE__).'/../'.Tools::getValue('ad').'/ajax.php')))
  {
  $url=self::$link->getCategoryLink($this->product->id_category_default);
  header('Status: 301 Moved Permanently', false, 301);
  header("Location: ".$url);

  }
  elseif (!$this->product->checkAccess((int)self::$cookie->id_customer))
   $this->errors[] = Tools::displayError('You do not have access to this product.');
  else

Edited by kiteman (see edit history)
  • Like 2
Link to comment
Share on other sites

  • 2 months later...

Dures, dures les redirections URL. Obligé de se taper le .htaccess, y compris pour des centaines de redirections.

 

Sur Joomla, y a un module fourni de base complétement opérationnel pour gérer tout ça (et heureusement d'ailleurs !).

 

J'hallucine pour un CMS du niveau de Prestashop !

Pas un module de base pour faire un truc si important (ou alors je dois être c** et j'ai rien compris au web).

 

Le pire, c'est qu'il n'y a même pas un module commercial pour faire ça !!!! J'hallucine ... :blink: :blink:

Link to comment
Share on other sites

  • 11 months later...

Pour ma part, j'ai donc surchargé le productcontroller.php en remplaçant le code du 404 par un 301 et une redirection vers la catégory par défaut.

 

 

   if ((!$this->product->active AND (Tools::getValue('adtoken') != Tools::encrypt('PreviewProduct'.$this->product->id))
    || !file_exists(dirname(__FILE__).'/../'.Tools::getValue('ad').'/ajax.php')))
   {
   $url=self::$link->getCategoryLink($this->product->id_category_default);
   header('Status: 301 Moved Permanently', false, 301);
   header("Location: ".$url);
  
   }
   elseif (!$this->product->checkAccess((int)self::$cookie->id_customer))
    $this->errors[] = Tools::displayError('You do not have access to this product.');
   else

salut

 

comment tu fais pour surcharger? tu peux me donner le fichier en question mais en ramplancant 301 par 302 (temporaire)

 

merci

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...