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.
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.
20 réponses sur “Réécriture d’URL sous Prestashop et performances”
Excellent billet pour optimiser son SEO sous PrestaShop !
Comme graphiste (joli prénom ?!!), je vous remercie pour l’astuce qui va me servir de ce pas !
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
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 »
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.
Hi…
[…]we came across a cool web-site that you could possibly appreciate. Take a appear if you want[…]…
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 est il possible de faire que le numero de categorie soit a l’arriere du nom et non a l’avant
original
http://mon-url.fr/5-apple
ce que je souhaite faire et avec .html a la fin
http://mon-url.fr/apple-5.html
ceci car je migre d’un autre site vers prestashop et la societe de referencement qui c occuper de mon site ma demander de ne surtout pas modifier mes url
merci de votre aide
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
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 !
Bonjour François,
Plus besoin de l’override en 1.5 car Prestashop a intégré un moteur de règles pour les URLs. Rendez-vous dans Préférences > SEO & URLs > Route vers les produits et supprimez simplement {category:/}.
Matthieu
Bonjour matthieu,
j’ai le problème dans mes ad URL du numéro pour chacun des produits.
exemple :
http://mydegrifrendezvous.com/34-tshirt
J’ai vu la technique que vous indiquez, donc cela va supprimer le numéro 34, (et les autres) c’est bien cela, merci pour votre aide. Pascale
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
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
Bonjour Matthieu,
Merci pour ta réponse mais j’ai toujours le même problème avec 1.5.4.1.