Skip to content

Jun 11, 2026

Why your dispensary menu iframe is killing your Google rankings

If your menu lives in an embedded iframe, the SEO you're earning is quietly building someone else's domain — here's how to tell, and how to take it back.

You buy the ads. You post on social. You ask happy customers for reviews. And yet when someone in your town types "[your city] dispensary" into Google, a marketplace shows up first — sometimes with your store listed on it — and your own website is nowhere near the top. If that sounds familiar, the culprit is probably sitting right on your menu page, and most owners never realize it's there. It's called an iframe, and there's a good chance it's quietly handing your search traffic to a company that isn't you.

This post explains what that is, why it's so common in cannabis, and why it costs you rankings — in plain language, with a checklist at the end so you can diagnose your own site in about ten minutes.

What an embedded menu actually is

When you signed up with a menu provider or marketplace, they almost certainly gave you a snippet of code to paste into your website — or they built the site for you with that snippet already in place. That snippet creates an iframe: a window on your page that displays a second page loaded from their servers.

Think of it like a storefront on a busy street. The building has your name on the awning, your address, your front door. But the entire showroom inside — the shelves, the products, the prices, the "add to cart" button — is actually a television screen mounted in the window, broadcasting a feed from a warehouse across town. Customers can shop through the glass just fine. To them it looks like your store. But everything they're actually looking at belongs to, and is served by, somebody else.

This setup became the cannabis default for an understandable reason: menus are hard. Inventory changes hourly, pricing and product rules vary by state, and keeping all of that in sync with your point-of-sale is real engineering. Embedding a ready-made menu was the fast way to get something live. The trade-off — the part nobody put in the sales deck — is what it does to how search engines see your site.

Why Google credits the marketplace, not you

Here's the mechanism, and it's worth getting right because the common version of this story is wrong. People say "Google can't see content inside an iframe." That's not true — Google can render and read framed content perfectly well. The real problem is more subtle, and worse.

An iframe doesn't copy the menu onto your page. It loads a separate page from another web address — the marketplace's. So when Google indexes that menu content, it attributes it to the address it actually came from: the marketplace's domain, not yours. Every product name, every strain description, every bit of text a shopper might search for is, in Google's ledger, evidence that the marketplace is a great answer for "cannabis menu in [your city]" — because that's whose page is serving it.

Strip the framed window out of the picture and look at what's left on your own page: a header, a footer, maybe a paragraph of intro text. Thin. There's almost nothing unique and substantial for Google to rank, because the substance — your actual products — technically lives somewhere else. So the search equity you're working hard to earn flows uphill to the marketplace, and your own domain stays light. You're renting a storefront whose foot traffic is being counted toward the landlord's reputation, not yours.

The shoppers see your brand. The search engine sees the marketplace. Over months and years, that gap is the difference between owning your customer relationships and renting them.

The symptoms you're probably already seeing

You don't need to read code to spot this problem. It shows up in ways that are frustratingly familiar:

  • You can't rank for your own city. Searches like "[city] dispensary" or "dispensary near me" surface marketplaces, aggregators, and competitors — but not your own site, even though you've been in business for years.
  • Your menu pages feel invisible. Search for a specific product you carry plus your city, and the result that shows up (if any) points to a marketplace listing, not to your domain.
  • Competitors with worse stores outrank you. A newer shop down the road shows up above you because their site puts real, readable product content on their own domain — and yours hides it behind glass.
  • Your "traffic" isn't really yours. Customers find you through a marketplace, transact in an environment that brand belongs to, and that platform — not you — owns the relationship and the data going forward.

None of this means you've done anything wrong. It means the structure you were handed was built to grow the platform's footprint first, and yours second.

Why real HTML on your own domain fixes it

The fix is structural, not a marketing trick: put the actual menu — as real, readable text — directly on pages that live on your own domain. No window to another address. The content is your page.

When your menu is rendered as ordinary HTML on your site, a few things change at once:

  • It's crawlable and indexable as yours. Every product, category, and description is text on your domain, so the search equity it earns accrues to you. Each page becomes a reason for Google to rank your site for the searches your customers are actually doing.
  • Your pages stop being thin. A live, synced menu is a deep, constantly-updating library of relevant content — exactly what search engines reward — instead of a near-empty frame.
  • You can describe your products to search engines properly. Real pages can carry structured data (the behind-the-scenes labels that tell Google "this is a product, here's its name and price"), which embedded frames on someone else's domain don't earn for you.
  • Speed counts in your favor. Pages served as plain HTML tend to load fast, and speed is both a ranking factor and the difference between a shopper who buys and one who bounces.

This is the entire idea behind Bower: your menu, synced from your point-of-sale — POSaBIT, Dutchie, and Flowhub integrations are planned at launch — rendered as real indexable HTML on your domain — built to be compliant — for a flat monthly fee instead of a cut of every sale. Same convenience the embed promised, without quietly building someone else's search rankings on your back. You can see how that's put together on our features page, and what it costs on pricing.

A ten-minute checklist to diagnose your own menu

Before you change anything, find out where you actually stand. Walk through these in order:

  1. Right-click your menu and look for "This Frame." On a desktop browser, right-click directly on your menu (on the products, not the page background). If a menu option mentions "This Frame" — like "Reload Frame" or "Open Frame in New Tab" — your menu is an iframe loading from somewhere else.
  2. Check the address on the framed content. Open that frame in its own tab (from the same right-click menu). If the web address that appears is a marketplace or menu-provider domain rather than your own, that's where Google is crediting your menu content.
  3. Search Google for your menu's words. Copy a sentence or product name from your menu, paste it into Google in quotation marks, and search. If the result that comes up is on a domain that isn't yours, the content isn't ranking for you.
  4. Search for the queries that matter. Try "[your city] dispensary," "dispensary near me" from your area, and a product-plus-city search. Note who shows up and whether your own site appears at all.
  5. View your menu page without the frame. Ask whoever maintains your site — or just look — what's actually written on the page itself, outside the embedded window. If it's a headline, a couple of lines, and not much else, that's how thin Google sees it too.

If you go through this and find your menu living on someone else's domain, you're not stuck — you're just renting when you could own. The path forward is to move the menu onto your own domain as real pages, so that every visit, every search, and every customer starts compounding into your asset instead of a marketplace's. If you'd rather not lose the SEO you've built in the move, that migration is worth doing carefully, and it's a question worth asking before you sign another year of an embed — our FAQ covers the common migration concerns head-on.

Want to own your dispensary's SEO?

Bower puts your menu on your own domain — flat fee, never a cut of your sales. Join the waitlist and we'll reach out as we open up in your state.

Join the waitlist