Par Matthieu, Fondateur.

Aujourd’hui, c’est le début des soldes, notamment en ligne, et qui dit solde dit gros trafic ! Vos serveurs sont déjà passés au bord de la mort pendant les fêtes, et bien heureusement malheureusement ce n’est pas terminé !

Comme on est sympa chez 202, nous vous proposons aujourd’hui une technique pour améliorer drastiquement vos performances, si vous modifiez le schéma d’URL de Prestashop !

Pourquoi réécrire les URL de Prestashop ?

Prestashop est relativement bien conçu pour le référencement (en tout cas, mieux que d’autres semble-t-il !), mais il y a tout de même plusieurs points qui nécessitent des améliorations, on attend d’ailleurs beaucoup de Prestashop 1.5 !

Bref, un des points que tous les gourous du référencement vous recommandent, est de modifier le schéma d’URL des fiches produits.

En standard l’URL d’une fiche produit est la suivante :

mon-site.com/dernier-niveau-de-categorie-par-defaut/ID-mon-produit.html

L’objectif est d’obtenir :

mon-site.com/ID-mon-produit.html

Simplifier l’URL de la fiche produit en supprimant la catégorie permet une plus grande flexibilité sur la gestion des catégories.

Module de réécriture d’URL

Il existe des modules pour modifier les URLs Prestashop, notamment URL Rewriting +, mais attention aux performances : à chaque URL réécrite, il y a (au moins) un accès base. Sur la page d’accueil d’un client qui référençait certes beaucoup de produit, ce module était responsable à lui seul de + de 100 requêtes SQL !!!

Supprimer la catégorie dans l’URL de la fiche produit Prestashop avec un override

1 – Si il s’agit de ne pas afficher une info, pas besoin de requêtes SQL supplémentaire,

2 – Les URLs simplifiées sont justement construites par Prestashop, modifier la construction de l’URL de la fiche produit revient à modifier la construction de l’URL simplifiée dans le coeur de Prestashop.

Depuis Prestashop 1.4, il est ainsi possible de modifier le fonctionnement du coeur de Prestashop sans modifier le code directement, on appelle ça l’override (article de Julien Breux à lire sur le blog Prestashop). Cette solution permet de maintenir la possibilité de mise à jour de votre Prestashop, indépendamment de vos modifications au coeur.

Il faut donc modifier la fonction responsable de la construction des URLs des fiches produits (getProductLink) pour supprimer l’ajout de la catégorie. Le résultat est en PJ, à déposer dans votre dossier override/classes.

Link.zip

Ce fichier a été testé avec Prestashop 1.4. Nécessite de vider le cache Smarty.

Attention

1 – L’optimisation d’URL est efficace et recommandée, mais pas indispensable : si vous avez un site qui fonctionne bien et qui est bien référencé, ne modifiez pas votre site uniquement pour améliorer les URLs. En revanche si êtes amenés à modifier votre site, et que les URLs vont changer pour des raisons techniques (contrainte CMS, etc…) , profitez-en pour faire des URLs SEO friendly.

2 – Si vous modifiez vos URLs, attention à les maintenir : c’est à dire renvoyer les anciennes URLs vers les nouvelles. Ne vous lancez pas seul dans ce chantier si vous ne savez pas ce que vous faites.

3 – Le fichier override vous est livré gratuitement sans aucune garantie de la part de 202 ecommerce. Merci de ne pas le redistribuer, mais de faire un lien vers cette page.

