Skip to content
Case studies

Cannabis SEO Results, Measured And Dated

Real accounts, real numbers, and the

  • 6 engagements documented in full
  • 4 of them cannabis retail
  • 1 manual action recovered
  • 0 links bought on any of them
01 Multi-state dispensary chain 50+ locations, multiple states

JARS Cannabis

A manual action lifted, then organic traffic 19 times higher across fifty stores

The hardest engagement in this list and the one worth reading first. A multi-state chain arrived carrying a live manual action, with location pages built from a single template, a spam backlink profile inherited from previous work, and a menu the crawler could not read. Every store was affected at once, because a manual action targets the pattern rather than a page.

Organic traffic
20,234 387,356
19.1 times, three months after the action lifted
Impressions
174,524 1,287,645
7.4 times, same window
Indexed pages
1,845 37,643
20.4 times, after the index was rebuilt
Manual action
Lifted
accepted on the first request submitted

What was wrong

  • A live manual action suppressing the entire domain
  • Spam backlinks and manipulated anchor text from earlier campaigns
  • Location pages near identical across more than fifty stores
  • Dynamic routing generating duplicate URLs at scale
  • Thousands of low value pages diluting the site, plus 3XX and 4XX errors throughout

Local search results

50+locations brought back into search
1reconsideration request, accepted
3 mofrom lift to the numbers above

What was done

  1. Inventoried the whole affected pattern, not the examplesGoogle names a sample. The action applies to everything matching it, so every URL and every referring domain was catalogued from the sitemap, Search Console, and a full crawl before a single fix was made.
  2. Backlink cleanup with a documented outreach logSpam links and manipulated anchors identified, removal requested at source with every attempt dated and recorded, then disavowed at domain level only where removal failed.
  3. Location pages rebuilt from per store factsPrototypes built first, then rolled out. Real parking, landmarks, staff, and local detail, with the standard that no paragraph should still make sense if the city name were swapped.
  4. Content pruned, consolidated, and removedEvery page given one of three outcomes: rewritten, merged with redirects, or removed with correct status codes. Dummy pages cleared through Search Console removals.
  5. Technical remediation across the estateDuplicate URLs from dynamic routing resolved, canonicals corrected, subdomain meta data fixed, structured data errors cleared, and the redirect chains untangled.
  6. Trust signals and an education programmePrivacy policy, About page schema, and editorial standards addressed, then a cannabis education blog built to give the domain something to be authoritative about.
  7. One evidenced reconsideration requestSubmitted only after every fix was live and documented. Numbers, decisions, and dates rather than argument, because a denial makes the next review slower.
Read this honestly

The multiples look extreme because a manual action does not slow a site down, it removes it. Traffic was not depressed, it was largely gone, so recovery reads as growth on a chart when it is really a return to existing. The genuinely transferable part is the sequence: inventory the whole pattern, fix everything, document every decision, then submit once. Teams that appeal early and repeatedly spend months proving they were not ready.

Back To All Engagements
02 Cannabis dispensary Michigan Six months

Bloomery Cannabis

From almost no organic search presence to 172,000 clicks in six months

A Michigan dispensary with a strong in store reputation and effectively no organic visibility. The site was competing in one of the most crowded cannabis markets in the country with a structure that gave Google very little to work with.

Search Console clicks
669 172,000
six months against the previous six
Impressions
4,520 361,000
six months against the previous six
Keywords ranking
15,000
per Search Console, 4,000 of them non branded
Business Profile interactions
228,000
September 2024 to January 2025

What was wrong

  • Almost no organic visibility despite a full product range
  • Site architecture that made crawling and internal linking inefficient
  • No meaningful local presence in the surrounding towns
  • Thin, repetitive content across the pages that existed

Local search results

+75%local search traffic
+70%call volume from local search
+65%business interactions
+60%positive reviews

