Back to blog
    Product descriptions
    8 min

    Product variant SEO on Shopify: handling sizes, colors and duplicate content

    Product variant SEO on Shopify: handling sizes, colors and duplicate content

    A t-shirt in five colors and four sizes already produces twenty variant URLs. Do nothing and they either rank against each other (cannibalization) or get flagged as duplicate content. Both drag your positions down. A deliberate variant strategy is the difference between one strong product page and twenty weak ones.

    How Shopify handles variants by default

    Shopify generates a single canonical URL per product (/products/handle) and appends variants with ?variant=12345. By default every variant URL points back to the parent via rel=canonical. For most stores that's correct — but not always.

    Three strategies, one for each use case

    1. Single page, all variants — Shopify default. Best when variants are cosmetic (color, size) and share the same search intent.
    2. Separate products per variant — when colors or sizes have enough independent search volume to deserve their own page ("red lounge chair" vs "blue lounge chair"). Create true separate products with unique titles, descriptions and URL handles.
    3. Variant-specific landing pages via collections — combine both: one product page plus collection pages per variant attribute that deep-link into the right product.
    The product enrichment tab: titles, descriptions and metadata per product.
    The product enrichment tab: titles, descriptions and metadata per product.

    Unique variant content without duplicates

    Want to show variant-specific descriptive text (e.g. care instructions per fabric) without duplicate-content issues? Render variant text client-side based on the selected variant — Google indexes the parent page including the first variant's text, and the UI swaps for users. Use the AI product descriptions generator per variant and store the output in a metafield.

    Use SKUs and search volume strategically

    Filter in pshly by SKU substrings (e.g. all SKUs containing "NH" or "YW") to bulk-generate content per variant family. Combine with SEO titles that carry the variant attribute ("Women's jacket black, size L") when the keyword has volume per your Search Console data.

    What not to do

    • Duplicate the exact same text across separate product handles per variant.
    • Make variant URLs indexable without canonical to the parent product.
    • Push size charts, inventory or variants into 50 different collections — that creates thin pages.
    The action bar you use to start bulk actions on your selection.
    The action bar you use to start bulk actions on your selection.

    Measuring impact

    Check Search Console for indexed product page count before and after the change, and monitor whether average position rises on your top variant queries. Start free and build your variant strategy in one afternoon.