Skip to main content

Dutchie SEO

Dutchie SEO: Make Your Menu Indexable

Dutchie is the e-commerce backbone of roughly 70 percent of US licensed dispensaries, and on the open web that majority share is functionally invisible. A dispensary with 480 SKUs in Dutchie has, from Google's point of view, zero menu items.

The blackout

Why a Dutchie menu does not rank, and what changes when it does

Measured across 14 Bud Authority client baselines in Q2 2026.
CriteriaDefault Dutchie embedDutchie SEO
Where the product data livesInside a cross origin iframe served by dutchie.comServer rendered into your own HTML at the edge
What Googlebot receives on first crawlThe parent HTML with an empty iframe shellA complete HTML document with every product inline
Which domain owns the product contentdutchie.com, not the dispensary domainYour domain, indexed as the canonical source for those products
Structured product data emittedNone. No Product schema and no Offer schema on your domainProduct, Offer, priceCurrency and availability, generated from the same GraphQL response that drives the visible HTML
Rendering budgetClient side hydration, rationed. Roughly 30 to 40 percent of client rendered cannabis pages rendered within 14 days in our Q2 2026 windowIndexed in the first crawl pass, with no rendering wait
Indexed product URLs, 14 BA client baselines0 on average before remediation312 on average after remediation

Definition

What Dutchie SEO actually is

Dutchie SEO is the practice of making a dispensary's Dutchie powered menu visible to Google, Bing, and AI search engines. It solves the default client rendered iframe by reverse proxying the Dutchie GraphQL API, server rendering each product into the dispensary's own HTML, emitting Product and Offer schema, injecting product URLs into the sitemap, and validating Map Pack visibility. Cart, checkout, and compliance flows continue to run through Dutchie's authenticated session. Only the discovery surface, the part Google reads, gets rebuilt.

The mechanism

How Apex MenuEdge makes the menu indexable

Apex MenuEdge is Bud Authority's Cloudflare Worker. When a request hits a shop, menu, or product detail URL, it intercepts before the origin, calls the Dutchie GraphQL endpoint server side with the retailer ID, transforms the product JSON into fully formed HTML with Product schema, and returns the merged response. Googlebot sees a complete HTML document with all products inline. The visitor sees the same page hydrate normally and inherit the Dutchie cart and checkout flow. It runs at every Cloudflare edge location, needs no origin code changes, and its schema is generated from the same GraphQL response that drives the visible HTML, so structured data is never out of sync with the menu. That schema pipeline is tested against the Google Rich Results Test and the Schema Markup Validator on every deploy.
Cache TTL is bound to Dutchie product mutation events. Inventory changes invalidate within 60 seconds.
  • Menu API audit
  • Schema mapping
  • Server side rendering
  • Sitemap injection
  • Internal linking
  • Local pack validation
  • Every in stock product a server rendered URL
  • Full Product and Offer schema
  • Sitemap lastmod on inventory sync
  • Map Pack, Shopping and AI Overview eligible

Answered directly

The three questions operators actually ask

Why isn't my Dutchie menu showing on Google?

Dutchie's default integration is a cross origin iframe that loads product data client side after the page renders. Googlebot crawls the parent page, sees an empty iframe shell, and indexes the page without any product content.

Cross origin iframe

Can Dutchie iframes be indexed by Google?

No. Content inside a cross origin iframe is attributed to the iframe's origin, dutchie.com, not to the parent URL. A dispensary that embeds the menu via the standard iframe will never rank for the products inside it.

Attribution

Is Dutchie Plus being sunset in 2026?

Dutchie Plus is not being sunset. As of Q2 2026 Dutchie has signaled a consolidation toward a unified GraphQL endpoint and has reduced active development on legacy Plus REST endpoints. Dispensaries on Plus should plan a migration within 12 months.

Platform roadmap

Live proof

One New York store, before and after

Indexed pages before

Search Console, March 2026 baseline. Zero individual products indexed.

6
Indexed pages after

of which 312 are individual SKU URLs

341
Organic clicks on product queries

first 30 days after launch

1,840
Strain queries in the top three carousel positions

tracked strain level Map Pack queries

14 of 21
Edge requests served

in 60 days, with zero origin downtime events

2.3M
P95 time to first byte

GraphQL passthrough cache hit ratio of 91 percent

142ms
Cart conversion from organic product landings

against a 2.8 percent client average for category page landings

4.1%

Which one is yours

Dutchie SEO or a Dutchie Plus migration

If you do not know which integration you are on, the source of your menu page settles it.
CriteriaDutchie SEODutchie Plus migration
Which integration it applies toThe standard Dutchie embed, used by the majority of dispensaries on the platformThe headless Plus API, for dispensaries who built a custom storefront against the Plus REST endpoints
How to identify it from your own sourceView source on your menu page and find an iframe element pointing at dutchie.comView source and find custom product card HTML rendered by your own site
The workBypass the iframe with a reverse proxy and emit indexable HTMLTranslate the Plus integration to the newer GraphQL pattern
What happens to product URLsNew server rendered product URLs are created on your own domainEvery existing product URL is preserved through the cutover via 301 redirects

Pricing

Start with a free Dutchie SEO audit

A single location dispensary on a standard Dutchie embed is $1,500 one time setup, covering audit, schema mapping, MenuEdge deploy, sitemap wiring, internal linking, and initial Search Console submission, plus $500 per month. A multi location operator with 3 to 10 retail locations is $4,000 one time setup plus $1,500 per month. Enterprise operators with 10 or more locations, Plus migrations, and custom integrations are scoped individually. Every retainer is month to month with no annual lock in, and the Worker remains the dispensary's property if you offboard.
BA://OS