What was done

  1. Keyword research built around real buying intentMapped the terms customers actually search, separating product intent from location intent so pages were not competing with each other before a word was written.
  2. Technical rebuild of speed and mobile renderingFixed the delivery problems first, because content added to a site Google struggles to read is budget spent twice.
  3. Google Business Profile and location pagesBuilt the profile properly, then created location specific pages carrying real detail rather than one template with the town name changed.
  4. Local citations and directory consistencyBusiness citations across the platforms that matter in this industry, with identical details everywhere, which is what makes a local entity credible.
  5. A sustained content programmeEducational and category content to build topical authority, rather than a burst of pages published once and abandoned.
Read this honestly

The click figure looks implausible until you see the starting point. This site was not losing rankings, it had effectively never had any, so the first six months were about existing in search at all rather than climbing. That is a very different job to recovering a site that has slipped, and it is worth being clear which one you are looking at.

Back To All Engagements
03 Multi-location dispensary Monroe, Vassar and New Buffalo, Michigan Six months

URB Cannabis

73,474 Business Profile interactions across a three city chain

A chain competing against dispensaries a few minutes away in each of its markets. The websites were fine to look at and largely invisible in local search, which is the pattern that costs a store the most because the customer is already ready to buy.

Business Profile interactions
73,474
New Buffalo, twelve month view
Calls from the profile
1,884
single month, September 2024
Local citations
+50%
over the engagement
Referring links
+30%
earned, none purchased

What was wrong

  • Limited visibility in the local results that drive walk in traffic
  • Business Profiles left under optimised across all locations
  • Very few local citations, and a thin backlink profile
  • Site architecture that needed work for mobile and for crawling

Local search results

+55%website clicks from the profile
+45%calls in six months
+40%positive reviews
4.8average rating, 5,452 reviews

What was done

  1. Location level keyword researchTerms assigned per store, such as the New Buffalo searches, so branches stopped competing for the same results and each page had something specific to win.
  2. Business Profile optimisation across every storeDetailed categories, real photography, consistent details, and regular posts and questions, treated as an ongoing channel rather than a one off setup.
  3. Dedicated pages for each dispensaryBuilt individually rather than generated, with the meta data, headings, speed and mobile experience handled per page.
  4. Local education contentGuides written for the communities each store serves, answering the questions that come up in that specific market.
  5. Citations and industry relevant linksBuilt through directories and cannabis specific platforms rather than bought, which matters in an industry where link penalties are common.
Read this honestly

The interesting number here is not the interaction count, it is the calls. A dispensary customer who phones is usually checking stock before driving over, which makes it the closest thing to a booked sale that local search produces.

Back To All Engagements
04 Multi-location dispensary Michigan, multiple stores Six months

Dispo

Clicks from 36,500 to 151,000, with click through rate up from 4 to 10.4 percent

A well known Michigan chain that was ranking but not being clicked. Impressions were reasonable and the results were not compelling enough to earn the visit, which is a different problem to invisibility and needs a different fix.

Search Console clicks
36,500 151,000
six months against the previous six
Impressions
911,000 1,450,000
six months against the previous six
Click through rate
4.0% 10.4%
the metric that carried this engagement
Organic traffic, third party estimate
43,300
monthly, per Semrush

What was wrong

  • Ranking without converting the impression into a visit
  • Content that had never been written with search intent in mind
  • Poor mobile performance on a site where most visits are mobile
  • Weak rankings on the location terms that drive footfall

Local search results

+67%interactions at the Romeo store
+56%positive reviews across locations
+40%website clicks from profiles
+38%reported footfall to stores

What was done

  1. Business Profile work per storeEach listing optimised individually, because a chain is not one entity to Google, it is a set of them that each need to earn their own prominence.
  2. Local keyword integrationLocation terms worked into the site properly rather than appended, so the pages read naturally and still matched the searches.
  3. Review generation and responseA steady flow of recent reviews with replies, which feeds both local prominence and the decision a customer makes when comparing two nearby stores.
  4. Mobile and speed remediationFixed the experience on the device most of these visits actually happen on.
  5. Content built around real questionsProduct guides and blog content aimed at what customers ask before they buy rather than what the business wanted to say.
Read this honestly

