A free, working cannabis & CBD SEO library. Browse the library ›
Home » Blog » Cannabis Store SEO
Turn search into orders

How to Do SEO for a Cannabis or CBD Online Store

In short

SEO for a cannabis or CBD online store is ordinary e-commerce SEO done on ground the ad platforms refuse to touch: products in your own crawlable HTML, deep category pages, filters that don't flood the index, accurate Product schema, and out-of-stock pages that keep their URLs. On top of that sit the category's own rules for payments, shipping, age gates and health claims, and for seed banks, the questions growers ask before they order.

Why cannabis store SEO works differently

Cannabis store SEO carries more weight than SEO for an ordinary shop because the paid channels are mostly closed. Google's dangerous products and services policy keeps THC products out of Google Ads, and its unsupported Shopping content rules keep recreational drugs out of Shopping listings. Meta's advertising standards on drugs block the same products on Facebook and Instagram. Hemp-derived CBD gets a little more room in a few narrow, certified cases, and that is about it.

So a store that would normally buy traffic on day one has to earn it. Every competitor faces the same wall, which means the operator who builds the better catalog, content and links keeps the lead, and that lead compounds. Our guide to navigating Google's policies on cannabis content covers where the lines sit for organic content.

Platform, menus and age gates

The platform decision comes first, because it decides whether your products can rank under your own domain at all. Shopify does not allow THC sales, and it allows hemp CBD only under its own conditions, so most plant-touching stores end up on self-hosted WooCommerce or a cannabis-specific commerce stack. Self-hosting means you control every URL, template, canonical tag and schema block.

Menu iframes hand your rankings away. Dutchie, Jane, Tymber and Treez often render menus inside an iframe or on a platform subdomain. Google credits that content to the provider's domain, so the products inside rarely rank as pages on your site. Our answer on how menu platforms like Dutchie affect dispensary SEO walks through the options. If your provider offers a version that renders products into your own HTML, use it. If it doesn't, your category pages, guides and brand pages have to carry the rankings, and the embedded menu only handles checkout.

Check what Google actually renders. Many cannabis storefronts load products with JavaScript. Google can render a lot of it, as its JavaScript SEO basics explain, but rendering is delayed and fragile. Open URL Inspection in Search Console, run a live test on a product page and read the rendered HTML. If the product name, price and description are missing, so is your ranking. Our guide on handling JavaScript rendering on cannabis sites covers the fixes.

Build the age gate as an overlay. A gate that redirects every first visit to a URL like /age-check is the one that erases a store from search. Googlebot doesn't accept cookies or click "Yes, I'm 21," so every URL resolves to the same thin verification page. The safe pattern serves the full page HTML and puts the age question in a light JavaScript overlay on top that remembers the answer. Google's guidance on intrusive interstitials names age verification as a legal obligation it doesn't penalize. Rerun the live URL test after every plugin or theme update. The legal side differs by state and product; our guide to age-verification requirements for cannabis sites covers what to confirm.

Structure the catalog

A cannabis catalog structure that ranks is usually three levels deep: category, subcategory, product. On a seed store that might be Seeds, then Feminized, Autoflower and Regular, then each strain inside one of them. A shopper or a crawler should reach any product in about three clicks from the homepage. Deeper than that, pages fade from view. Shallower, broad categories turn into unsorted piles.

Put breadcrumbs on every category and product page and mark them up with BreadcrumbList structured data. A trail like Home > Seeds > Autoflower > Northern Lights Auto tells shoppers and Google where the page sits.

Check for orphans before every launch: products no category or internal link points to, reachable only by typing the URL. They collect no internal authority and rarely rank. And plan splits early. When a subcategory passes roughly two dozen products, split it by something shoppers search, like High-THC Autoflower and Fast-Flowering Autoflower, before a mature catalog makes every move a redirect.

Category and collection pages

Category pages are where most cannabis store rankings live, because they outlast the products in them. Strains sell out and SKUs die, but the Indica Seeds or Live Resin Carts page persists. A bare grid with a heading ranks for nothing, though.

Write copy above and below the grid. Two or three sentences above the products orient the shopper. A longer block below the grid carries the substance: what separates the products, how to choose, who each option suits, what you'd hand a first-timer. Keep it visible on the page instead of collapsed in an accordion. Link every subcategory with plain HTML links.

