Variant URLs

Shopify Unique URLs Per Variant

Each Shopify variant has a URL (?variant=id). Whether to index depends on if the variant deserves its own SERP presence.

Last updated: July 30, 2026By

Start free trialAdd as a preferred source on Google

Every variant in Shopify can be opened directly with a ?variant= link, which is handy for ads, emails and social posts. Whether Google should index those URLs as separate pages is a different question, and for almost every store the answer is no. Here's how the URLs work, what Shopify does by default, and the rare cases where you'd want something else.

URL structure

A product lives at its handle: /products/red-cotton-tshirt. Each variant adds its ID as a query parameter: /products/red-cotton-tshirt?variant=12345. Open that link and the product page loads with that size and color already selected, with the right price and image.

Shopify doesn't create slug-style variant URLs like /products/red-cotton-tshirt/large. The query parameter is the only built-in way to point at a specific variant.

Default: canonical to base

On every variant URL, Shopify's canonical tag points back to the plain product URL. Google treats the variant links as versions of one page and gathers ranking signals there. Shopify's sitemap lists the product URL, not each variant, which tells Google the same thing.

That's the right setup for most stores. A size or color change doesn't make a different page worth ranking on its own, and splitting signals across 40 near-identical URLs would weaken the main one. Our guide to duplicate content from variants explains why this protects you.

When to index variants

There are a few situations where a variant may deserve its own search presence:

If those apply, the cleaner fix is usually to make it a separate product with its own handle, rather than forcing a variant URL into the index. A separate product gets its own title tag, meta description, sitemap entry and canonical, with no theme hacking.

How to allow variant indexing

If you still want variant URLs indexed, a developer has to change the canonical tag in theme.liquid so it outputs the variant URL for chosen products, and ideally change the title and description per variant too. Without unique content, Google will often ignore your canonical and pick the main product anyway.

Test on a duplicate theme, then watch Search Console for a few weeks. If you go this way, our guide to meta descriptions per variant covers the content side.

Variant URLs are still valuable, just not for organic search:

A worked example

Say you sell a tote bag in natural, black and olive. Shoppers search "canvas tote bag", and a few search "olive tote bag". All three colors share one handle, /products/canvas-tote, which ranks for the main term. The olive search is better served by mentioning olive in the description and image alt text than by indexing ?variant= for olive.

Now say you launch a limited "Artist edition" tote with a printed design, its own story and its own photos. That's no longer a color. Make it a separate product, link it from the main tote page, and it can rank for its own name.

How to check your setup

  1. Open a variant URL and view the page source. Find rel="canonical" and confirm it points to the plain product URL.
  2. Check there's only one canonical tag. SEO apps sometimes add a second.
  3. In Search Console, inspect a variant URL and compare the declared and Google-selected canonicals.
  4. Open /sitemap.xml and confirm product URLs appear without variant parameters. Our note on variants in the sitemap explains what to expect.

Personalization doesn't add URLs

Some stores worry that personalization options will multiply URLs. They don't. With Print It My Way, a customer's name, font choice or uploaded photo is saved on the order as a line-item property, not as a variant, so it never creates a new ?variant= URL or a new page for Google to crawl.

Frequently asked questions

Do Shopify variants have unique URLs?

Yes. Each variant can be opened with a ?variant= parameter on the product URL. By default those URLs canonicalize to the main product page.

Should variants be indexed?

Usually not. Index a variant only if it has its own search demand and genuinely distinct content, and even then a separate product is often the cleaner choice.

How to change canonical for variants?

A developer edits the canonical tag in theme.liquid to output the variant URL for chosen products. It's an advanced change, so test it on a duplicate theme and run a full SEO check afterwards.

Does variant URL affect ranking?

Not directly. The canonical tag sends ranking signals from variant URLs to the main product URL, which is where the page ranks.

Can I have SEO-friendly variant URLs?

Not natively. Shopify only supports the ?variant= parameter. If a variant needs a keyword-rich URL, make it a separate product with its own handle.

How to prevent variant URL indexing?

Shopify's default canonical tag already handles it. Make sure no theme edit or app has changed that tag and that only one canonical appears on the page.

Best practice for variant URL sharing?

Share the variant URL in ads, emails and support replies so the right option is preselected. For general links and internal navigation, use the plain product URL.

Related reading

Sources & further reading

Primary sources referenced in this article. We link to official platform documentation and standards bodies rather than secondary summaries so you can verify claims directly.

Try it free on Shopify

Print It My Way's permanent Free plan includes live preview, custom options, and Cart Transform pricing.

Install Print It My Way