Ce qu'il faut retenir
- Une seule question tranche : la variante est-elle cherchée sans le produit parent ? Couleur et matière le sont souvent, taille et format quasi jamais.
- Google valide deux architectures : mono-page avec une canonique unique pour tout le ProductGroup, ou multi-pages avec un balisage complet sur chaque variante. Jamais le mélange.
- Teste ton CMS plutôt que de le croire : sur une boutique Shopify mesurée le 10 octobre 2026, toutes les URL de variante renvoyaient la canonique du parent. Le test prend dix secondes.
- Six attributs seulement sont reconnus dans
variesBy: color, size, suggestedAge, suggestedGender, material, pattern. Contenance, puissance et parfum n’en font pas partie. - La migration se joue sur l’ordre des opérations : inventaire, destination capable de présélectionner, redirections, sitemap, maillage. Inversé, tu perds les positions sans que le parent les récupère.
Les deux réponses sont valables et Google documente les deux. Le critère de choix est la demande, pas ton CMS ni la taille de ton catalogue : « robe rouge » se cherche, « robe taille M » non.
C’est l’un des arbitrages que je reprends le plus souvent en mission de consultant SEO e-commerce, presque toujours sur un catalogue où les deux architectures cohabitent sans qu’aucune décision n’ait été prise. Tu trouveras ici comment mesurer cette demande, tester ta plateforme, baliser correctement et passer d’une architecture à l’autre sans casser le trafic acquis.
Une URL par variante : le seul critère
Une variante mérite sa propre URL quand elle est cherchée sans le nom du produit parent. C’est le seul critère mesurable, contrairement au confort du back-office ou à l’avis du développeur du thème.
Deux contraintes se superposent : la demande de recherche, et la reconnaissance de l’attribut par Google dans variesBy.
| Attribut | Demande de recherche propre | Reconnu dans variesBy | Architecture par défaut |
|---|---|---|---|
| Couleur | Fréquente | Oui (color) | Page autonome défendable |
| Matière | Fréquente | Oui (material) | Page autonome défendable |
| Motif, imprimé | Variable selon la catégorie | Oui (pattern) | À mesurer avant de trancher |
| Taille, pointure | Rare | Oui (size) | Mono-page |
| Âge ou genre suggéré | Réelle, mais captée par les catégories | Oui | Mono-page |
| Contenance, puissance, parfum | Parfois forte | Non | Mono-page, ou fiche produit distincte |
La dernière ligne est la plus intéressante. Quand un attribut génère une demande réelle sans figurer dans les six propriétés reconnues, le balisage ne te sauvera pas. Deux sorties honnêtes : rester en mono-page et laisser une catégorie ou un filtre indexé capter la requête, ou traiter cette déclinaison comme un produit à part entière, avec son SKU et son contenu.
Un second critère élimine beaucoup de projets avant le premier test : peux-tu produire du contenu réellement distinct ? Une photo propre, quelques lignes qui appartiennent à cette variante, un stock durable. Sans ça, la page autonome sera une coquille.
Les deux architectures que Google valide
Google décrit exactement deux montages, et la différence tient à un seul point : l’existence ou non d’une URL canonique au niveau du ProductGroup. Tout le reste en découle.
Mono-page : une canonique unique pour tout le ProductGroup
Une seule URL porte l’ensemble des variantes. Google écrit qu’il doit y avoir une seule URL canonique distincte pour l’ensemble du ProductGroup, les variantes étant présélectionnables par paramètre du type ?size=small&color=green.
L’avantage est mécanique : tous les signaux, liens compris, se concentrent sur une URL. Le coût aussi, une seule page doit satisfaire toutes les intentions de recherche du produit, y compris celles qui nomment une couleur.
Multi-pages : chaque variante devient une page autonome
Aucune canonique au niveau du ProductGroup. Chaque page variante vit pour elle-même et Google exige qu’elle porte un balisage complet et autonome, pas un fragment qui renverrait au parent.
Le gain visé est la longue traîne. La facture arrive en trois morceaux, et le premier est éditorial : trois couleurs, trois pages, 95 % du texte en commun, c’est la forme de contenu dupliqué sur les fiches produit la plus banale en e-commerce, et elle ne se règle pas en réécrivant trois fois le même paragraphe. Viennent ensuite le crawl, puis la maintenance du stock et des prix sur N fois plus d’URL.
Dans les deux architectures, trois exigences ne bougent pas : un identifiant distinct par variante (SKU, GTIN), une URL qui présélectionne la variante, et une image, un prix et une disponibilité propres.
La troisième pratique : une URL par variante, canonicalisée vers le parent
Le montage que je rencontre le plus souvent en audit n’appartient à aucune des deux architectures documentées : les URL de variantes existent, elles sont crawlables, et toutes leurs canoniques pointent vers la fiche parente.
Ça tient debout, la canonique faisant son travail de signal. Mais tu cumules les inconvénients des deux montages : des dizaines d’URL que Googlebot doit explorer pour comprendre qu’elles sont des doublons, sans bénéfice de longue traîne puisque ces pages ne sont pas censées se positionner. Pour moi, c’est un comportement par défaut du CMS, que personne n’a décidé. Assume-le si ces URL servent le parcours d’achat, à condition de ne rien en attendre côté positions et de ne pas les baliser comme des pages autonomes.
Mesurer la demande variante par variante
Trois sources, trois questions différentes. Tu pars de ce que tu reçois déjà, tu complètes par le marché, tu valides par la nature des pages positionnées.
| Source | Ce que tu y lis | Ce que ça prouve |
|---|---|---|
| Search Console, rapport Performances | Impressions et position sur les requêtes qui nomment un attribut | La demande existe, ta page la capte mal |
| Outil de volume (Ahrefs, Haloscan, DataForSEO) | Volume estimé par valeur d’attribut, croisée au nom du produit | La demande vit hors de ta marque |
| Suggestions et recherches associées | Présence de la valeur d’attribut dans les propositions de Google | La demande est validée par Google lui-même |
Partir des requêtes que tu reçois déjà
Source la plus fiable, et gratuite. Dans le rapport Performances, filtre les pages sur l’URL de ta fiche parente puis ouvre l’onglet Requêtes : celles qui nomment une couleur ou une matière sont déjà captées sans page dédiée.
Pour traiter un gabarit entier plutôt qu’une fiche, passe par les filtres en expression régulière sur les requêtes, du type (rouge|bleu|noir|vert|beige), croisés avec un filtre de pages sur ton motif d’URL produit. Ce que tu cherches : des impressions réelles associées à une position moyenne loin du top 10. Signature d’une intention identifiée par Google et mal servie par ta page.
Confronter au marché et aux suggestions
Deuxième passage, sur les candidats du premier. Pour chaque valeur, teste le motif « nom de produit + valeur » et vérifie deux choses : que la requête vit hors de ta marque, et que son volume n’est pas un résidu d’arrondi face à celui du parent.
Troisième vérification, celle qui évite les pages mortes : regarde la nature des résultats positionnés. Si la SERP n’affiche que des pages de catégorie et des guides, la bonne réponse est une catégorie ou un filtre indexé, pas une fiche variante. Si elle affiche des fiches produit, ta page autonome a un terrain.
Le seuil de décision : le tien, pas un chiffre universel
Je ne donnerai pas de volume plancher, il n’en existe pas. 50 recherches par mois peuvent justifier une page sur un produit à 400 € de panier moyen et n’en justifier aucune sur un article à 9 €. Le seuil se construit sur ta propre distribution : trie tes valeurs d’attribut par demande estimée, compare chacune à la demande du produit parent, place la coupure là où l’écart devient ridicule.
Créer une page variante demande quatre conditions réunies :
- La requête existe hors marque, elle ne vit pas uniquement grâce à ton nom d’enseigne.
- Elle génère déjà des impressions ou elle apparaît dans les suggestions de Google.
- La SERP affiche des fiches produit sur cette requête, pas seulement des catégories.
- Tu peux produire du contenu distinct et un stock durable pour cette variante.
S’il en manque une, reste en mono-page. Une page variante coûte surtout en entretien : 300 produits en 8 coloris, ça fait 2 400 pages à tenir en stock et en photos.
Ce que ton CMS fait des variantes
La seule réponse fiable est la canonique que tes pages servent réellement, maintenant, sur ton thème. Le comportement dépend du thème, de sa version et des extensions, ce qui rend toute affirmation générale fragile.
Le test en dix secondes
Charge l’URL d’une variante et lis la balise canonical dans le HTML rendu. En ligne de commande :
curl -s "https://exemple.fr/produit?variant=123" | grep -i canonical
Sans terminal, affiche le code source et cherche « canonical ». Troisième option, la plus parlante : l’inspection d’URL dans Search Console, qui distingue la canonique déclarée par l’utilisateur de celle sélectionnée par Google.
Teste trois formes d’URL du même produit : l’URL propre, l’URL avec le paramètre de variante, et l’URL atteinte via un chemin de catégorie si ta plateforme en génère une.
Ce que j’ai mesuré sur une boutique Shopify
Test du 10 octobre 2026, boutique Shopify française, produit à neuf variantes. Les canoniques servies :
/products/<handle>renvoie/products/<handle>/products/<handle>?variant=<id-1>renvoie/products/<handle>/products/<handle>?variant=<id-2>renvoie/products/<handle>/collections/all/products/<handle>renvoie/products/<handle>
Sur cette boutique, toutes les URL de variante et toutes celles passant par une collection se canonicalisent vers la fiche parente. Aucun auto-référencement. Je n’en fais pas une loi : c’est un test sur une boutique, un autre thème peut donner un autre résultat. Refais-le chez toi avant d’en tirer une décision d’architecture.
Le tableau honnête des plateformes
| Plateforme | Ce que je peux affirmer | Vérifié par un test de ma part | À faire chez toi |
|---|---|---|---|
| Shopify | URL de variante en ?variant= et URL produit accessibles via un chemin de collection. Sur la boutique testée, toutes canonicalisées vers /products/<handle> | Oui, 10 octobre 2026, une boutique, un thème | Refaire le test sur ton thème, et après chaque mise à jour |
| WooCommerce | Les variations sont gérées nativement via des paramètres de requête sur la même URL produit | Non | Lire la canonique servie sur une URL de variation |
| PrestaShop | Le vocabulaire parle de déclinaisons ou de combinaisons selon la version | Non | Lire la canonique servie sur une URL de déclinaison |
| Magento, Adobe Commerce | Rien que je puisse affirmer sans test | Non | Test obligatoire, par vue de boutique |
| Headless, sur mesure | Le comportement dépend entièrement de l’implémentation | Non | Test obligatoire avant toute décision |
La colonne du milieu est celle qui compte. Sur quatre lignes sur cinq, je n’ai pas de test à l’appui, donc je ne décris aucun comportement par défaut.
Baliser les variantes avec ProductGroup
Le balisage vient après le choix d’architecture. La classe ProductGroup et ses propriétés variesBy, hasVariant et productGroupID déclarent à Google ce qui varie et ce qui ne varie pas entre tes déclinaisons.
Une seule propriété y est requise : name. Sont recommandées, entre autres, brand, description, productGroupID, variesBy et aggregateRating. La propriété url ne se renseigne qu’en mono-page, puisqu’en multi-pages il n’existe pas d’URL canonique de groupe.
Imbriqué ou séparé : deux formes, deux usages
- Variantes imbriquées sous le ProductGroup via
hasVariant. Forme compacte, naturelle en mono-page où une seule URL porte tout le groupe. - Variantes séparées pointant vers le parent via
isVariantOf. Forme pratique en multi-pages, où chaque page doit porter son balisage complet.
Voici la seconde, celle qui va avec les pages variantes autonomes :
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Veste de travail Artisan bleue",
"sku": "VT-ARTISAN-BLEU-M",
"color": "Bleu",
"size": "M",
"image": "https://www.exemple.fr/img/vt-artisan-bleu.jpg",
"isVariantOf": {
"@type": "ProductGroup",
"name": "Veste de travail Artisan",
"productGroupID": "VT-ARTISAN",
"variesBy": ["https://schema.org/color", "https://schema.org/size"]
},
"offers": {
"@type": "Offer",
"url": "https://www.exemple.fr/veste-artisan-bleue/",
"priceCurrency": "EUR",
"price": "79.00",
"availability": "https://schema.org/InStock"
}
}
Dans cet exemple, le ProductGroup est réduit à l’essentiel : en multi-pages, Google demande d’en répéter la définition complète sur chaque page variante. Place ce balisage dans le HTML initial plutôt qu’injecté en JavaScript, puis valide au Rich Results Test et à l’inspection d’URL.
Maillage et crawl des variantes
L’architecture décide de ce que tu mailles et de ce dans quoi Googlebot dépense son exploration. Un catalogue en multi-pages mal maillé produit des pages variantes orphelines, présentes dans le sitemap et nulle part ailleurs. Elles ne se positionnent pas.
Ce qui entre dans le sitemap
Uniquement des URL canoniques. En mono-page, la fiche parente et rien d’autre. En multi-pages, chaque page variante autonome. Jamais les deux, accident fréquent quand le sitemap est généré par une extension indépendante du thème.
Les liens qui créent des URL sans que tu le décides
- Les pastilles de couleur posées en vrais liens
<a href>vers?variant=sur un site qui se veut mono-page. - Les URL produit accessibles via un chemin de catégorie, qui dupliquent la fiche autant de fois qu’elle appartient à des collections.
- Les blocs de produits associés et la recherche interne, qui pointent vers une URL de variante au lieu de la canonique.
En mono-page, la pastille modifie l’état de la page, elle ne crée pas une URL indexable. Si ton thème impose le lien, assume-le et garde la canonique sur le parent. Dans tous les cas, le fil d’Ariane ne pointe jamais vers une URL de variante.
Le budget de crawl, en arithmétique simple
Prends 1 000 fiches en 6 variantes. Laisser vivre les 6 URL en les canonicalisant vers le parent demande à Googlebot d’explorer 7 000 URL pour 1 000 pages utiles. Sur un petit catalogue, aucune conséquence visible. Sur un gros catalogue à renouvellement rapide, c’est du crawl qui ne va pas à tes nouveautés.
Passer en mono-page sans perdre de trafic
La situation typique : tu découvres le sujet avec 2 000 URL de variantes déjà indexées et tu veux consolider. Tout se joue sur l’ordre des opérations, et l’erreur classique consiste à lancer les redirections avant que la destination soit prête.
L’inventaire, avant de toucher une URL
Croise un crawl Screaming Frog avec un export Search Console sur douze mois. Pour chaque URL de variante : clics et impressions, requêtes associées, liens internes reçus, canonique déclarée, canonique sélectionnée par Google sur un échantillon, backlinks Ahrefs.
Tu obtiens trois paquets, qui ne se traitent pas pareil :
- Trafic organique propre, sur des requêtes qui nomment la variante. Tu gardes la page, elle a déjà passé le test de la demande.
- Ni trafic ni backlink. Redirection 301 vers le parent.
- Pas de trafic mais des backlinks. Redirection 301 aussi, pour transmettre le lien, en vérifiant que la destination répond à la même attente.
L’ordre des opérations
- Écris la règle avant de migrer : quels attributs donnent droit à une page, lesquels non. Une phrase applicable à tout le catalogue, qui servira aussi au développeur.
- Vérifie que la destination présélectionne la variante et affiche son image, son prix et sa disponibilité propres. Tant que ce point n’est pas livré, tu ne rediriges rien.
- Prépare le contenu de la fiche parente pour qu’elle réponde aux intentions fusionnées. Les coloris sont nommés dans le texte visible, pas seulement dans un menu déroulant.
- Pose les 301 depuis chaque URL de variante vers l’URL parente avec le paramètre qui présélectionne la bonne variante. Directement vers la destination finale, sans chaîne de redirections.
- Mets à jour le reste dans la même livraison : liens internes, sitemap, données structurées qui passent en
hasVariantimbriqué, URL de ton flux produit. - Retire les anciennes pages de la navigation, seulement après ces cinq étapes.
Ce que tu surveilles, et jusqu’à quand
Je ne donne pas de délai de reprise : il dépend de la fréquence de crawl de ton catalogue et je n’ai aucun chiffre défendable à avancer. Les signaux d’arrivée, eux, sont clairs, et tu ne débranches pas la surveillance avant que les trois premiers soient alignés.
- Le rapport Indexation fait basculer les anciennes URL vers un statut de redirection.
- L’inspection d’URL, sur un échantillon, montre une canonique sélectionnée par Google égale à ta cible.
- Le rapport Performances montre les requêtes de variantes reprises par l’URL parente. Compare des jeux de requêtes, pas des totaux de clics.
- Les statistiques d’exploration montrent Googlebot qui cesse de solliciter les anciennes URL.
Les 301 restent en place indéfiniment. Les retirer un an plus tard parce que « le trafic est passé » est une façon efficace de perdre les backlinks accumulés.
Et dans l’autre sens
Le passage de mono-page à multi-pages est plus exigeant, puisque tu crées des pages qui n’existaient pas. Ne les génère pas en masse. Crée celles qui ont passé les quatre conditions, donne à chacune son contenu, son balisage complet et ses liens internes depuis une catégorie, et remplace la canonique vers le parent par un auto-référencement. Teste sur un sous-ensemble avant de généraliser.
Suivre l’effet dans Search Console
Le suivi se fait au gabarit, pas à la fiche. Isole tes URL de variantes avec un filtre en expression régulière sur les pages du rapport Performances, \?variant= ou le motif de ta plateforme, et traite-les comme un type de page à part entière.
Deux lectures valent mieux que n’importe quel total de clics :
- En mono-page, tu veux voir la liste de requêtes de la fiche parente absorber les requêtes qui nomment les variantes. Si elles disparaissent sans réapparaître sur le parent, la fusion a mangé de la demande.
- En multi-pages, tu veux des jeux de requêtes qui ne se recouvrent pas. Si deux pages variantes remontent sur les mêmes requêtes, elles se cannibalisent, sans aucun gain de longue traîne.
Ajoute un contrôle de routine après chaque mise à jour de thème ou d’extension : test de canonique sur une URL de variante, puis Rich Results Test. Une mise à jour qui change les canoniques d’un catalogue entier ne déclenche aucune alerte et se repère des semaines plus tard sur une courbe d’indexation.
Faire auditer ton catalogue
Si tes fiches à variantes stagnent, ou si tu hésites entre consolider 2 000 URL et en créer 2 000 autres, l’arbitrage se prend sur tes données. Un premier échange suffit souvent à poser la règle de décision et l’ordre des travaux.
En mission de consultant SEO e-commerce, je regarde d’abord la demande réelle derrière chaque attribut, le comportement effectif de ta plateforme, et le chemin le plus court pour aligner les deux.


