Bien que peu connue, l’url canonique est très utile pour le SEO de votre prestashop.
Dans cet article, je vous explique comment résoudre les problèmes liés aux urls canoniques sous Prestashop.
Avant de débuter votre lecture, si vous souhaitez améliorer le SEO de votre boutique en ligne, téléchargez gratuitement notre livre blanc seo.
Comment activer les urls canoniques sur Prestashop ?
Normalement vous devriez pouvoir activer ou désactiver les urls canoniques via l’option “Rediriger vers l’URL canonique” que vous trouverez dans le menu “Paramètres de la boutique” > Trafic et SEO > SEO & URL”
En réalité, ce réglage semble ne servir à rien, car peu importe l’option que vous choisissez, les urls canoniques seront activées dans votre Prestashop.
Ne nous attardons donc pas plus longtemps sur cette partie car, à priori, il n’y a aucune raison valable de désactiver les urls canoniques.
Prestashop gère “presque” correctement les urls canoniques
Malheureusement, Prestashop n’implémente que partiellement les urls canoniques.
Si les catégories et fiche produits de votre boutique auront une url canonique, ce n’est pas le cas des autres pages.
Sur les pages dont le potentiel SEO est faible, comme les pages contacts ou à propos, ce n’est pas dramatique.
Mais cela devient handicapant pour les pages que vous souhaitez voir bien positionnées dans Google comme vos pages CMS, fournisseurs ou vos marques.
À cela s’ajoute la page d’accueil qui elle non plus ne profite pas d’une url canonique par défaut.
Comment résoudre les problèmes d’url canonique de Prestashop ?
Deux solutions s’offrent à vous pour avoir des urls canoniques sur toutes vos pages.
La première, réservée aux personnes qui maîtrisent le code, vous demandera de créer un override du controller qui gère votre type de page.
Solution 1 : Créer un override pour ajouter la balise rel canonical
Voici un exemple pour ajouter l’url canonique sur vos pages CMS :
1) Créer (ou modifier s’il existe déjà) le fichier : “override\controllers\front\CmsController.php”
2) Et ajoutez-y le code suivant :
<?php class CmsController extends CmsControllerCore { public function getTemplateVarPage() { // On récupère les données ranvoyées par la fonction originale $page = parent::getTemplateVarPage(); if (isset($this->cms->id)) { // On test si on est sur une page CMS $page['canonical'] = $this->context->link->getCMSLink($this->cms, $this->cms->link_rewrite, $this->ssl); } elseif ($this->cms_category->id) { $page['canonical'] = $this->context->link->getCMSCategoryLink($this->cms_category, $this->cms_category->link_rewrite); } // et on retourne simplement le résultat de la fonction pour qu'il soit exploité return $page; } }
Merci à Tanguy pour ce bout de code 😉.
3) Videz le cache de Prestashop
Désormais vos pages CMS et vos catégories CMS devraient bénéficier, elles aussi, d’une balise canonical.
Solution 2 : Utiliser un module pour ajouter vos urls canoniques.
Bien plus rapide, plus simple et moins risqué si vous ne maîtrisez pas le code, l’installation d’un module vous permettra de corriger les problèmes cités plus haut.
Le module de Linea grafica fait très bien le job !
Comment ajouter des urls canoniques aux déclinaisons de produit ?
Si vous utilisez le système de déclinaison classique de Prestashop, c’est-à-dire que toutes vos déclinaisons d’un même produit sont accessibles via une seule fiche produit, vous n’avez rien de particulier à faire.
Si par contre, vous avez fait le choix de créer une fiche produit distincte par déclinaison alors vous risquez de créer du duplicate content qui peut pénaliser votre référencement.
Germain de Webbax a proposé un début de solution gratuite dans une vidéo ici, mais si vous avez beaucoup de déclinaison à gérer vous risquez rapidement de vous arracher les cheveux.
En effet, avec les explications de Germain vous devez systématiquement aller dans le code pour ajouter une nouvelle url canonique pour une de vos déclinaisons.
Donc à moins d’être capable de terminer le code en créant les controllers admin adéquats, il y a peu de chance que vous puissiez utiliser cette solution.
Le plus simple est encore une fois de vous tourner vers le module de Linea Grafica qui vous permet de spécifier directement dans vos fiches produits l’url canonique du produit.
Comment vérifier vos url canoniques ?
Maintenant que vous avez utilisé une des solutions ci-dessus, il ne vous reste plus qu’à vérifier que vos url canonique sont bien présentes sur vos pages.
Voici deux solutions.
Trouvez l’url canonique dans le code html.
Simple, mais efficace, vous pouvez tout simplement rechercher dans le code de votre page pour voir si vous trouvez bien l’url canonique
1) Faite un clic droit sur votre page et cliquez sur “Afficher le code source de la page”
2) Faites CTRL + F et tapez le mot “canonical” (sans les guillemets)
3) Vous devriez voir le mot en surbrillance et à côté l’url canonique.
Trouvez l’url canonique avec une extension SEO.
Parfois le code d’un site est assez difficile à lire, dans ce cas, vous pouvez utiliser une extension chrome dédiée au SEO.
Il en existe un grand nombre et personnellement j’utilise la seo tool bar d’Ahrefs.
Avec cette extension vous saurez en 2 clics qu’elle est l’url canonique de n’importe quelle page.
1) Cliquez sur l’icone Ahrefs dans votre navigateur.
2) Cliquez sur “Indexability”
3) Ahrefs vous affiche l’url canonique.
Voilà, vous savez tout sur les url canoniques pour prestashop.
Si le référencement fait partie de vos préoccupations, je vous invite à télécharger gratuitement notre livre blanc SEO, pour y découvrir la méthode que l’on utilise pour atteindre les premières positions sur Google.
Passionné d’e-commerce et de SEO, je suis le créateur du site reussir-mon-ecommerce.fr. Depuis plus de 15 années, j’aide les e-commerçants à développer sainement leur entreprise. Et si je ne suis pas devant mon écran, c’est que je suis derrière ma batterie à jouer du rock ! !
Bonjour,
Article vraiment top!!!
Par contre, si on veut rajouter l’url canonique aux pages d’un de nos modules sur prestashop 1.7 comment on fait ?
Hello Nina,
je n’ai pas encore eu besoin de le faire donc là je ne peux pas vous aider, sorry 😉