Here is a worked example. An Indica Seeds category holds 40 products. The weak version has a title tag of "Products," a grid and nothing else. The strong version uses "Indica Cannabis Seeds" as the title and H1, two sentences above the grid on why growers pick indica for shorter, bushier plants, then about 200 words below on flowering time, structure and how to choose, followed by links to Feminized Indica and Autoflower Indica. Same 40 products, and now the page has something to rank on.

Pick collection themes from search data. Shoppers search "indica gummies," "high CBD flower," "strongest edibles," and "cheap ounces," and those rarely match how your catalog is organized internally. Build collections only for phrases Search Console and autocomplete show people typing, and name the exact query each one targets. If an existing page already targets it, improve that page instead. Two near-identical collections split impressions until one is made genuinely narrower.

Bundles work the same way. "Cannabis starter kit" and "gift set" are searches single products rarely match, so give each kit its own copy, Product schema and links to every item inside.

Faceted navigation and filters

Faceted navigation is where cannabis category SEO quietly breaks. Five attributes with a few values each, plus sort orders, can turn one category into hundreds of parameter URLs, each a near-copy listing a subset of the same products. Google's own guide to managing faceted navigation URLs covers the problem.

The fix is boring and reliable:

  • Canonical by default. Point filtered and sorted views at the clean category URL with a canonical tag, so indexing consolidates on one strong page.
  • Keep crawlers off the noise. Canonicals handle indexing, but Google still spends effort fetching every URL it can reach. Disallow low-value filter and sort parameters in robots.txt so crawling goes to products.
  • Index only the combinations people search. Where a filter combination has steady demand, like "autoflower feminized seeds," give it a clean, self-canonical URL and a short intro of its own. Everything else stays canonicalized away.
  • Keep parameters consistent. Fix the parameter order so ?type=auto&size=5 and ?size=5&type=auto can't both exist, and decide which parameters are filters and which are sorts.

A worked pass: a Clones category with filters for type, size and price. Every filtered combination canonicals to /clones/, the price and sort parameters are disallowed, and search data shows steady demand for "autoflower clones," so /clones/autoflower/ becomes a real page with its own intro. Server logs show whether the cleanup worked; our guide to using log files to improve cannabis crawl efficiency shows how to read them.

Product pages that rank and sell

A cannabis product page ranks when it gives Google and the buyer more than a name, a THC number and a stock photo. Most catalogs ship exactly that, which is why most product pages never rank. Start with the title.

Titles follow the query. Shoppers type the strain first: blue dream cart, gorilla glue eighth, sour diesel pre-roll. So the pattern is strain, then the real differentiator, then format, then size. Google truncates displayed title links at roughly 60 characters. "Premium Top-Shelf Hybrid Vape Cartridge 1 Gram (Limited Batch)" runs past that and never names the strain. "Blue Dream Live Resin Cart 1g" is 29 characters and mirrors the search.

Descriptions lead with specs. Growers and buyers compare numbers. For seeds that means type (feminized, autoflower or regular), photoperiod or auto, flowering time and yield, pulled from the breeder's data and stated as ranges when the breeder does. Compare "Gelato is a beautiful, popular strain with amazing flavor" with "Gelato, feminized, photoperiod, flowering 8 to 9 weeks, breeder-reported yield around 500 to 550 g/m2 indoor, manageable height, suited to a grower with one run behind them." Only the second answers "Gelato feminized flowering time." Every product needs its own text, even if it's three honest sentences.

Strain pages out-detail the encyclopedias. Leafly and similar databases hold most bare strain terms, and you don't need to beat them on every strain in existence. You need to beat them on the strains you carry. State the lineage plainly (Runtz is Zkittlez crossed with Gelato), name the dominant terpenes, link the batch certificate of analysis, and describe effects as what users report. Cannabis is not approved to treat anything, as the FDA's cannabis and CBD page makes clear, so "growers commonly report a heavy body feel" is the safe phrasing and also the more credible one. Our guide on avoiding health claims in cannabis content lists the wording to keep off product pages.

Photos are rankable assets. A supplier packshot sits on twenty other sites; your own photo of the actual jar is unique. Name it like a search (blue-dream-feminized-seeds.webp), write alt text that describes the frame, export WebP at the size the page renders, and place it next to copy about that product. Google's image SEO best practices cover image sitemaps for photos loaded through gallery scripts.

