Canonical e-commerce : gérer variantes, filtres, pagination
Le canonical est souvent mal utilisé sur les sites e-commerce. Voici les 4 cas concrets (variantes, filtres, pagination, langues) avec la bonne implémentation.

Canonical e-commerce : gérer variantes, filtres, pagination
La balise <link rel="canonical"> est l'un des outils SEO les plus puissants — et les plus mal utilisés sur les sites e-commerce. Bien configurée, elle résout le contenu dupliqué, concentre l'autorité SEO, et permet de gérer proprement les milliers d'URLs techniques qu'un catalogue génère.
Voici les 4 cas concrets qu'on rencontre sur 90 % des boutiques, et la bonne implémentation pour chacun.
Le self-referential canonical : la base
Chaque page de votre site doit avoir un canonical qui pointe vers elle-même. C'est contre-intuitif au début, mais c'est la règle.
<!-- Page: https://example.com/products/chaussure-derby -->
<link rel="canonical" href="https://example.com/products/chaussure-derby" />
Pourquoi :
- Signale à Google que cette URL est la version de référence (pas une copie, pas une variante)
- Protège contre les paramètres parasites (UTM, tracking, etc.) : si quelqu'un lie
/products/chaussure-derby?ref=newsletter, Google voit le canonical et sait que la vraie URL est la version propre - Permet de normaliser les URLs avec/sans trailing slash, avec/sans www, http vs https
Sans canonical, Google doit deviner quelle URL canoniser, et ses choix ne sont pas toujours optimaux.
Cas 1 — Variantes de produits
C'est le cas le plus fréquent. Un produit avec 5 couleurs × 4 tailles = 20 variantes. Chaque variante a potentiellement une URL distincte :
/products/chaussure-derby ← produit parent
/products/chaussure-derby?variant=12345 ← variante 44 noir
/products/chaussure-derby?variant=12346 ← variante 45 noir
/products/chaussure-derby?variant=12347 ← variante 44 marron
Sur la plupart des plateformes (Shopify, WooCommerce), les variantes changent le prix et les images affichées mais ne créent pas de vraie nouvelle page — juste la même page avec un state différent.
Implémentation canonical :
<!-- Sur TOUTES ces URLs, le canonical pointe vers le parent -->
<link rel="canonical" href="https://example.com/products/chaussure-derby" />
Même si l'URL actuelle est ?variant=12346, le canonical est la version sans paramètre. Google concentre tout le "link juice" sur l'URL parent, et les variantes n'apparaissent jamais dans les SERP.
Erreur fréquente : laisser chaque variante se "self-canonical" avec son propre paramètre. Résultat : Google voit 20 pages quasi-identiques et n'en ranke aucune correctement.
Cas 2 — Variantes avec pages distinctes
Si votre catalogue traite les variantes comme des pages à part entière avec URLs propres (ex: /products/chaussure-derby-noir-44), la logique change.
Si les variantes ont un contenu SEO distinct (titre différent, description adaptée, reviews distinctes) :
- Self-referential canonical sur chaque variante
hreflangou logique de liens internes pour faire le lien entre elles
Si les variantes partagent 90 %+ du contenu :
- Canonical vers une variante "principale" (généralement la plus populaire)
- Ou canonical vers le produit parent générique
Exemple :
<!-- /products/chaussure-derby-noir-44 -->
<link rel="canonical" href="https://example.com/products/chaussure-derby-noir" />
<!-- /products/chaussure-derby-noir-45 -->
<link rel="canonical" href="https://example.com/products/chaussure-derby-noir" />
Résultat : Google indexe chaussure-derby-noir comme version canonique, les pointures spécifiques n'apparaissent pas en SERP.
Cas 3 — Pagination de catégories
Vous avez une catégorie "Chaussures" avec 200 produits, paginée en 10 pages :
/collections/chaussures ← page 1
/collections/chaussures?page=2 ← page 2
/collections/chaussures?page=3 ← page 3
Approche 2026 (post rel=next/prev) :
Google a déprécié le support de rel=next/prev en 2019. La meilleure pratique aujourd'hui :
<!-- Sur /collections/chaussures -->
<link rel="canonical" href="https://example.com/collections/chaussures" />
<!-- Sur /collections/chaussures?page=2 -->
<link rel="canonical" href="https://example.com/collections/chaussures?page=2" />
<!-- Sur /collections/chaussures?page=3 -->
<link rel="canonical" href="https://example.com/collections/chaussures?page=3" />
Chaque page est self-referential — elles contiennent du contenu différent (produits différents), donc elles méritent d'être indexées séparément.
À ne PAS faire : canonical toutes les pages paginées vers la page 1. C'est une erreur fréquente. Résultat : Google n'indexe que la page 1, vos produits en page 3-10 deviennent invisibles.
Cas 4 — Filtres à facettes
C'est le cas le plus complexe. Une catégorie avec filtres :
/collections/chaussures ← non filtré
/collections/chaussures?color=noir ← filtré couleur
/collections/chaussures?color=noir&size=44 ← filtré couleur + taille
/collections/chaussures?sort_by=price-asc ← trié par prix
Trois stratégies possibles :
Stratégie 1 — Canonical toutes les variantes filtrées vers la catégorie parent
<!-- Sur /collections/chaussures?color=noir -->
<link rel="canonical" href="https://example.com/collections/chaussures" />
Simple. Convient si vous ne voulez pas indexer les pages filtrées. Perte : les requêtes "chaussures noires" ne rankeront pas vers la bonne page filtrée.
Stratégie 2 — URLs propres pour filtres importants, canonical self
Pour les combinaisons à fort volume de recherche, créer des URLs propres :
/collections/chaussures-noir
/collections/chaussures-noir-homme
Chaque URL a son self-referential canonical, et les URLs avec paramètres (?color=noir) canonicalent vers ces versions propres.
Stratégie 3 — Bloquer les URLs filtrées via robots.txt
Ne pas laisser Google les crawler du tout. Voir robots.txt e-commerce.
Recommandation : Stratégie 2 pour les filtres commercialement importants, Stratégie 3 pour les combinaisons infinies.
Canonical et i18n : ne pas confondre avec hreflang
Piège classique. Vous avez une page FR et sa traduction EN :
/fr/products/chaussure-derby
/en/products/leather-derby-shoes
❌ Erreur : mettre un canonical de la version EN vers la version FR.
<!-- Sur /en/products/leather-derby-shoes -->
<link rel="canonical" href="https://example.com/fr/products/chaussure-derby" />
Conséquence : Google ignore la version EN, pense que c'est un duplicate de FR, n'indexe pas.
✅ Bonne pratique : chaque page localisée a son propre canonical + hreflang.
<!-- Sur /en/products/leather-derby-shoes -->
<link rel="canonical" href="https://example.com/en/products/leather-derby-shoes" />
<link rel="alternate" hreflang="en" href="https://example.com/en/products/leather-derby-shoes" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/products/chaussure-derby" />
Voir notre guide complet hreflang e-commerce multilingue.
Implémentation par plateforme
Shopify
Shopify génère un canonical automatiquement sur chaque produit, pointant vers l'URL propre sans paramètres. Généralement correct par défaut. Vous pouvez overrider via le template :
<!-- theme.liquid dans le <head> -->
<link rel="canonical" href="{{ canonical_url }}" />
Pour les URLs avec variantes en paramètre, Shopify canonise correctement par défaut.
WooCommerce
Pas de canonical natif sur toutes les pages. Les plugins SEO (Yoast, RankMath, AIO SEO) gèrent ça. Tous font un self-referential canonical par défaut, avec option de personnalisation par page.
Vérifiez via un site: dans Google ou avec Screaming Frog que chaque URL de votre site a un canonical et qu'il pointe vers la bonne URL.
Headless
Génération manuelle dans le composant de chaque page. Sur Next.js avec generateMetadata, le champ alternates.canonical gère ça proprement.
Audit canonical en 15 min
Étapes :
- Crawl avec Screaming Frog : rapport "Canonical" identifie toutes les URLs et leurs canonicals
- Filtrez les anomalies :
- URLs sans canonical → à corriger
- Canonicals vers une URL 4xx ou 5xx → à corriger
- Canonicals en chaîne (A → B → C) → à simplifier en A → C directement
- Pages en
noindexavec un canonical → contradiction à résoudre
- Vérifiez les variantes : pour 10 produits avec variantes, vérifiez que toutes les URLs de variantes ont un canonical correct
- Vérifiez la pagination : pour chaque catégorie paginée, vérifiez self-reference sur chaque page
FAQ
Une page sans canonical est-elle pénalisée ?
Pas directement, mais elle est à risque. Google choisit sa propre URL canonique, qui peut ne pas être celle que vous voulez. Sur une boutique e-commerce, toujours définir le canonical explicitement.
Le canonical est-il respecté par Google à 100 % ?
Non. Le canonical est un signal, Google peut l'ignorer si il estime qu'une autre URL est plus appropriée. Les raisons fréquentes : canonical vers une page de qualité inférieure, vers une page avec moins de backlinks, ou contradiction avec d'autres signaux (hreflang, internal linking).
Puis-je avoir plusieurs canonical sur une page ?
Non. Une seule balise <link rel="canonical"> par page. Si plusieurs sont présentes, Google ignore la directive entièrement.
Canonical vs 301 : quelle différence ?
301 est une redirection physique : l'utilisateur et le bot sont envoyés sur une autre URL. Canonical laisse l'URL actuelle accessible mais signale qu'une autre est la version de référence. Utilisez 301 pour les URLs définitivement déplacées, canonical pour les duplicates intentionnels (variantes, paramètres).
Une page avec canonical vers une autre est-elle indexée ?
Non, normalement pas. Google "fusionne" la page avec son canonical et n'indexe que l'URL canonique. Si vous voulez que les deux soient indexées (cas rare), vous devez différencier leur contenu et utiliser self-referential canonical sur chaque.
Le canonical peut-il être relatif (ex: /products/foo) ?
Techniquement oui, pratiquement non. Utilisez toujours l'URL absolue avec protocole (https://example.com/products/foo). Les URLs relatives sont source d'erreurs (mauvais scheme, mauvais host).
Pour auditer et corriger les canonicals de votre catalogue à grande échelle, voyez Ecomptimize pour Shopify ou Ecomptimize pour WooCommerce.
Tu as aimé cet article ?