Skip to main content

Schema markup

Cannabis Schema Markup Optimization

Search engines do not read your content the way a customer does. They read your data. Schema markup tells them exactly what that data means, so the interpretation stops being a guess.

Measured

What the portfolio and the crawl benchmark show

195,648
Search Console clicks in July 2026 across the showcased client case files

All search, not schema only. 28 consented case files. See /portfolio

4,537,436
Search Console impressions in July 2026 across the same case files

Sentinel, 2026-07-01 to 2026-07-31. See /portfolio

9
Live reverse-proxied Dutchie storefronts fetched as GPTBot

Bud Authority crawl benchmark, 2026-10-12

152KB
Median HTML delivered per storefront page

Same 9 storefronts. See /apex-menuedge

2
Median readable body words in that HTML, so there is little text for markup to describe

Same 9 storefronts

0
H1 tags across all 9 storefronts

Same 9 storefronts

Validation

Invalid markup is worse than none

Shipping schema without validating it wastes the build and can confuse the parsers you were trying to instruct. Every deployment passes the Rich Results Test for eligibility, the Schema Markup Validator for syntax, and Search Console for what production actually does with it.

The failures repeat: required fields left empty, prices typed as strings, two LocalBusiness blocks fighting on one page, an Offer nested wrong inside a Product, hours that went stale a season ago, and special characters in a business name breaking the JSON-LD outright.

Our standard for upkeep

What the work costs and what keeps it alive

Single location setup

Organization, LocalBusiness, WebSite and BreadcrumbList wired at root and inherited down.

Root first
Multiple locations

Location specific schema plus the automation that keeps it synchronised with operations.

Scoped per store
Product availability sync

A sold out strain still marked InStock sends buyers to nothing and damages the listing.

Daily
Search Console review

The Enhancements report is where schema degradation shows up before it compounds.

Weekly
Full site schema crawl

Every page verified against the stack its page type is supposed to carry.

Monthly
Accuracy audit

Hours, service area, name and phone consistency, and rating freshness against current business reality.

Quarterly

The difference

The same page, with the stack and without it

Every row below is an outcome the markup either earns you or leaves on the table.
CriteriaPage without schemaPage with a complete stack
How the listing rendersA plain text listing competing on the title tag aloneStars, price, hours, steps and question dropdowns rendered inside the result
Click-through rateThe baseline every competitor sharesEligible for rich results, which change how the listing looks
Voice assistant eligibilityNothing structured for an assistant to extractFAQ answers extracted directly for spoken results
Shopping panel eligibilityIneligible. No price, no availability, no sellerEligible through Product and Offer markup
Who controls the interpretationGoogle guesses from the words on the pageYou do, because you declared what the data means
What it costs to keepNothing, because there is nothing to maintainDaily availability sync, weekly review, monthly crawl, quarterly audit

Start here

Find out what your markup is missing

A fixed scope audit of the structured data your site actually serves, page type by page type, returned as a prioritised queue rather than a report. It names what is absent, what is invalid, and what is quietly telling Google the wrong thing.
BA://OS