Accessories deserve the same care: your own copy in place of the manufacturer blurb, answers on material, size and fit, and links to what each item pairs with.

Product schema, variants and review stars

Product schema is JSON-LD that states what the shopper already sees: name, image, description, and an offers block with price, priceCurrency and availability. Google's Product structured data docs list the required fields. Filled in accurately, it makes a page eligible for price, stock and rating details in results.

Keep variants on one URL. A 3-pack, 5-pack and 10-pack of Blue Dream feminized seeds are one product at three quantities. Three URLs means three near-identical pages splitting links and reviews. Use one canonical page with a size selector that updates price and cart in place, and mark it up as one Product with an offers array, one Offer per variant, each with its own price, SKU and availability. Google's guidance on product variants covers the larger-catalog pattern. Split a variant onto its own page only when it has its own search demand and its own content, and apply whatever rule you choose across the whole catalog.

Mark up the price the visitor sees. If markup says $40 and the page says $45, Google can drop the rich result. Where there's no single price, use an AggregateOffer with a low and high price. When a product sells out, flip availability to OutOfStock in the same edit that updates the page.

Stars need real reviews. AggregateRating can earn star snippets, but Google's review snippet guidelines and general structured data policies require ratings collected from your own customers and shown on the page. Invented or scraped ratings can cost you every rich result on the site. Ask with a plain post-purchase email once the product has been used. If you offer a reward, the FTC's Endorsement Guides and its rule on consumer reviews require it to be disclosed and never tied to a positive rating. Answer the bad reviews in public, since a page of nothing but five stars reads as staged.

Out-of-stock, seasonal and discontinued products

Out-of-stock handling in cannabis comes down to one question: is the product gone for now or gone for good? Most ranking losses here come from treating the two the same way.

Gone for now: keep the page. A strain that sold through until the next harvest keeps its URL, its copy and its rankings. Mark it out of stock on the page and in schema, add a restock signup, and point to the closest in-stock alternative.

Seasonal: keep it dormant. Clone demand builds in late winter, peaks through spring planting and falls away by August, while seeds sell all year. A clone category that has ranked for three springs holds authority a new page can't buy, so never unpublish it in October. Switch the copy to a short block saying freshly rooted cuts return in early spring, offer the restock list, and link seeds of comparable genetics that can be started indoors now. Flip pages back to in-season copy a few weeks ahead of the peak.

Gone for good: redirect to the closest honest substitute. When a breeder retires a strain or a supplier stops cutting it, 301 the URL to the nearest real match. Same strain in another format or from another breeder beats a similar strain, which beats the parent category. The homepage is almost never the answer, because Google treats irrelevant redirects as soft 404s and drops the equity anyway. For example, a retired Wedding Cake clone listing can redirect to Wedding Cake seeds, with one line at the top of the destination saying the clones are discontinued and seeds are available.

Nothing fits: return a 410. A discontinued accessory line with no comparable product, or a compliance-pulled item you can't reference, gets a 410. Google's HTTP status code documentation explains how it treats removals. Batch the work monthly: export discontinued products, assign each a destination or a 410, ship, and spot-check Search Console a few weeks later.

Payments, shipping and hemp rules

Payments, shipping and hemp rules are where compliance shows up on a store's pages, and payment friction is the top reason cannabis carts get abandoned. THC sales can't run on the major card networks, and many mainstream processors refuse hemp and CBD too, so checkout often relies on ACH, debit, e-checks or a high-risk processor. You usually can't change the gateway. You can tell people what to expect before they get there.

  • Explain payment upfront. A short "How payment works" note on product pages and a linked FAQ naming the accepted methods heads off the surprise. That FAQ also ranks for questions like "can you buy hemp flower with a credit card."
  • Offer guest checkout. Forced account creation stacks a second obstacle on top of an unfamiliar payment method.
  • Keep checkout out of the index. Cart, checkout and order-confirmation paths get noindex. Every step runs on HTTPS with no mixed-content warnings, and any security badge links to a real certificate.
  • Put trust signals in reach. A license or registration number, a real address, a phone someone answers, a plain refund policy and batch COAs linked from the product page. The same signals feed the trust Google describes in its guidance on helpful, reliable content.

