Jump to content

Changement url produit et redirection auto


Recommended Posts

Bonjour,

 

J'ai remarqué que si l'on change l'url d'un produit, l'ancienne url redirige vers la nouvelle.

 

En fait j'utilise store commander qui m'a fait faire une bêtise. Store commander permet d'éditer en masse des produits mais le soucis c'est que lorsque vous changer le nom d'un produit store commander fait la bêtise de changer l'url réécrite du produit.

 

Est-ce préjudiciable niveau référencement (en sachant que Prestashop en natif à l'air de rediriger mes anciennes url produit vers les nouvelles url) ?

 

D'avance merci

Share this post


Link to post
Share on other sites

Bonjour,

 

Prestashop n'utilise que l'id produit dans l'url pour afficher le produit donc le nom peut changer indéfiniment sans jamais avoir d'incidence sur l'affichage du produit.

 

Si vous mettez à jour régulièrement votre sitemap alors Google remplacera les anciennes url par les nouvelles, cela ne devrait pas avoir trop d'influence sur le référencement, mais si un référenceur expérimenté passe par ici j'aimerais bien aussi connaître son avis.

Share this post


Link to post
Share on other sites

Merci Jeckyl

 

Donc Prestashop se sert uniquement de l'ID produit pour l'affichage de la fiche produit. Bon à savoir

 

En même temps ce ne sont que des url produits donc pas si grave que cela niveau positionnement, ça serait un problème si mes url catégories aient été changés.

Mais comme toi j'aimerais aussi avoir l'avis d'un référenceur de metier.

 

En tous cas, store commander ont fait une sacrée bourde a ce niveau la... Changer le nom d'un produit change son url alors qu'il me semble que sur presta en natif, changer le nom d'un produit ne change pas son url...

Share this post


Link to post
Share on other sites

  • 2 weeks later...

Bonjour

 

La problématique est un peu plus complexe. Dans les anciennes versions de Prestashop (de manière certaine jusqu'à la v1.3.1 - j'ai pas de boutiques en versions ultérieures) cela posait un gros soucis de duplicate content, puisque l'on pouvait avoir n'importe quoi derrière l'ID de produit par exemple sur les pages produit.

 

J'avais présenté le truc lors du premier Barcamp en 2009, et apporté une solution technique (consistait à vérifier à chaque appel de page l'URL théorique et à la comparer avec l'URL appelée... et le cas échéant faire une redirection HTTP 301 !)

 

Dans les dernières versions cela semble corrigé, "intégré" à Prestashop (c'est le cas sur ta boutique en tout cas)

 

Le seul problème restant est que l'on peut inclure des variables bidon derrière les URL : par ex. taboutique.com/categorie/123-nom-du-produit.html?icinimportequoi&encorenimportequoi

 

Comme tu n'as pas de balise Canonical, ça "peut" poser problème. En fait ça en pose un dans tes pages catégories ! En effet, quand tu tries une catégorie, tu as des variables d'URL... qui font que la page est très fortement similaire (quasi même contenu, éventuellement ordonnancé différemment) mais avec deux URL différentes !

 

Je te mets ma main à couper que tu as des "doublons" dans les Google Webmaster Tools au niveau des titres des des descriptions de pages... CQFD

 

La solution est soit de coder tout ça, soit de passer par un module (il en existe, mais je ne sais pas ce que ça donne avec les dernières versions de Prestashop : je "reviens" sur Prestashop depuis quelques jours seulement !)

Share this post


Link to post
Share on other sites

Dernière chose :

 

Pour remédier en très grande partie à ton p'tit problème, deux choses à faire :

  • ajouter une balise Rel Canonical (en principe il y a un module intégré à Prestashop pour ça) qui contiendra l'URL sans aucun paramètre d'URL
  • pour les pages avec paramètres d'URL (ex : pagination, tris, etc.) passer en "noindex,follow" au niveau de la balise Meta Robots

Voilà :)

Share this post


Link to post
Share on other sites

  • pour les pages avec paramètres d'URL (ex : pagination, tris, etc.) passer en "noindex,follow" au niveau de la balise Meta Robots

 

 

Bonjour à vous,

 

Mais comment faire ?

 

Je me casse la tête avec ça depuis 2 semaines. Google ne tien compte 'apparament' des directives de restriction qu'on lui donne (via robot.txt, Sitemap et configuration dans le Webmastertool) que le temps de passer sur la page en question ou il découvre 'INDEX/FOLLOW'.

 

Il y a bien un test logique à mettre quelque part ou un module pour gérer les 'orderby' 'orderway' 'p' 'n' 'content'

Share this post


Link to post
Share on other sites

Bonjour

 

Une méthode simple consiste à créer une variable Smarty dans le fichier header.php à la racine de ta boutique.

 

Par exemple (à ajouter juste après la ligne require_once(dirname(__FILE__).'/init.php'); ) :

 

/* Gestion des pages catégories */
if (isset($_GET['id_category']) AND Validate::isUnsignedId($_GET['id_category']))
{
// Nous sommes sur une page catégories
$cookie = new Cookie('ps');
Tools::setCookieLanguage();
$category = new Category(intval(Tools::getValue('id_category')), intval($cookie->id_lang));
if (Validate::isLoadedObject($category) AND $category->active)
{
	$n=$_GET['n'];
	$orderby=$_GET['orderby'];
	$orderway=$_GET['orderway'];
	$p=$_GET['p'];

	$hasvarinurl=((isset($n))||(isset($orderby))||(isset($orderway))||((isset($p))&&($p>1)))?1:0;


	if($hasvarinurl==1) {
		// Non indexation de l'URL
		$smarty->assign('nobots2', 1); // Placera un "noindex,follow" dans la balise meta robots
	};
}
}

 

Cela permet de définit une variable "nobots2" (afin de ne pas interférer avec l'existante) que l'on va ensuite lire dans le header.tpl du thème, où la ligne de la balise Meta Robots devient donc :

 

{if isset($nobots) OR isset($nobots2)}
<meta name="robots" content="noindex,follow" />
{else}
<meta name="robots" content="index,follow" />
{/if}

 

Ainsi, toutes les pages de catégorie avec l'un des paramètres dans l'URL passera en "noindex,follow".

 

Bien évidemment, c'est une technique minimaliste car pour ma part, je teste et reconstitue l'URL théorique à chaque appel de page, ce qui permet de la comparer avec l'URL appelée.

 

Code valable pour Prestashop 0.9x beta à 1.3.x (je ne l'ai pas testé sur les v1.4.x... Pas encore !) : désolé, je reviens seulement sur Prestashop, après une grosse année de "pause" !

Share this post


Link to post
Share on other sites

Bonjour Cédric, merci de votre réponse c'est vraiment sympathique.

 

J'ai ajouté le code dans le header.php. Mais à la suite de :

 

$controller = new FrontController();
$controller->displayHeader();
if (isset($_GET['id_category']) AND Validate::isUnsignedId($_GET['id_category']))
{
   // Nous sommes sur une page catégories
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $category = new Category(intval(Tools::getValue('id_category')), intval($cookie->id_lang)) \...\

 

Comme vous le constatez dans la 1.4.x.x il n'y à plus de : require_once(dirname(__FILE__).'/init.php');

Mais l'idée du 'nobot2, me plais bien cela dit.

 

J'ai essayé sans grande conviction, car j'avais déjà testé vos solutions au travers de votre Blog et de vos anciens poste (presque un fan) mais sans résultat. Cela ne marche pas.

 

j'ai également essayer de placer simplement des tests genre :

$smarty->assign('nobots', 1);

 

Sans résultat non plus.

 

Je commence à croire que je cours après une chimère ;)

 

Toute idée demeure la bien venue.

Share this post


Link to post
Share on other sites

Je vais prochainement me pencher sur la v1.4... Il faut dire que l'équipe Prestashop y a intégré (d'après ce que j'ai vu) un contrôle des URL à la volée - ce que je faisais à l'époque - mais sans aller jusqu'au bout des choses, et plus particulièrement en matière de paramètres d'URL et de synchronisation avec les balises Rel Canonical et Meta Robots.

 

C'est déjà un bon progrès, mais il reste quelques petites choses à peaufiner :)

Share this post


Link to post
Share on other sites

J'ai trouvé comment faire au final,

Il faut 'surcharger' le FrontController.php avec votre bout de code.

en modifiant directement le FrontController.php, ça marche (je n'ai pas encore fait le débogage).

Donc pour que se soit plus 'propre' il suffi de trouver comment surcharger le FrontController.php plutôt que de le modifier.

Merci de votre aide et de votre code Cédric.

Share this post


Link to post
Share on other sites

  • 5 weeks later...

Je me permets de m'incruster vu que mon problème a l'air similaire.

J'ai fais une refonte de toutes mes balises title et url.

Le problème, c'est que les anciennes urls (qui renvoient bien vers la nouvelle) sont toujours présentes sur google.

Que ça soit pour les catégories ou pour les produits...

Est-ce préjudiciable pour le référencement? Car le webmaster tools de google me remonte bien les balises titles en double...!

Share this post


Link to post
Share on other sites

elles seront présentes pendant un petit bout de temps car le cache de Google ne se vide pas forcément tous les jours.

 

Pour ce qui est du référencement rien a craindre, Les moteurs de recherche ne pénaliseront pas ce genre de dupli car ils font bien la différence entre un double volontaire destinée a tromper et un changement d'url.

Share this post


Link to post
Share on other sites

  • 1 month later...

bonjour,

 

j'avais mon site en français et en espagnol, maintenant il n'est qu'en français depuis hier, mais sur google en référencement naturel il apparaît toujours avec /fr alors que cela n'est plus la peine

 

ex avant : www.mapetitecarla.com/fr

ex maintenant : www.mapetitecarla.com

mais sur google il apparaît toujours www.mapetitecarla.com/fr et quand les personnes cliquent cela les renvoi sur une page d'erreur sur mon site

Comment faire pour qu'il apparaisse et surtout que cela redirige sur www.mapetitecarla.com

 

Cdt

Share this post


Link to post
Share on other sites

  • 3 weeks later...

@bailaor : il te fait dans un premier temps désactiver les langues "en trop" si ce n'est déjà fait dans Outils > Langues.

 

Ensuite, si tes internautes se retrouvent redirigés depuis Google vers la page www.mapetitecarla.com/fr, place dans ton fichier .htaccess (outils > Générateur) la ligne suivante :

RedirectPermanent /fr http://www.mapetitecarla.com/

 

Attention, le jour où tu remettras une autre langue il faudra bien penser à supprimer cette directive, au risque de voir ta page d'accueil en français boucler indéfiniment.

 

Essaie également de taper dans google la requête suivante pour voir si Google a encore dans ses index ta page /fr :

site:www.mapetitecarla.com/fr

 

Si aucun résultat, ça veut dire que Google a fait le ménage et que la situation sur ton site reviendra rapidement à la normale. Sinon, la redirection 301 devrait permettre d'accélérer les choses.

 

EDIT : je viens de tester, et je vois que ton site conserve le /fr ; Donc forcément Google doit encore l'avoir dans ses index :P

 

++

Share this post


Link to post
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More