25 thoughts

  1. Bonjour,

    la duplication d’url n’existe plus “normalement” puisque la notion de catégorie par défaut est en place. Si votre produit fait partie de 2 catégories, la catégorie par défaut, sera la structure de l’url de votre produit et cela que vous cliquiez sur le produit au départ d’une catégorie ou d’une autre.
    C’est un peu l’équivalent de l’url canonique.

    Maintenant la suppresion de la catégorie peut-être effectivement intéressante, dans le cas ou le nom des produits parlent d’eux même : exemple http://www.monsite.com/idprod-jean-diesel.html ou http://www.monsite.com/idprodmarque-page-mariage.html

    Dans le cas d’un catalogue construit sur des urls à nom de produit exotique : par exemple : cristal motif libellule, le fait de garder dans l’url la catégorie peut-être un plus pour le référence
    http://www.monsite.com/flute-chamapagne/idprod-cristal-motif-libellule.html

    L’url rewriting est un vrai projet au coeur du projet web.

    Et si votre site existant est en cours de migration ou de refonte, il convient d’être extrêment vigilant sur les redirections à préparer, vous devez isoler toutes les urls indéxées et de faire des redirections 301 sur toutes vos positions stratégiques vers la nouvelle url

    • Bonjour Corinne,

      Effectivement avec Prestashop 1.4 et suivants, il n’y a pas le problème de Duplicate Content initialement évoqué dans cet article (avec les anciennes version de Prestashop, une fiche produit pouvait avoir plusieurs URLs). J’ai corrigé mon article, merci de votre remarque !

      Matthieu

  2. Et avec une URL Canonique dans une page avec la catégorie dans l’URL et mieux l’URL sans catégorie, cela n’irait pas ?

    @Corinne : “Graphiste” pour associer le mot graphiste au nom de domaine, principe de base de SEO.
    Sauf que les liens de ce blog sont en “nofollow”, donc cela n’a aucun impact et le lien ne bénéficie pas de la notoriété de 202 :-)

    • Bonjour Frédéric,

      En cas de fiche produit accessible par 2 URLs, on pourrait effectivement ajouter un rel canonical dans la fiche produit qui pointerait vers l’une des URLs.

      Cela dit, je pense que rien ne vaut un schéma d’URL « naturel » parfait, la balise rel canonical n’étant dans ce cas précis qu’une réparation de fortune pour corriger un schéma d’URL imparfait à cause de contraintes techniques, contraintes que l’on pourrait justement abolir facilement. Même remarque que ci-dessus : j’ai mis à jour l’article suite à la précision de Corinne : pas de duplicate possible en Prestashop 1.4 car les fiches produit n’ont qu’une URL.

      Sur ta seconde remarque : … “de l’énorme notoriété de 202”

  3. Bonjour, j’ai testé le fichier link.php, pour finalement décider de ne pas l’utiliser, malgré la suppression du ficher de mon ftp, le régénération du ficher Htaccess ainsi qu’avoir vidé le cache, je n’arrive pas à récupérer les catégorie dans l’url de la page, ni dans le breadcrumb.

    Existe t’il un moyen de revenir donc en arrière et retrouver mes catégories affichées dans l’url ?

    Cordialement,
    Aurell.L

    • Bonjour Aurell,

      Link.php ne modifie rien sur votre Prestashop : pas de cache, pas de mise à jour de base de données, etc… Donc dès que vous le supprimez, le schéma d’URL revient à la normale. Vérifiez donc que vous avez bien supprimé le fichier, c’est tout !

      Attention, si la catégorie par défaut de votre produit est “accueil”, alors il n’y a pas de catégorie dans l’URL.

  4. Bonjour,
    Le duplicate content est toujours présent dans prestashop, au moins dans la version 1.4.6.2
    Dans mon cas tous mes produits générent deux urls: une avec la catégorie du produit et une autre avec l’adresse directe du produit, sans la catégorie donc.
    J’ai beau faire ce que je veux, impossible d’être en paix avec google webmasteurs côté optimisation qui m’indique des centaines d’urls en doubles.
    Cordialement.

    • Bonjour,

      Il faut activer le “renvoi vers l’URL canonique”, cf ma réponse sur votre autre commentaire. Cela dit, ce n’est pas normal que Google ait détecté des URLs non canoniques, il y a probablement des liens internes à votre site qui sont mal faits.

    • Bonjour,

      Il faudrait pour cela faire un override spécifique, vous pouvez nous contacter si vous souhaitez que nous le réalisions.

      Par ailleurs, je suis assez surpris du “surtout pas de modifier les URLs” : si vous changez de technologie, il y a forcément changement d’URL, et pour palier à ce changement normal on utilise habituellement le maintient d’URL, qui permet de limiter très très fortement les perturbations SEO.

      Matthieu

  5. Bonjour,

    Merci pour votre post, l’override est-il actif sur la dernière version de prestashop (1.5.3) ?

    Aucun problème pour réécrire le slug produit, par contre pour supprimer la catégorie ou le content dans l’url…

    Merci pour votre travail et bonne continuation !

  6. Bonjour Pascale,

    Non, cette technique ne permet pas de supprimer l’Identifiant. Si vous trouvez un module le permettant, je vous déconseille par avance son utilisation car il risque de rendre l’affichage des pages produit bien plus lent : le numéro est l’identifiant unique des produits, nécessaire pour l’affichage de ceux ci.

    Matthieu

  7. Bonjour,
    J’ai un souci avec l’url rewriting, j’utilise la dernière version de Prestashop 1.5.4.0
    J’ai activé URL simplifiée
    Quand j’enlève la {category:/} de la Route vers les produits : c.-à-d. {rewrite}-{id}.html au lieu de {category:/}{rewrite}-{id}.html
    Je tombe sur une erreur 404
    En résumé :
    Route vers les produits : {category:/}{rewrite}-{id}.html ca marche http://localhost/pre…pod-nano-1.html
    Route vers les produits : rewrite}-{id}.html ca ne marche pas http://localhost/pre…age-non-trouvee
    J’aurai voulu avoir comme résultat : http://localhost/pre…pod-nano-1.html

    Quelqu’un à une idée, merci d’avance.

    • Bonjour Dekaa,

      Il me semble que vous aillez fait ce qu’il faut faire, il y a donc un problème quelque part. Prestashop est-il bien configuré en URL simplifiées + renvoi vers l’URL canonique ? Avez-vous généré un .htaccess ? Autres options à vérifier : override ? Modules non natifs ?

      Je viens de tester avec 1.5.4.1 et je n’ai aucun soucis. A noter que les URLs générées en Front Office doivent être dans le bon format : inutile de taper un URL à la main si les liens générés par Prestashop ne sont pas corrects, c’est que Prestashop n’est pas bien configuré.

      Matthieu

Laissez un commentaire


*