Shipping rules belong on the page too. THC products can't cross state lines at all, so dispensary e-commerce is local pickup or licensed delivery. Hemp and CBD can ship, and USPS Publication 52 sets the conditions for mailing hemp-derived products, but a number of states restrict or ban specific hemp products, especially intoxicating ones like delta-8. The federal picture is moving as well. Congress narrowed the federal hemp definition in Public Law 119-37 in November 2025. Cannabinoids synthesized or manufactured outside the plant, which can include delta-8 converted from CBD, lose hemp status on November 12, 2026, and most other intoxicating hemp-derived products follow on December 11, 2026, after a one-month delay signed into law on September 2, 2026. Congress is still weighing further delays and a federal framework, so check the current status before you plan a launch. The USDA hemp program is the federal starting point. Check where each product line lands, keep a list of states you ship to, and say it plainly on product, category and shipping pages. Our guide to handling state-by-state cannabis marketing rules covers keeping that copy current. This is general information, not legal advice.

Seed banks and clone stores

A seed bank or clone store ranks by winning the searches growers run before they order: strain plus seeds, breeder names, and the germination and shipping questions that stall a purchase. Leafly, SeedFinder and similar reference sites own most bare strain names, so target "Gorilla Glue feminized seeds" and "buy autoflower seeds" over "Gorilla Glue." Those terms carry buying intent, they're easier to win, and a reference site can't ship the product.

Build breeder hubs and lineage pages. Growers search by breeder, so a page grouping everything you carry from one breeder ranks for that name and links down to each strain. Lineage pages catch genetics research ("Runtz lineage," "Blue Dream parents") and link to the product page. Get the facts right, say so plainly where an origin is disputed, and add first-hand grow notes on stretch and finishing time that user-submitted databases lack.