Worth being straight about one thing: not every location moved the same way. Romeo rose 67 percent while Whitmore Lake fell about 15 percent over the same window. That is normal across a chain, it usually reflects something local rather than the programme, and a report that shows only the store that went up is a report you should not trust.

Back To All Engagements
05 Hydroponics eCommerce Michigan, online and retail Twelve months

HGS Hydro

Nearly 4,900 organic keywords for an indoor growing supplier in a saturated market

A catalogue business selling growing equipment, competing against both local shops and national retailers. The problems here are the ones every cannabis adjacent eCommerce site has: technical debt, thin category pages, and no authority to fall back on.

Search Console clicks
8,590
trailing twelve months
Impressions
766,000
trailing twelve months
Organic keywords
4,900
per Ahrefs
Additional monthly visitors
2,000+
organic, per month

What was wrong

  • Site speed, mobile performance, and a structure that hindered crawling
  • A deep product range with almost no organic visibility behind it
  • National retailers dominating the terms that mattered
  • Category and product content too thin to compete

Local search results

276referring domains
1.2Ktotal backlinks
94%of traffic from the United States
33.4average position, still improving

What was done

  1. Keyword research across local and national intentSeparated the terms winnable locally from the ones requiring national authority, and sequenced the work accordingly.
  2. Technical remediationSpeed, mobile responsiveness, and a rebuilt architecture so navigation made sense to a crawler as well as a customer.
  3. Category and product page optimisationReal content on the pages that sell, with internal linking that pushed authority to where it converts.
  4. Authority contentGuides that establish the site as worth reading in a category where most competitors publish product specifications and nothing else.
  5. Earned link acquisitionTargeted outreach to gardening and agriculture sources rather than bought placements.
Read this honestly

Average position of 33 tells you this was still early. Impressions had grown far faster than clicks, which is exactly what you expect when a site starts appearing for terms it is not yet strong enough to win. That gap is the opportunity rather than the failure, and it is the next thing you work on.

Back To All Engagements
06 Multi-location, 100 branches United States, nationwide network Six months

L.A. Insurance

Local SEO across a hundred branch network, with fifteen profiles taken first

Not cannabis, and included deliberately. This is the clearest evidence of the thing multi state dispensary chains actually need: managing local search across a very large number of locations without the whole thing collapsing into a template.

Search Console clicks
24,500 32,800
six months against the previous six
Impressions
2,360,000 3,340,000
six months against the previous six
Average position
51.5 47.6
across a very large keyword set
Non branded keywords
10,000
ranking organically

What was wrong

  • Around 100 Business Profiles, most of them unmanaged
  • Location pages needed for a hundred branches without duplicating them
  • Low organic visibility in a competitive local category
  • No consistent content or link strategy across the network

Local search results

1,975profile interactions, Detroit, up 34%
1,539profile interactions, Denver, up 14%
+30%calls from local search
+30%positive reviews

What was done

  1. Full audit before anything was touchedTechnical health, content gaps, and link opportunities mapped first, so the sequence of work was decided by evidence rather than by habit.
  2. Prioritised fifteen profiles rather than all hundredSpreading effort across a hundred locations at once produces nothing measurable anywhere. Concentrating it proves the model, then you scale what worked.
  3. On page and internal linking overhaulMetadata, structure, and internal links rebuilt so the network passed authority to its own location pages properly.
  4. Citations and listing consistencyConsistent business details across directories, which at this scale is a genuine data management problem rather than an afternoon of edits.
  5. Content aimed at local service queriesWritten for the searches people actually make in each market, plus educational material for the questions that precede them.
Read this honestly

The transferable lesson for a dispensary chain is the sequencing. Fifteen locations done properly beats a hundred done thinly, because the first approach produces a result you can point at and repeat, and the second produces a report nobody believes.

Back To All Engagements

Want To Know What Your Own Numbers Would Look Like?

Send the domain and the states you operate in. The audit will tell you where the visibility is going before you commit to anything.

Get Your Free Audit Or see how an engagement like these is run