Definition
What is language cannibalization?
Language cannibalization happens when two versions of the same page, in two languages, compete for the same query because the engine never received a complete and reciprocal declaration of the available versions. Google then picks one (often the most established) and serves it to every audience. The symptom can be measured: impressions in one language that land on the pages of the other language.
How it happens
To Google, a French page and its English translation are two distinct URLs. Each one is discovered, crawled and indexed on its own. To know which one to serve to whom, Google reads a declaration of versions (the hreflang tag) that follows three rules:
- each version declares itself;
- each version declares all the others;
- the declaration is reciprocal.
Without reciprocity, Google ignores the whole set rather than keeping half of it. It then decides on its own and often serves the original version, which is the French version on a Quebec site that started in French.
Even when complete, the declaration remains a hint, not an instruction: Google can serve another version if it judges it a better match for the person searching. A word-for-word translation with few links can even stay "Crawled, currently not indexed" while the French version is indexed.
The three breaks that cause it
- The page created outside the translation workflow. It is the most frequent break. A product, a collection page or an article added by another team is neither translated nor declared. Nothing flags it: Google retired its International Targeting report in 2022, which showed these errors at site level.
- The badly formed URL. On a secondary market of a Shopify store, the URL must combine language and country (such as /fr-ca or /en-eu). A language-only subfolder exists only on the primary market.
- The faithful translation. The text is correct, but it does not contain the words the market's buyers type. Genuinely adapted content carries more weight than a perfect tag placed on a word-for-word translation.
The symptom and how to check
The symptom shows in the data, not in the site's admin, where everything seems to work. In Search Console, filter pages by their language prefix (/en/, for example) and compare their impressions with those of the equivalent pages in the other language. English-language impressions landing on your French pages mean the demand exists and the translation is not receiving it.
Then view the source code of a translated page: it must declare itself as well as its twin. The monthly check comes down to two figures, the number of pages published in each language. The gap between them is your translation debt.
Fictional example: a Quebec manufacturer publishes the English version of its 60 pages to target Ontario. Three months later, English-language traffic has not moved. Search Console nevertheless shows English queries generating impressions on the French pages.
The English pages do declare their French twins. The French pages, which are older, do not declare the English ones: reciprocity is missing. Google ignores the declaration and serves the most established version to both audiences. The fix is made in the French page template, not in the market budget.
We read language cannibalization as an architecture problem disguised as a market problem. When English-language traffic does not move after a translation, the explanation adopted in the meeting is often that the market is harder, and management then cuts the budget of the wrong item. We first look at where the impressions go, because the cause is often technical.
We also treat translation as a publishing step rather than a project: a page is not live until its version in the other language exists, or else it is explicitly accepted as single-language. Finally, we have the market's buying vocabulary gathered before translation, so the translated version uses the words its buyers search for.
Not to be confused with
- Keyword cannibalization
- Keyword cannibalization pits two different pages of the same site, in the same language, against each other for one query. Language cannibalization pits two versions of the same page, in two languages, against each other.
- Hreflang tag
- The hreflang tag is the declaration that prevents language cannibalization: it links the versions of a page and tells Google which one to serve by language and country. Incomplete or not reciprocal, it is ignored.
- Market vocabulary gap
- The market vocabulary gap is the distance between your words and those of the buyers in a territory. It can cost sales even when the declaration of versions is perfect.
Related concepts
- Authority pooling
- Canonical tag
- Indexing
- Crawled, currently not indexed
- Market vocabulary gap
- Secondary market
- Market entry cost
- Technical SEO
Further reading
- Multilingual stores: coordinating translation, URLs and SEO
- Hreflang: helping Google choose your French or English page
- One domain or several for two markets: how to choose
- SEO in English-speaking Canada: going beyond translation
- Shopify Markets: entering a market without duplicating your store
- How long does Google take to index a site? The timings Google gave in 2026
Related services
Frequently asked questions
Why hasn't our English-language traffic moved since the translation?
Most often, the declaration of versions is incomplete or not reciprocal. Google then serves the original version to both audiences. The sign can be measured: English-language impressions landing on your French pages. It is a technical fix before it is a market problem.
How do we check that our French and English versions are not competing?
In Search Console, compare the impressions of the pages in one language with those of the equivalent pages in the other. Impressions in one language on the pages of the other point to an incomplete declaration. Also check that a translated page declares itself as well as its twin.
Does a translation plugin solve the problem?
Not on its own. It produces the tags, but it does not decide which versions exist or for which market. It also falls out of sync as soon as a page is created outside its workflow, which happens every time another team adds a page.