Answer the three buyer decisions. Feminized, autoflower or regular. Photoperiod control or autoflower simplicity. And will the seeds sprout. Build the buying guide around those decisions and link each option to its category. Give the germination guarantee its own page with plain terms (what to expect, what happens if seeds don't pop, how to claim) and link it from every product page. It reassures a nervous buyer and ranks for "seed bank germination guarantee."

State pages need real substance. Ungerminated seeds are widely sold nationwide under souvenir or collector framing, which is why a buyer in a non-legal state can often order. A state page should answer that buyer's questions and point to their own state's rules without promising anything is legal to grow. Fifty pages that swap only the state name are what Google's spam policies call doorway pages.

Clone listings speak grower. "Freshly rooted" is the phrase, because anything that sounds unrooted reads as a plant that will arrive dead. Teens, clones and seeds are three buyers and each needs its own category. The shipping page should get specific about packaging, transit time and weather holds. And publish clone pages in fall and winter, so they have months to earn position before the spring rush.

Content that feeds the catalog

Store content earns its budget only when it hands readers into the catalog, to a product or category page they can buy from. Most store blogs pull traffic that reads and leaves because the posts dead-end.

Write for the decision. "What is CBG" is curiosity. "Best CBG flower for focus" is someone about to spend money. Buying content targets the second kind: "best {product} for {goal}," comparisons and "vs" searches. Link each recommendation to the exact product page in the sentence that makes it, and use comparison tables with the deciding attributes in columns and the product linked in each row. A "feminized vs autoflower" guide that adds a three-row table and one linked pick per grower type sends the same traffic into the catalog.

Group guides into hubs. Sort guides by topic, each linking to the category where that reader would buy: terpenes feed flower, germination feeds seeds, lighting feeds equipment. If your menu is an iframe, this layer is often the only rankable content you own.

Mine your own search box. Turn on GA4 enhanced measurement for site search and read the zero-result queries. Say the report shows 240 searches for "carts" and 60 for "510" with no results. That's two changes: "carts" goes into the cartridge category copy, and a 510-thread battery page goes live linked from it. Our guide to building a keyword list for a CBD product line shows how to check outside demand.

Plan for the long tail and the calendar. "Best indica gummies for sleep" sees a fraction of the searches "gummies" does and converts far better. Holiday demand piles onto fixed dates: 4/20, 7/10 for concentrates, Green Wednesday and the October harvest. Put each on one evergreen URL like /420-deals, publish six to eight weeks ahead, and refresh the same page every year. Judge every piece by clicks into the catalog, as our guide on tracking conversions from cannabis organic search sets up.

Replatforming without losing rankings

A replatform is the riskiest thing you can do to a cannabis store's rankings, and plenty of stores face one when a platform's THC policy forces them out. Done carelessly, years of authority drain away in a week.

  • Map every URL 1:1. Crawl the old site first, including old posts and out-of-stock products that still pull traffic. Pair each URL with its single closest new equivalent as a 301. Redirecting everything to the homepage tells Google the old pages are gone.
  • Change one thing at a time. Platform first, with templates as close to the old ones as possible. A redesign or URL cleanup comes weeks later as its own project, so a drop can be traced to one cause.
  • Carry the content over intact. Category intros, FAQs, internal links and schema are the usual casualties when new templates come across thinner.
  • Crawl staging, then watch Search Console. Catch redirect chains, orphans and a blocked robots.txt before launch, then check the Pages report weekly for a month.

A worked example: a seed store moves to WooCommerce and organic traffic falls about 40 percent the next week, because /collections/autoflower-seeds became /product-category/autoflower/ with no redirect between them. One 1:1 map recovers most of it.

Branded search and repeat buyers

Repeat buyers search by brand name, so branded search is the cheapest sale to protect and the easiest to lose. Search your store name, then your name plus "reviews," in a private window and mark which results you control. Your Google Business Profile, social profiles and Weedmaps, Leafly and Yelp listings should all be claimed, current and matching your site.

Email and SMS bring buyers back before they search, and in a category without retargeting ads, an owned list does the job retargeting would. The rules are firm. Commercial email falls under the FTC's CAN-SPAM rules: a truthful sender and subject line, your postal address, and unsubscribes honored within ten business days. Marketing texts fall under the Telephone Consumer Protection Act, which requires prior express written consent and an easy opt-out. Collect consent at checkout and log it. Our guide to cannabis SMS and push notification rules covers the texting side in detail.

None of this flips on overnight. Category depth, clean filters, accurate schema and a content layer that feeds the catalog compound month after month, and the store that starts first is hard to catch. If you'd rather have a team build and run that program for your store, that's what our cannabis e-commerce SEO service does.

Key takeaways

  • Ad bans make organic search the main acquisition channel for cannabis and CBD stores, and every competitor faces the same wall.
  • Get products into your own crawlable HTML, build age gates as overlays, and check rendered HTML in Search Console after every update.
  • Category pages hold most rankings: copy above and below the grid, crawlable subcategory links, and filters canonicalized unless a combination has real demand.
  • Product titles lead with the strain, descriptions lead with specs, and Product schema matches the visible price and stock on one URL per product.
  • Out-of-stock and seasonal pages keep their URLs; discontinued products 301 to the closest honest substitute or return a 410.
  • Explain payment methods and shipping limits before checkout, and keep hemp copy current as federal and state rules change.
  • Seed banks win strain-plus-seeds queries, breeder hubs, germination guarantees and honest state pages, never name-swapped templates.

Frequently asked questions

Can a cannabis online store rank on Google without ads?

Yes. Google and Meta ban THC ads, but organic search, Google Business Profile and owned email and SMS lists are all open. Because every competitor faces the same ban, the store with the stronger category pages, product pages and content takes the traffic, and that lead compounds over time.

Should out-of-stock cannabis products be deleted?

No. A product that will come back should keep its URL, show out-of-stock status on the page and in schema, and offer a restock signup. Only products gone for good should be redirected to the closest substitute, or return a 410 if no honest substitute exists.

Do Dutchie or Jane menus hurt my store's SEO?

Embedded menus that load in an iframe or on the provider's subdomain usually get credited to the provider, so the products inside rarely rank on your domain. Ask whether your provider offers a version that renders products into your own pages. If not, your category pages and guides have to carry the rankings.

Can CBD stores take credit cards?

Some can, usually through a high-risk processor, but many mainstream processors refuse hemp and CBD, and THC products can't run on the major card networks at all. Whatever methods you accept, name them on product pages and in an FAQ before checkout so buyers aren't surprised at the payment step.

How should a seed bank handle state pages?

Build them only for states with real search demand, and make each one answer that buyer's questions about shipping, delivery and what they're responsible for checking locally. Pages that only swap the state name are treated as doorway pages, and no page should promise that growing is legal.

Sources

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 ›