Skip to content

Two Stores One Keyword and The Ranking that Will Not Move

Nothing breaks, no warning appears, and both pages sit lower than one would have. It is the most expensive problem in multi-location SEO that nobody reports.

Two dispensary store pages pulling on one search query, with both ranking lower than a single page would
The short answer

Nothing visible. No error, no warning, and both pages sit lower than one would have. Links, internal links and engagement split between them.

SubjectKeyword cannibalisation Part ofLocal search and the map pack
In this article

Cannibalisation is unusual among SEO problems because it produces no error.

There is no notice in Search Console, no red status in a crawl, no drop dramatic enough to trigger an investigation. Two of your pages are competing for the same search, both are ranking somewhere, and the reports look fine. It survives for years on that basis.

The cost is real and it is invisible in the same way that a slow leak is invisible. You do not notice the water. You notice the bill.

What actually happens

When two pages target the same intent, everything that would have made one page strong is divided between them.

ONE TERM, TWO CANDIDATES “ann arbor dispensary” STORE PAGE A 8 links half the internal links,half the engagement STORE PAGE B 7 links the other half ofeverything One page would have had 15 links and all of the engagement Nothing was lost to a competitor. It was divided between two pages you own.
Nothing was lost to a competitor. It was divided between two pages you own.

External links that would have pointed at one page point at two. Internal links from your blog and navigation split across both. Engagement signals split. And Google, given two candidates that look interchangeable, has to pick.

Three things can then happen, and all three are worse than having one page.

It picks the weaker page. Your Ann Arbor store page has the better content and more links, but Google shows the Ypsilanti page for “ann arbor dispensary” because of some signal you cannot see. You are ranking, badly, with the wrong page.

It alternates. The URL shown changes week to week. Neither page accumulates a stable history for the query, and both hover lower than they should.

It shows both, lower. Occasionally you get two results in positions eleven and fourteen where one page would have sat at six. This one feels like a win to anyone reading a rankings report, which is how it survives review.

Why dispensary chains get this more than other retailers

Three things stack up, and none of them are mistakes anyone made.

Licensing clusters your stores. Zoning and licence caps push dispensaries into the same metros and often the same few districts. Two of your stores may be eleven minutes apart, both genuinely serving the same city, both with a legitimate claim to the city term.

Paid channels are closed, so location pages carry the entire acquisition load rather than supporting it. In an ordinary retail business, a weak location page is compensated for by paid search. Here there is nothing behind it.

The pages came off one template, which usually means they inherited the same title pattern and the same targeting. If the template said “{City} Dispensary | Brand”, every store got the same instruction.

That third point is the one to hold. Cannibalisation on a chain is almost never eleven separate decisions. It is one decision, shipped eleven times. So the fix is a system rather than a rewrite, and it starts with one term per store, assigned before anybody writes.

How to see it in Search Console

1. Performance report, filter to one query you know several stores could rank for. Your city name plus dispensary is the usual candidate.

2. Switch the view from Queries to Pages with the filter still applied. More than one of your URLs appearing here means overlap exists.

3. Change the date view to compare week by week rather than looking at totals. Totals hide the pattern completely, which is why this goes unnoticed. You are looking for alternation: page A in weeks one, three and five, page B in weeks two, four and six.

4. Note the average position of each. If two pages alternate around position ten, a single consolidated page would very likely sit meaningfully higher. That difference is what the overlap costs.

The fourth step is the one that turns this from a curiosity into a business case. “Two pages are competing” is interesting. “Two pages are competing and one page would rank six positions higher” gets budget.

Map the whole chain at once

The cannibalisation mapper takes your stores and the terms each targets, then shows which branches compete with each other, which stores have no term of their own, and which phrases nobody can own.

Run the keyword cannibalization mapper

The ownership model that fixes it

One term, one owner. That is the whole principle, and the work is deciding rather than writing.

