A free, working cannabis & CBD SEO library, 500 guides. Browse the library ›
Home » Blog » Keyword Research for Cannabis » How to Build a Cannabis Keyword Map by Search Intent
Keyword Research for Cannabis

How to Build a Cannabis Keyword Map by Search Intent

In short

A keyword map is a spreadsheet with one row per keyword: the term, its intent, and the single page that will target it. Build it once and every content decision afterward gets easier.

Sort every term into three intent buckets

Start with three columns of intent. Informational covers learning queries like "edibles vs smoking" and "what is live resin" — those get guides. Local covers "dispensary open near me" and "weed delivery denver", which get location and service pages. Transactional covers "buy live resin carts online", which belongs on a product or category page. The bucket decides the page type. Get this wrong and you end up writing a 2,000-word blog post for a query Google answers with a map pack.

Let the SERP break ties

Plenty of cannabis terms could go either way on paper. Search them. If the top ten is blog posts and a People Also Ask box, Google has decided the query is informational. If it is the map pack plus Weedmaps and Leafly listings, it is local. "best edibles" looks commercial, but the results are listicles — a bare category page will not crack that SERP, so the map should assign it to a guide that links to the category.

One keyword group, one page

The map exists to enforce a single rule: each keyword group gets exactly one target URL. When two pages chase the same term they split links and confuse Google about which to rank, and usually both lose. Writing the URL next to the keyword makes duplicates impossible to miss.

Set up the spreadsheet

Six columns cover it: keyword, intent, target URL, priority, status, notes. Group variant rows together so "weed delivery" and "cannabis delivery" visibly share one URL. Keep status honest — planned, drafted, published, needs rework. That column is what turns the map from research into a working queue.

A worked example: 60 terms for a delivery service

I mapped a 60-term list for a Denver delivery client in one afternoon. Twenty-four informational terms collapsed into nine blog posts once variants were grouped. Twenty-one local terms went to the homepage and six area pages. Fifteen transactional terms mapped to eight category pages. Four terms had no page to serve them, so four new pages went on the backlog, and two existing pages both targeting "edibles delivery" got consolidated into one. The list was the same before and after; the difference was that afterward it was a plan.

Feed it from Search Console monthly

The map decays if it only contains the keywords you started with. Once a month, open the Search Console Performance report on the 16-month window, sort queries by impressions, and add anything real that is missing a row. Queries where you already rank on page two are the cheapest wins on the whole map, since the page exists and just needs work.

Key takeaways

  • Three intent buckets (informational, local, transactional) decide the page type for every term.
  • When intent is ambiguous, the live SERP is the ruling, not your guess.
  • One keyword group, one URL; the map exists to enforce that rule.
  • Six spreadsheet columns are enough: keyword, intent, URL, priority, status, notes.
  • Refill the map monthly from the Search Console 16-month query report.

Frequently asked questions

What tool do I need to build a keyword map?

A spreadsheet. Google Sheets handles a few hundred rows without complaint. Ahrefs and Semrush are useful for exporting the raw keyword list, but the map itself is just columns: keyword, intent, target URL, status.

How many keywords can one page target?

One primary term plus every close variant that shows the same search results. If two phrases return mostly the same top ten, they belong on one page. If the results differ, they need separate pages.

What if a keyword fits two intents?

Search it and see which page type Google rewards. Assign the term to that page type, then serve the secondary intent with internal links, such as a guide linking to the category page it feeds.

How often should the map be updated?

Monthly is enough. Pull new queries from the Search Console Performance report, add rows for anything worth targeting, and update the status column as pages get published or reworked.

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 ›