A free, working cannabis & CBD SEO library, 500 guides. Browse the library ›
Home » Blog » Cannabis E-commerce SEO » How to Structure Variants on Cannabis Product Pages
Cannabis E-commerce SEO

How to Structure Variants on Cannabis Product Pages

In short

Sell the same strain in a 3-pack, 5-pack, and 10-pack from one canonical product page with a variant selector, not a separate URL per size. Put each size in a Product schema offers array. One page keeps ranking signals together and kills duplicate content.

One product, one page

A 3-pack, 5-pack, and 10-pack of Blue Dream feminized seeds are not three products. They are one product at three quantities. Give them three URLs and you have three pages saying almost the same thing, competing for the same search and splitting the links, reviews, and ranking signals that should stack on a single page. The clean pattern is one canonical URL with the pack size chosen from a dropdown or a set of buttons. The shopper picks a size, the price and add-to-cart update in place, and the URL stays put. Everything that helps the page rank lands in one spot.

Reserve separate pages for real search demand

The exception is a variant distinct enough that people search for it by name. If shoppers hunt specifically for a 1-gram versus a 3.5-gram of a concentrate, and each has its own demand and its own description, those can earn separate pages. The test is simple: does the variant pull its own searches and need its own content? Pack sizes of seeds almost never pass that test, so consolidate them. A distinct product form sometimes does. When in doubt, consolidate; splitting is the move you have to justify.

Mark up every variant with Product schema

Structured data is where consolidation pays off. Use one Product with an offers array, one Offer per variant, each carrying its own price, SKU, and availability. A search engine can then show an accurate price range, say $25 to $70, for the product while attributing all of it to the one page. Here is the worked case: Blue Dream feminized on a single URL, a size selector for 3, 5, and 10 packs, and three Offer entries under one Product node. One page, one canonical, three offers, zero duplication.

Handle it the same way every time

Whatever pattern you land on, apply it across the catalog. If seed pack sizes consolidate onto one page, every strain should follow that rule, not a mix where some strains split by size and others do not. Consistent variant handling keeps the catalog predictable for shoppers, easier to maintain, and cleaner for crawlers that learn to expect one URL per product. A one-off exception you forget about six months later is exactly how orphan duplicate pages creep back in.

Key takeaways

  • Keep pack sizes and weights of one product on a single canonical URL.
  • Use a variant selector that updates price and cart without changing the URL.
  • Give the page a Product schema offers array, one Offer per variant.
  • Split into separate pages only when a variant has its own search demand.
  • Apply the same variant pattern across every product in the catalog.

Frequently asked questions

Should each pack size get its own URL?

No. A 3-pack, 5-pack, and 10-pack of the same strain are the same product at different quantities, so they belong on one canonical URL with a variant selector. Separate URLs for each size create near-duplicate pages that split ranking signals and compete against each other for the same searches.

How do I mark up variant prices for search?

Use a single Product with an offers array, one Offer per variant, each carrying its own price, SKU, and availability. That lets a search engine show an accurate price range for the product while keeping everything attributed to one page, instead of scattering offers across duplicate URLs.

Want this done for your brand?

We build cannabis & CBD search visibility with full transparency, for dispensaries, brands, and MSOs.

Get a free cannabis SEO audit ›