EACH RUNG HAS ONE OWNER STATEmichigan cannabis dispensary a state hub page, if you have one Broad and competitive. Rarely worth chasing until the city pages are winning. CITYann arbor dispensary a city hub page, never a store If three stores serve one city, none of them owns the city term. The hub does. NEIGHBOURHOODkerrytown dispensary one store page, exclusively Smaller volume, higher intent, impossible for your other stores to claim. NEAR MEdispensary near me the Business Profiles, not a page Resolved by proximity. No page can own it, so stop putting it in titles.
Terms sit on rungs. Two pages on the same rung is the definition of the problem.

The city term goes to a hub, never to a store. If three stores serve Ann Arbor, none of them owns “ann arbor dispensary”. Build a city page that covers the market, explains the differences between your locations, and links down to each. That page can win the city term without any of your stores fighting for it.

Each store owns something smaller. A neighbourhood, a district, a landmark, an adjacent town it genuinely serves. Lower volume, higher intent, and impossible for your other stores to claim.

Near me belongs to the profiles. Google resolves it from the device, so no page can own it. Putting it in eleven title tags guarantees your own pages compete for something none of them can win.

Consolidate or differentiate

Once you know which pages overlap, there is exactly one question that decides what to do with each.

ONE QUESTION DECIDES IT Does a customer need this page for something other than ranking? YESDifferentiate A store page carries the address, hours and directions. It is where your profile sends people. Keep both. Move one down a rung to a neighbourhood it can own alone. NOConsolidate A service page, an old landing page, or a second city page created during a campaign nobody remembers. Merge the useful content into the survivor and 301 the other.
Store pages are almost always differentiate. Old campaign pages are almost always consolidate.

Does a customer need this page for anything other than ranking?

If yes, differentiate. A store page carries the address, the hours, the directions, and it is where your Business Profile sends people. Deleting it to solve a keyword problem creates a customer problem. Keep it and move it down a rung.

If no, consolidate. Old campaign landing pages, a second city page created during a promotion nobody remembers, a service page duplicating a location page. Merge anything useful into the survivor and 301 the rest.

The mistake here is applying one answer to everything. Teams either delete aggressively, losing pages customers actually use, or refuse to delete anything, leaving genuine duplicates in place because removing pages feels destructive.

On a Michigan chain, two stores eleven minutes apart had both been given the same city term as their primary target.

Neither ranked in the top ten. Both had been live for over a year.

After separating them onto their own neighbourhoods, both entered the top five within a quarter, for terms with lower search volume and noticeably better conversion. The traffic was smaller and worth considerably more, because somebody searching a neighbourhood already knows roughly where they are going.

That last sentence is the argument to use when somebody objects to targeting smaller terms. Volume on a term two of your stores are splitting is worth nothing to either of them.

Do not fix this by rewriting pages first.

Retrofitting targeting onto finished content usually means rewriting all of it, which is why remediation projects on this run long and get abandoned.

Map ownership on one sheet before anyone opens a page. An afternoon of deciding saves a month of writing.

The stores with nothing assigned

There is a second finding that comes out of every ownership map, and it surprises people more than the overlap does.

Some stores have no term at all.

Not a term shared with another branch, no term. Nobody ever decided what that page was for, so it inherited whatever the template said, which is usually the city term everybody else is also chasing. So the store with no strategy ends up competing with the stores that have one.

When you build the sheet, add a column for “primary term” and fill it in for every location before you do anything else. The blanks are usually the fastest wins on the whole project, because a page with nothing to rank for has nowhere to go but up.

What to do this week

Open a spreadsheet. One row per store. Columns for the primary term that store owns alone, two or three secondary terms, and the neighbourhoods it genuinely serves.

Fill it in before touching a page. Within twenty minutes two things become obvious: which stores are competing with each other, and which stores have nothing assigned.

Then work through the overlaps with the one question above. Store pages get differentiated. Everything else gets consolidated.

The page changes that follow are straightforward. The sheet is the actual work, and it is the part that gets skipped because it does not look like progress.

If you take one thing away

Two pages on the same rung of the intent ladder is the problem. Decide ownership on a sheet before anyone writes a word.

Check this on your own site with the Cannibalization Mapper

It runs in your browser, needs no signup, and tells you whether the problem described above applies to you. If it does, the fix is named rather than quoted.

Open the Cannibalization Mapper