Guide Product Variant SEO

Quand à donner chaque produit variant son propre URL vs. canonical à le base, ProductGroup + hasVariant schema (Feb 2024), et comment Shopify, WooCommerce, BigCommerce, et Magento differ.

Première publication : 26 juin 2026 · Dernière mise à jour : 3 août 2026 · Avancé
1 indice probant sur cette page

A produit sold dans nombreux options (size, color, storage) generates near-duplicate URLs. Consolidate le ones avec aucun standalone recherche demand à a base URL avec a canonical, et donner an indexable URL seulement à variants que ont leur propre demand Et peut carry unique contenu. Google's par défaut est a séparé URL per variant canonicaling à le parameter-gratuit base — mais SearchPilot trouvé a 22% uplift depuis doing le reverse (base canonicals à le meilleur variant), donc context wins. Mark le relationship up avec ProductGroup + hasVariant (Feb 2024). Platforms differ: Shopify auto-canonicals chaque ?variant=ID à le base, BigCommerce a le cleanest built-dans handling, WooCommerce/Magento depend on plugins or config. Schema décrit le relationship; il ne fait pas faire a variant classer.

«> TL;DR — Variants create near-duplicate URLs; the job is sorting which deserve

independent ranking and which to consolidate. Google’s default: a separate URL per variant (path segment or query parameter) with the parameter-free base as the canonical. Reverse it — base canonicaling to a high-demand variant — when a specific variant has the search demand and the unique content to earn it (SearchPilot measured a 22% organic uplift doing exactly this). Mark the relationship up with ProductGroup + hasVariant (Feb 2024); single-page sites need one canonical URL for the group, multi-page sites need full self-contained markup per page, and variesBy must use full schema.org URLs. Keep canonical, internal links, and sitemap consistent — rel=canonical is a hint, not a directive. Platform defaults differ and all need auditing. » (Traduction) (Résumé en français de la section vingt et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«## The tension, stated plainly » (Traduction) (Résumé en français de la section vingt-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«Every variant is a fork in the road. Give it its own crawlable URL and you’ve created a near-duplicate that splits link equity and eats crawl budget. Select it only through JavaScript with no URL change and that specific variant state has no address of its own — it can’t be crawled, indexed, or ranked as a distinct entity, separate from the question of whether Google renders the page’s JavaScript at all. The right answer isn’t a blanket rule — it’s a per-variant judgment call driven by two inputs: does this variant have its own search demand, and can you give it genuinely unique content. Everything below is in service of making that call correctly and then implementing it cleanly. This is the variant-specific deep dive that sits alongside product page SEO; that guide covers the whole PDP, this one zooms in on the variant decision. » (Traduction) (Résumé en français de la section vingt-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Ce que Google en réalité recommends

Google’s ecommerce Structure d’URL guidance is explicit que variants devrait obtenir crawlable URLs, pas JS-only state changements.

Preuve à l’appui de cette affirmation Google recommends crawlable URLs for product variants that it should discover. Portée : Use links with href values and stable URL structures; JavaScript state alone may not expose each variant. Niveau de confiance : élevé · Vérifié : Google: Ecommerce URL structure

Son recommended structures: “A path segment, such as /t-shirt/green” or “A requête parameter, tel as /t-shirt?color=green.” Les deux sont fine — pick un et être consistent.

«For the canonical, the default is to consolidate to the clean base: “Use the URL with the query parameter omitted as the canonical URL. This can help Google better understand the relationship between product variants.” And for path-based variants: “For products with unique URLs per variant, include the canonical product URL on all variant pages using a <link rel="canonical"> tag.” » (Traduction) (Résumé en français de la section vingt-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«The whole point is reducing redundant retrievals. Google: “Minimize the number of alternative URLs that return the same content” — because “the same content may be retrieved multiple times by the crawler if Google thinks two URLs are different but result in the same page being returned.” That’s the crawl-budget cost of variant sprawl in one sentence. » (Traduction) (Résumé en français de la section vingt-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Quand a variant earns its propre indexable page

A variant nécessite les deux demand and differentiation to earn an independently indexable URL. Source : Google Search Central

Premier demander si le variant a measurable standalone recherche demand. Si pas, consolidate il à le preferred produit URL. Si demand exists, demander si lune page peut provide meaningfully distinct copy, media, specifications, et offer données. Si pas, consolidate. Si les deux conditions sont met, utiliser a distinct, self-canonical variant URL et align le canonical, lien internes, et sitemap avec que choice.

© Patrick Stox LLC · CC BY 4.0 ·

«The default (“canonical everything to the base”) is correct for the overwhelming majority of variants. Nobody searches “size medium” or “the third blue” in isolation, so those should consolidate. But some variants are real, standalone queries — “512GB iPhone 15 Pro,” “navy blue trench coat,” “extra-wide running shoes.” For those, two conditions both have to hold before you split them out: » (Traduction) (Résumé en français de la section trente et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

  1. There’s measurable search demand pour que variant. Pull volume pour “[product] + [variant]” in a keyword outil. Zero volume → consolidate.
  2. Vous pouvez give lune page genuinely unique content — its propre copy, images, specs, reviews. Si vous pouvez’t differentiate it, an indexed-but-thin variant page is worse que consolidation.

«This is the hybrid approach: one master product page, plus dedicated variant URLs only for high-demand queries you can actually differentiate. Worth being clear about what this is: Google’s docs tell you variants need addressable URLs and a canonical strategy, but the demand-plus-unique-content gate itself is practitioner decision-making (the same approach Yoast recommends), not a Google eligibility requirement or a guarantee that a qualifying variant will rank. Spin up a separate indexable URL without unique content and you’ve recreated the duplicate-content problem you were trying to avoid. » (Traduction) (Résumé en français de la section trente-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

The counterintuitive partie: canonical direction isn’t fixed

«Here’s where conventional advice cracks. SearchPilot ran a controlled split test that did the opposite of the default — they changed the main product page’s canonical from self-referential to point at a specific variation page. The result: “the best estimate being a 22% uplift to organic traffic to those pages.” » (Traduction) (Résumé en français de la section trente-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Le context que fait il fonctionner: le site avait déjà fait variants indexable avec self-referential canonicals, mais ceux variant pages “étaient pas getting indexé consistently, et étaient pas receiving as beaucoup trafic organique as avait été hoped.” Pointing le principal page’s canonical à le meilleur-known variant concentrated le signaux où le demand en réalité était.

«The lesson isn’t “always reverse your canonicals.” SearchPilot is careful here: “Every ecommerce website’s setup will be different depending on a lot of factors, including the number of variations per product, the internal linking structure, and the lifetime of products on the website. This approach may not work for everyone.” The lesson is that canonical direction is a decision, not a default — point it at whichever URL has the demand and the content to deserve indexing. For how Google picks a canonical when your signals disagree, see canonicalization — there are roughly 40 signals at play, and the rel=canonical tag is a strong one but not the only one. » (Traduction) (Résumé en français de la section trente-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Garder votre signals consistent

A balise canonical est a hint, pas a command. Google peut et va pick a différent canonical que le un vous declared si votre autre signaux contradict il — qui est exactly ce que “Duplicate, Google chose a différent canonical” dans Search Console signifie. Le corriger est consistency: l’URL vous pouvezonicalize à devrait être le même URL vous lien à internally et le même URL vous liste dans votre sitemap. Quand le balise canonical points un façon et votre lien internes point un autre, vous avez handed Google a raison à override vous. (Ce est le même consistency discipline que governs faceted navigation, où filter URLs créer le même near-duplicate sprawl.)

Le produit variant et selected-offer contract

Pour chaque crawlable or feed-submitted variant URL, le systèmes ci-dessous doit identifier le même sellable selection. Preuve à l’appui de cette affirmation Google recommends crawlable URLs for product variants that it should discover. Portée : Use links with href values and stable URL structures; JavaScript state alone may not expose each variant. Niveau de confiance : élevé · Vérifié : Google: Ecommerce URL structure

CoucheContract
Requested URLEncodes le prévu produit et variant state dans a stable, shareable formulaire.
Visible PDPCharge le prévu produit identity, selected attributs, SKU, price, currency, et availability; a fresh navigation reproduces le state.
Canonical/indexabilitySuit le declared parent-produit or indexable-variant stratégie.
Données structuréesUtilise le matching produit/groupe identity, SKU/GTIN, attributs, Offer.url, price, currency, et availability.
Merchant or agent feedSends le même élément ID, groupe ID, offer facts, et a landing URL que recreates le submitted variant.
Cart et checkoutAjoute que exact SKU et revalidates le represented price, currency, et availability sans silently substituting un autre variant.

En d’autres termes, le visible PDP, rendu Product JSON-LD, feed élément, selected variant, cart, et checkout devrait agree on produit identity, SKU, groupe ID, selected attributs, price, currency, et availability. Checkout peut legitimately revalidate rapide-changing stock, delivery, tax, or price. Quand le state changements, il devrait expliquer le modifier au lieu de completing a différent offer sous le même selection. Postcode-dependent fulfillment peut refine le general availability affiché avant emplacement est connu, mais le publié offer ne doit pas claim a state le backend déjà knows est faux.

A parent-produit stratégie peut expose selectable variants pendant que consolidating leur URLs à le parent. An indexable-variant stratégie exige chaque qualified variant à reconstruct itself, self-canonicalize, recevoir crawlable lien internes, et carry variant-spécifique page et offer données. Mixing le deux strategies—tel as self-canonical variant URLs whose lien internes et sitemap encore point seulement à le parent—crée contradictory evidence.

Preuve à l’appui de cette affirmation Google recommends crawlable URLs for product variants that it should discover. Portée : Use links with href values and stable URL structures; JavaScript state alone may not expose each variant. Niveau de confiance : élevé · Vérifié : Google: Ecommerce URL structure

Ne faites pas utiliser a fragment tel as #blue-large quand a feed, serveur, robot d’exploration, or external agent doit requête a spécifique variant. Navigateurs ne faites pas send le fragment dans le HTTP requête, donc le origin ne peut pas sélectionner a différent réponse depuis il et feed validators ne peut pas rely on il as a distinct landing-page state. Utiliser a chemin or requête parameter quand le selection doit être addressable à l’extérieur le déjà-running navigateur page. Google’s JavaScript SEO guidance explique pourquoi fragment-based contenu states sont unreliable pour recherche.

ProductGroup données structurées (the Feb 2024 mettre à jour)

«In February 2024 Google added structured-data support for product variants via the new ProductGroup type. It’s the supported way to tell Google “this blue size-M shirt and this red size-L shirt are the same product in different options.” It doesn’t make variants rank — structured data aids understanding and rich-result eligibility, not rankings — but it’s how you make the parent-child relationship machine-readable. Preuve à l’appui de cette affirmation Google supports ProductGroup structured data to describe product variants and their varying properties. Portée : Valid markup aids understanding and eligibility but does not guarantee ranking or display. Niveau de confiance : élevé · Vérifié : Google: Product variants structured data » (Traduction) (Résumé en français de la section quarante-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

The pieces:

  • ProductGroup — le parent type. Google’s actuel documentation listes seulement name as required à le ProductGroup level; productGroupID (le parent SKU/ID) et variesBy sont recommended, pas requis — though skipping les defeats le point de le markup, since Google nécessite variesBy à know qui attribut en réalité distinguishes le variants. Preuve à l’appui de cette affirmation Google supports ProductGroup structured data to describe product variants and their varying properties. Portée : Valid markup aids understanding and eligibility but does not guarantee ranking or display. Niveau de confiance : élevé · Vérifié : Google: Product variants structured data
  • hasVariant — nests chaque Product variant sous le parent groupe (Approche 1, le plus compact et recommended un).
  • isVariantOf — le inverse: ajouté à chaque Product à lien il back à son parent groupe (Approche 2, qui peut suit some CMS setups meilleur).
  • variesBy — listes le variant-defining properties, et ce est le la plupart courant pitfall: il doit utiliser complet schema.org URLs comme https://schema.org/color et https://schema.org/size, pas le court strings "color" / "size".

«Single-page vs. multi-page matters. Google: “For single-page sites, there must be only one distinct canonical URL for the overall ProductGroup that all variants belong to.” But “for multi-page sites… each page must have full and self-contained markup for the entities defined on that page.” So if every variant has its own URL, every variant page carries its own complete markup — you don’t share one block across them. » (Traduction) (Résumé en français de la section cinquante, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Chaque variant Product nécessite a unique @id, a unique sku or gtin, son propre variant attributs (color, size), an isVariantOf pointer à le parent, et an Offer whose url matches le actuel page. Le usual échecs sont manquant unique variant IDs, an inconsistent productGroupID entre parent et variants, et le variesBy-doit-être-a-complet-URL trap ci-dessus. Valider avec le Résultats enrichis Tester, alors Inspection d’URL, alors sitemap submission.

Qui variants belong in the markup?

Markup devrait décrire le catalog shoppers peut en réalité sélectionner, pas chaque combination a configurator pourrait theoretically produce. Inclure a variant quand il a a stable identity tel as a SKU or GTIN, represents a réel attribut combination, est reachable via le actuel produit experience, belongs à le même produit groupe, et a an offer state le site peut garder actuel. Le visible selector, variant URL stratégie, et ProductGroup graph devrait décrire le même définir. Preuve à l’appui de cette affirmation Google supports ProductGroup structured data to describe product variants and their varying properties. Portée : Valid markup aids understanding and eligibility but does not guarantee ranking or display. Niveau de confiance : élevé · Vérifié : Google: Product variants structured data

«Do not generate the Cartesian product of every color, size, material, accessory, and service option when many combinations do not exist or cannot be purchased. That creates an enormous, misleading entity graph with invented products and stale offers. A one-page selector can nest its real variants; variant-specific pages need complete markup for the entities on each page. A configurable or made-to-order product should mark up the genuine purchasable product and current offer—not manufacture thousands of hypothetical SKUs solely for schema. » (Traduction) (Résumé en français de la section cinquante-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«## Crawl budget: the scale problem » (Traduction) (Résumé en français de la section cinquante-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«Variant URL proliferation is a common crawl-budget drain on large ecommerce sites, though how much it actually costs you depends on your catalog’s scale and Google’s existing crawl demand for your domain — it isn’t a fixed universal cost. The 200-products-×-20-variants = 4,000-near-duplicate-URLs math is a worked example to show the shape of the problem, not a measured average for every site. Crawl budget is an efficiency concern, not a ranking factor — but on a large catalog, crawl wasted on redundant variant URLs is crawl not spent on your new and updated pages. Don’t estimate your actual exposure from the arithmetic alone: pull Search Console’s Crawl Stats report (Settings → Crawl Stats) to see how much of Googlebot’s activity on your site is hitting variant URLs, or check server logs directly for ?variant=/path-segment variant hits versus total crawl requests. Consolidating low-value variants to a canonical base, over time, reduces the crawl pressure those redundant URLs create.

Preuve à l’appui de cette affirmation Google recommends consistent canonical URLs for ecommerce variant URL patterns. Portée : Canonicalization is a hint; independently useful variants may warrant separate canonical URLs. Niveau de confiance : élevé · Vérifié : Google: Ecommerce URL structure

» (Traduction) (Résumé en français de la section cinquante-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«## Platform-by-platform behavior » (Traduction) (Résumé en français de la section cinquante-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Le defaults differ, et tout de les besoin auditing:

  • Shopify appends ?variant=ID automatiquement et canonicals chaque un de ceux parameter URLs back à le base /products/<slug>. c’est le correct appel pour le vast majority de stores — il consolidates tout cleanly. Le catch: il consolidates everything, donc si vous en réalité vouloir a élevé-demand variant à classer independently, Shopify’s automatic canonicalization fonctionne contre vous, et tiers apps et custom themes parfois break le canonical entirely.
  • WooCommerce donne vous complet URL contrôler, qui signifie le canonical handling rides on votre SEO plugin (Yoast, Classer Math). Le supplémentaire wrinkle est attribut archive pages, qui peut generate leur propre duplicate URLs on top de le variants.
  • BigCommerce est widely regarded par practitioners as having le strongest out-de-le-box canonical handling de le four — variant URLs sont natively canonicalized. Treat que as a practitioner assessment plutôt que quelque chose Google or BigCommerce documents as a formal guarantee, et confirmer actuel behavior contre votre propre plateforme version avant relying on il.
  • Magento généralement exige manual configuration or extensions, et parce que layered navigation et produit variants les deux produce duplicate URLs, le deux problèmes compound si vous ne pas adresse les deux.

On Bing specifically, Bing Webmaster Outils offers URL Normalization — a code-free façon to consolidate parameter variants sans ajout a balise canonical to every page, qui Microsoft itself has appelé “better than canonical” pour ce utiliser.

Myths worth killing

  • “Variants cause a duplicate-content penalty.” Là est aucun duplicate-contenu penalty. Le coût est signal dilution et explorer waste, pas a punitive action — mais le résultat (weaker rankings) peut feel le même, donc il encore matters.
  • “Always canonical every variant to the base.” SearchPilot’s 22% résultat montre le reverse peut win. Direction est contextual.
  • “?color=green parameters sont mauvais pour SEO.” Google explicitly recommends requête parameters or chemin segments. Parameters sont fine avec le correct canonical.
  • “ProductGroup schema makes variants rank better.” Il aids understanding et rich-résultat eligibility; il n’est pas a classement signal.
  • “Shopify handles tous variant SEO donc Je’m terminé.” Son par défaut consolidation est correct pour la plupart produits mais actively empêche élevé-valeur variants depuis classement independently, et apps break il.
  • “JS-seulement variant selection (aucun URL modifier) est meilleur.” Google explore le par défaut page state. A variant reachable seulement via JavaScript avec aucun URL modifier a aucun séparé adresse, donc il ne peut pas être exploré, indexé, or ranked as son propre entity — c’est an addressability problème, pas proof que Google ne peut pas rendre JavaScript à tout (Google fait rendre JS, mais warns que dynamically-generated Produit markup peut être exploré moins frequently et reliably).

Où ce sits in the cluster

Ce est le variant-spécifique companion à produit page SEO, qui covers le complet produit detail page. Le canonical mechanics actif dans canonicalization; le closely connexe filter-URL version de le même near-duplicate problème lives dans faceted navigation. Pour le bigger picture, voir Ecommerce SEO.

Ajouter une note d’expert

Épingler une citation d’expert

Nouvelle personne ? Créez son profil non revendiqué à /admin/experts/ → Épingler une citation d’expert d’abord.