I'm afraid that "keyword cannibalization" takes place when for example I have the following two pages on my site: /en/shoe and /en-us/shoe. Can I assume with absolute certainty that Google's search engine in the United States only shows /en-us/shoe in the serp when it is clear to the search engine that the person doing the search with the keyword "shoe" speaks english and is in the United States. And when it is only clear to the search engine that the person speaks english that only the /en/shoe page is shown in the serp. And when both are not known the "x-default" page is the only one indexed in the serp for that person. I understand that this situation - if it can occur at all - can only occur if hreflang html tags are perfectly applied on the site.

The perfect application hreflang should look like this if I have understood everything correctly.

You can write the word 'shoe' in the following languages:

  • French (fr) : chaussure
  • Spanish (es) : zapato

My fictitious site has the following pages with the corresponding hreflangs:

  • /en/shoe (en) and (x-default)

  • /es/zapato (es)

  • /fr/chaussure (fr)

  • /en-us/shoe (en-us)

  • /en-ca/shoe (en-ca)

  • /en-uk/shoe (en-uk)

  • /es-us/zapato (es-us)

  • /es-ca/zapato (es-ca)

  • /es-uk/zapato (es-uk)

  • /fr-us/chaussure (fr-us)

  • /fr-ca/chaussure (fr-ca)

  • /fr-uk/chaussure (fr-uk)

And the next hreflang structure has each of the pages mentioned above.

  <title>Wha efa</title>
  <link rel="alternate" hreflang="x-default" href="http://example.com/en/shoe" />
  <link rel="alternate" hreflang="en" href="http://example.com/en/shoe" />
  <link rel="alternate" hreflang="es" href="http://example.com/es/zapato" />
  <link rel="alternate" hreflang="fr" href="http://example.com/fr/chaussure" />
  <link rel="alternate" hreflang="en-us" href="http://example.com/en-us/shoe" />
  <link rel="alternate" hreflang="en-ca" href="http://example.com/en-ca/shoe" />
  <link rel="alternate" hreflang="en-uk" href="http://example.com/en-uk/shoe" />
  <link rel="alternate" hreflang="es-us" href="http://example.com/es-us/zapato" />
  <link rel="alternate" hreflang="es-ca" href="http://example.com/es-ca/zapato" />
  <link rel="alternate" hreflang="es-uk" href="http://example.com/es-uk/zapato" />
  <link rel="alternate" hreflang="fr-us" href="http://example.com/fr-us/chaussure" />
  <link rel="alternate" hreflang="fr-ca" href="http://example.com/fr-ca/chaussure" />
  <link rel="alternate" hreflang="fr-uk" href="http://example.com/fr-uk/chaussure" />

Before I go any further, it is important to note the following.Every page about "shoe" that is written in english has almost exactly the same text. So it's duplicate text.The same goes for Spanish and French pages on the subject of "shoe". So take that in to account.

So I am looking for sources and facts that conclusively establish that keyword cannibalization will not take place. Hopefully you can provide them. :-)

FAQ: Do you need the /en directory? Is that for customers from Australia and New Zealand? Do the pricing and shipping options even make sense for them? – Stephen Ostermiller♦ 4 hours ago

Very good point. Thank you for your comment. In practice I will also have an /en-au/shoe and /en-nz/shoe page. It could be that someone in a non-English speaking country searches with the keyword "shoe" and then these people can go to /en/shoe. That is the idea behind it. Because what if someone in Pakistan is looking for the keyword "shoe"? That person is not supposed to land on the /en-us/shoe page.

Just so we're clear. In my question I gave the impression that this is a webshop site, but the idea behind my question is that people should land on pages that best (!!) match the language they speak (and use to google) and where they come from. And sometimes not all this information is there for the search engine and therefore instead of showing /en-us/shoe it can show /en/shoe. So I am willing to make all those different pages for the same keyword but only if there is no keyword cannibalization.

To sum up: I'm afraid that with all these similar pages with different geo-targets and languages the google algorithm will be confused and therefore show multiple url's of my website in the search results in the united states for the keyword "shoe" --> /shoe, /en/shoe and /en-us/shoe for example. This is that cannibalization I'm so afraid of.

  • "speaks english and is in the United States" / "match the language they speak (and use to google) and where they come from." - Note that hreflang is a language preference only (to match languages set on the user's browser). It doesn't have anything to do with location. Are you concerned about "location" (ie. geo-targeting) as well?
    – DocRoot
    Commented Jul 6, 2020 at 12:04
  • @DocRoot - Thank you for your comment! If I'm not mistaken, geo targeting/location is part of it. "..Hreflang is interpreted by search engines and can be used by webmasters to clarify the lingual and geographical targeting of a website.." . What other use would the /en-us part serve? I'd like to use geo-trageting and hope to do that with the hreflang. I'm hoping you can help me out. :-)
    – Fabian
    Commented Jul 6, 2020 at 13:57

1 Answer 1


In order to avoid the duplicated content, you can use the canonical url.

In the page for /es-es/zapatos you would add a canonical link to /es/zapatos

Example for the page href="http://example.com/es-es/zapato"

  <title>Wha efa</title>
  <link rel="alternate" hreflang="es" href="http://example.com/es-es/zapato" />
  <link rel="canonical" href="http://example.com/es/zapato" />

Here a link of Google Support Webmasters https://support.google.com/webmasters/answer/139066?hl=en, describing how to use the canonical url

I hope my answer helps you.

  • 1
    Thank you for your answer, but this answer is wrong. If I implemented what you advise, it would be impossible for /es-es/zapatos to rank for the keyword "zapatos" in spain as. While that is not the intention as described in my question.
    – Fabian
    Commented Jul 7, 2020 at 15:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.