You work the SEO for two similar product pages, and neither one ever quite takes off. You check Search Console and there’s the pattern: both show up for the same search, trading positions back and forth. It’s not bad luck — it’s keyword cannibalization, and in ecommerce it’s an everyday occurrence.
What keyword cannibalization is
Two or more pages on your own site competing for the same keyword. Google can’t decide which one to show, so it alternates between them, and the result is usually worse than if a single page concentrated all the signal: unstable rankings, split CTR, and diluted authority.
Why it happens so often in ecommerce
Online stores are fertile ground for it: near-identical products with near-identical pages, variants split across separate product pages, categories competing with their own products for the generic keyword, and descriptions cloned straight from the manufacturer. The more similar products you have, the more likely Google is to get contradictory signals about which page is “the” one for each search.
How to detect it
The most direct signal is in Search Console: filter by a specific query and check how many different URLs show up for it. If two or more pages consistently split impressions for the same keyword, that’s cannibalization. Rank-tracking tools like Dinorank systematize this with cannibalization reports that do the cross-referencing for you, keyword by keyword.
- A keyword with two or more of your own URLs alternating in the GSC performance report.
- Rankings that swing up and down with no changes on your page or from competitors.
- A category and a product competing for the same generic search.
- Low CTR on both pages despite seemingly decent rankings.
What to do once you find it
The classic fix: decide which page should win and strip away the internal competition from the other — by differentiating each page’s intent, consolidating content, or redirecting if one of the two is redundant. But in categories there’s an extra lever almost nobody uses: order. If two products are cannibalizing each other, choosing which one you push in the category (and which one you relegate) is part of the fix — it tells your users, and Google along with them, which one is your candidate.
💡 Category order is a merchandising decision with an SEO effect. How to make that call with data, in which products to feature first in each category.
Sorting with cannibalization in mind
Zeyvro Merchandiser imports Dinorank’s cannibalization report and factors it into the order it proposes for each category: Gemini’s suggestion doesn’t just look at clicks and rankings from Search Console and Analytics, it also looks at which products are stepping on each other. And since the module saves the last order applied per category, you test the change with a safety net: if it doesn’t work, you revert.
Frequently asked questions
Is cannibalization always bad?
Not always — holding two results for one search can be a good thing if both pages convert. The problem is when the signals get split so much that neither page ranks stably.
Can I detect it with Search Console alone?
Yes: filter by query and check how many URLs show up for each one. It’s manual and slow for large catalogs; cannibalization reports from tracking tools like Dinorank automate that cross-check.
What exactly does Merchandiser do with the Dinorank report?
You import your Dinorank export and the module uses it as one more input when proposing the category order: if two products are cannibalizing each other, the suggestion accounts for it instead of ignoring it.
Do I need Dinorank to use the module?
No. It’s an extra input for the suggestion, not a requirement — without it, the module works just the same with Search Console and Analytics.
Your products shouldn’t be competing with each other. Decide which one you push — with the data in front of you.
Try Zeyvro Merchandiser free for 7 days →Zeyvro builds PrestaShop 8 modules from a real store in production. Unobfuscated code.