Tom McSherry
Retail & Ecommerce

Store page vs product page cannibalisation: when your pages fight

Tom McSherry

Tom McSherry

18 June 2026 · 7 min read

Here's a pattern I see again and again with retailers who have a physical shop and an online store: their rankings for an important term keep bouncing around, and it's not a competitor doing it - it's their own two pages fighting each other. One week Google shows the store page, the next week it shows the category page, and neither ever settles at the top. That's cannibalisation (two of your own pages competing for one search, so both rank worse than a single strong page would), and in a bricks-and-clicks setup it's baked into the structure if you're not careful.

Why store and product page cannibalisation hits hybrid retailers

Most businesses don't have this problem because they only have one type of page for a given topic. You have two, and they overlap by design. Your store or location page talks about your category because that's what you sell there. Your category page also, obviously, talks about your category. So both pages contain the same words, target roughly the same phrase, and look to Google like candidates for the same search.

The result is that Google has to pick which of your pages ranks, and when two of yours look equally relevant, it either splits the authority between them - so neither is as strong as one combined page would be - or it swaps between them and your position wobbles. It's the same mechanism I deal with across multi-branch local businesses cannibalising each other; the retail version just has a store page and a product page as the two combatants instead of two branch pages.

The diagnosis: who is each search actually for?

Before you touch anything, work out which of your two customers each contested search belongs to. This comes straight back to the two search journeys on your one site:

  • "[Category] near me", "[category] shop [suburb]", "open now" - local intent. The owner is your store/location page and your Google Business Profile. Your product pages should not be trying to win this.
  • "[Specific product]", "[category] online", "buy [item]" - product intent, no location. The owner is your category or product page. Your store page should not be trying to win this.
  • "[Item] in stock near me", "click and collect [category]" - the genuine overlap, which needs its own deliberate handling rather than two pages guessing at it.

Once each search has an intended owner, the cannibalisation usually turns out to be a page reaching for a search it was never meant to win - a category page with a city bolted on, or a store page stuffed with product keywords.

Giving each search a single owner

The fix is almost never to build more pages. It's to make each page unmistakably about its own job and pull it off the other page's turf. More pages makes this worse, not better - every extra near-duplicate is another candidate for Google to get confused by.

  1. Fix the store page on local intent. Titles and headings about visiting you, your area, your hours and stock - not a keyword dump of every product line.
  2. Fix the category pages on product intent. Strip the city out. Let them target the specific item and specialist searches nationally.
  3. Point internal links deliberately. Link with anchor text that matches each page's job, so you're telling Google which page owns which search rather than leaving it to guess.
  4. Where two pages genuinely serve the same intent, don't run both - consolidate into the stronger one and redirect the weaker.

That fourth point matters. If you've got two pages both chasing "buy [category] online", you don't need both. Merge them, keep the stronger URL, and 301 the other one across so its authority flows into the survivor instead of competing with it.

The homepage trap on top

There's often a third combatant: the homepage. Retailers load the homepage with every category and location because it feels like the strongest page, so it should rank for everything. It can't. Your homepage can't rank for everything, and when it competes with your store page for local terms and your category pages for product terms, you now have a three-way fight. Let the homepage be the front door that points to the right specialist page, and let those pages carry the actual searches.

A specialist retailer whose two pages fought for years

I worked with a specialist retailer where the honest finding was that their store page and their main category page had been optimised for the exact same phrase for so long that Google had more or less given up ranking either of them well. There was no quick keyword tweak - it needed the store page pulled firmly back to local intent, the category page cleared of location language, and one redundant page merged away. It settled after that, but the lesson is that the longer two of your pages fight, the more ranking momentum you lose in the meantime. Sort it early.

Find the bouncing query in Search Console and pick one owner

Open Search Console, find any query where the page Google shows for you keeps changing, and you've almost certainly found a cannibalisation fight. Decide which single page should own that search, rewrite the loser so it stops competing (or merge and redirect it), and line your internal links up behind the winner. Don't add pages to fix a ranking problem - clarity beats volume every time here.

This is a core part of SEO for local and ecommerce hybrids. If you want the upside as well as the fix, your physical stock is the one thing the online-only players can't copy - more on that in local inventory and in-store pickup.

Want this done for you?

See how a profit-first SEO strategy could work for your business - no obligation.

See the case studies