SEO et URL de vos produits sur PrestaShop 1.7

Vous ne le savez peut-être pas, mais la gestion des URLs des produits a évolué entre la version 1.6 et 1.7 de PrestaShop.

Cette évolution porte sur la structure de l'URL qui intègre toujours la déclinaison par défaut sur les liens produits en 1.7.

Comportement PrestaShop 1.6

Vous aviez des url de cette forme :

domain.tld/summer-dresses/5-printed-summer-dress.html

Puis, lorsque vous changiez de déclinaison vous aviez l'url qui s'adaptait pour afficher les informations de la déclinaison sélectionnée :

domain.tld/summer-dresses/5-printed-summer-dress.html#/16-color-yellow/2-size-m

Bien entendu l'url initiale aussi appelée url canonique (canonical url) affiche toujours la déclinaison par défaut sélectionnée lors de la génération des déclinaisons du produit.

De mémoire, ce comportement fut introduit à partir de la version 1.5 de PrestaShop afin de permettre d'avoir une url unique par déclinaison facilitant le partage de fiche produit ainsi que l'envoie de ces informations sur les comparateurs de prix.

Comportement PrestaShop 1.7

Avec l'arrivée de cette nouvelle version, le choix fut fait de toujours intégrer les informations de déclinaisons dans l'url des produits.

domain.tld/art/4-16-affiche-encadree-the-adventure-begins.html#/19-dimension-40x60cm

Pas top, top au niveau SEO.

Ces urls sont visibles sur tous les listings de catégorie, si vous modifiez la déclinaison par défaut sur un produit son url change bien que nous soyons toujours sur le même produit.

Mais, suite à une discussion avec les membres de Friends of Presta j'ai pu identifier une astuce simple à mettre en oeuvre pour revenir au comportement précédent et faciliter la migration entre la version 1.6 et 1.7 de PrestaShop en terme de référencement.

La solution à mettre en oeuvre

Pour ce faire, il vous suffit d'ouvrir le fichier affichant les produits dans les listings disponibles dans votre thème.

themes/votre_theme/templates/catalog/_partials/miniatures/product.tpl

Dans ce fichier vous allez simplement remplacer tous les appels au code

{$product.url}

par celui-ci

{$product.canonical_url}

Enregistrez la modification et pensez à vider votre cache dans le menu Performances

Et profitez du résultat.

Je ne sais pas si cela changera grandement votre positionnement sur les moteurs de recherche mais en tout cas, ce comportement est plus cohérent.

Je n'ai pas testé sur de vieilles versions de PrestaShop 1.7 alors n'hésitez pas à commenter avec votre numéro de version si cela a fonctionné chez vous.