International SEO – Netflix’ SEO Problems on Google and What You Can Learn From Them

One month ago, Netflix.com had a dramatic loss in Visibility on Google, all over the world. To mention just a few of their important markets: they lost 71% Visibility in the UK, 64% in the USA, 59% in France, 49% in Italy, 43% in Germany and 39% in Spain.

Netflix managed to first regain and then even increase their Visibility, just one week later. But now, the Visibility has dropped again, for both Desktop as well as Mobile, and this time, there are no signs of a comeback, even two weeks later:

Visibility Index in the USA (Mobile and Desktop):

Visibility Index in the USA for mobile and desktop

One of Netflix’ interesting and somewhat unique problems comes from the fact that they work with different content providers in different countries in order to license the streaming rights for a variety of TV shows and movies. This may mean that Netflix cannot offer the same content in all of the countries they service. Netflix seems to be trying to deal with this situation, though not in the most elegant way.

Showing Google one thing and the users something different

It looks like many SEOs are unable to escape this temptation when it comes to international SEO and Netflix seems no different. This is the most probable reason for the first drop on Google, one month ago. The user was getting a different version of a page than the search engine crawler. This is a cut and dried case of cloaking and Google might have just eliminated these search results.

Allow me to show you one example which still works today, so you can try it out yourself. Google’s search result for the keyword “The Founder” delivers Google and users different versions:

The version for Google:

Content delivered to Google by Netflix

The version that visitors (e.g. in the UK) see when they access the same movie:

Content delivered to Users by Netflix

You only see the same content as Google if you are in the USA and I do not believe that Netflix is cloaking on purpose. They have to deal with a number of different licenses in a number of different countries, but that still does not change the fact that cloaking is considered a violation of Google’s Webmaster Guidelines.

The second most relevant element, that adds more chaos to this constellation, is the way in which Netflix redirects users based on their IP location. Bad idea for International SEO!

Second Drop – Same Problem but Worse

Initially it might sound like a good idea to determine what version of your page your visitors gets to see, based on their IP location. The big problem for SEOs comes in the form that the Googlebot crawlers are based in the USA, most of the time, giving them a United States IP address.

Let’s use “The Big Bang Theory” as an example. This show can be streamed on Netflix in both the United Kingdom and Germany, but not in the USA – because CBS has chosen to exclusively run the show on their own streaming platform, CBS All Access.

The default URL for “The Big Bang Theory” is the following: https://www.netflix.com/title/70143830. If you are in Germany, you will be redirect from there to https://www.netflix.com/de/title/70143830 based on your IP, and you get this content:

Netflix offer in Germany – “The Big Bang Theory”

If you are in the UK, you will be redirected from the default URL to https://www.netflix.com/gb/title/70143830 based on your IP, and you get this content:

Netflix offer in the UK – “The Big Bang Theory”

Netflix redirects the users from different countries based on their IP, but, as I said before, Google crawls from the USA and there Google gets a 404 “Not Found” for the default URL:

Netflix offer in the USA – “The Big Bang Theory”

As a result, all the rankings for “The Big Bang Theory” are gone for all countries. Take a look at the keywords lost on Google.co.uk:

Lost Keywords related to “The Big Bang Theory” on Google.co.uk

If we dig deeper with our analysis, we can see that the URL for this TV-Show has no more Visibility on Google.co.uk:

Visibility Index for just one URL of Netflix.com

They were ranking well 5 weeks ago, then they dropped because of their cloaking and they just disappeared again because Netflix is telling Google this content does not exist.

There is no way for Google to find out the right URL for each country. This is the ranking history of the keyword “The Big Bang Theory” for Netflix.com, it’s just gone:

Ranking History of the Keyword “The Big Bang Theory” for Netflix.com on Google.co.uk

Netflix also produces in-house shows or acquires the exclusive rights to stream content (Netflix Originals). These cases do not represent a problem because the shows can be streamed everywhere, and therefore also rank everywhere. An example would be Narcos.

International SEO – Takeaways

  1. Redirecting users based on their IP location is nearly always doomed to fail.
  2. Cloaking is also doomed to fail with the added perk of being a very, very bad idea.
  3. Follow Google’s recommendations. Use hreflang for language and regional URLs. Here some tips:

(a) Every URL shlould get their own markup

<link rel="alternate" href="https://www.example.com/en-us/" hreflang="en-US" />

<link rel="alternate" href="https://www.example.com/en-gb/" hreflang="en-GB" />

<link rel="alternate" href="https://www.example.com/de-de/" hreflang="de-DE" />

<link rel="alternate" href="https://www.example.com/de-at/" hreflang="de-AT" />

<link rel="alternate" href="https://www.example.com/es-es/" hreflang="es-ES" />

<link rel="alternate" href="https://www.example.com/es-mx/" hreflang="es-MX" />

Neither capitalisation nor the order of attributes make a difference. Keeping to the specifications though – lower case for the language, upper case for the country – can help to keep possible confusions to a minimum.

<link rel="alternate" hreflang="en-US" href="https://www.example.com/en-us/" />

<link rel="alternate" hreflang="en-GB" href="https://www.example.com/en-gb/" />

<link rel="alternate" hreflang="de-DE" href="https://www.example.com/de-de/" />

<link rel="alternate" hreflang="de-AT" href="https://www.example.com/de-at/" />

<link rel="alternate" hreflang="es-ES" href="https://www.example.com/es-es/" />

<link rel="alternate" hreflang="es-MX" href="https://www.example.com/es-mx/" />

(b) Don’t forget the confirmation links. If page A links to page B, page B must link back to page A. In our example, all 6 URLs must contain the same 6 lines. Missing only one markup on one of the six pages can already cause your entire hreflang construct to become invalid.

(c) en-UK is not English for the United Kingdom! Use the correct language codes: The language is defined though ISO-639-1 codes and countries use ISO-3166-1-alpha-2 codes.

(d) There are 54 sovereign states where English is an official language and Spanish is the official language for 20 sovereign states. If you want to cover all of these countries, without creating 70 new entries, simply use an entry that just specifies the language. The important thing to remember is that language is a must (!), while country is only optional.

<link rel="alternate" href="https://www.example.com/en/" hreflang="en" />

<link rel="alternate" href="https://www.example.com/es/" hreflang="es" />

<link rel="alternate" href="https://www.example.com/en-us/" hreflang="en-US" />

<link rel="alternate" href="https://www.example.com/en-gb/" hreflang="en-GB" />

<link rel="alternate" href="https://www.example.com/de-de/" hreflang="de-DE" />

<link rel="alternate" href="https://www.example.com/de-at/" hreflang="de-AT" />

<link rel="alternate" href="https://www.example.com/es-es/" hreflang="es-ES" />

<link rel="alternate" href="https://www.example.com/es-mx/" hreflang="es-MX" />

(e) If you want to show a default page for any language not specifically targeted, add a rel="alternate" hreflang="x-default". On that page you could then offer a page on which users can choose from all existing language versions, for example.

<link rel="alternate" href="https://www.example.com/" hreflang="x-default" />

<link rel="alternate" href="https://www.example.com/en/" hreflang="en" />

<link rel="alternate" href="https://www.example.com/es/" hreflang="es" />

<link rel="alternate" href="https://www.example.com/de/" hreflang="de" />

<link rel="alternate" href="https://www.example.com/en-us/" hreflang="en-US" />

<link rel="alternate" href="https://www.example.com/en-gb/" hreflang="en-GB" />

<link rel="alternate" href="https://www.example.com/de-de/" hreflang="de-DE" />

<link rel="alternate" href="https://www.example.com/de-at/" hreflang="de-AT" />

<link rel="alternate" href="https://www.example.com/es-es/" hreflang="es-ES" />

<link rel="alternate" href="https://www.example.com/es-mx/" hreflang="es-MX" />

(f) John Müller said: “Just language or x-default might also be an option (and can all be combined).” You can use the URL for one country and language for other countries, too. You can use the URL for the UK (en-GB) also for Ireland (en-IE). The German URL (de-DE) can also be used for Luxembourgh (de-LU). And another example would be the Mexican URL (es-MX), which is also a good fit for searchers from Columbia (es-CO).

<link rel="alternate" href="https://www.example.com/" hreflang="x-default" />

<link rel="alternate" href="https://www.example.com/en/" hreflang="en" />

<link rel="alternate" href="https://www.example.com/es/" hreflang="es" />

<link rel="alternate" href="https://www.example.com/de/" hreflang="de" />

<link rel="alternate" href="https://www.example.com/en-us/" hreflang="en-US" />

<link rel="alternate" href="https://www.example.com/en-gb/" hreflang="en-GB" />

<link rel="alternate" href="https://www.example.com/de-de/" hreflang="de-DE" />

<link rel="alternate" href="https://www.example.com/de-at/" hreflang="de-AT" />

<link rel="alternate" href="https://www.example.com/es-es/" hreflang="es-ES" />

<link rel="alternate" href="https://www.example.com/es-mx/" hreflang="es-MX" />

<link rel="alternate" href="https://www.example.com/en-gb/" hreflang="en-IE" />

<link rel="alternate" href="https://www.example.com/de-de/" hreflang="de-LU" />

<link rel="alternate" href="https://www.example.com/es-mx/" hreflang="es-CO" />

(g) Be very careful when using hreflang and canonicals together. The canonical tag should never point to a different URL outside the hreflang markup! Having a canonical point to a URL can cause your entire hreflang construct to become invalid.

(h) Make sure that all URLs you use in your hreflang markup actually exist. Linking to non-existent URLs can – guess what? – cause your entire hreflang construct to become invalid.

(i) You can use the Google Search Console to specify the “international targeting” also for directories or subdomains. If you use this option, please make sure that your hreflang markup on the pages does not send conflicting signals.

I hope you like and have a great start into the new week!

Sources:
https://support.google.com/webmasters/answer/6144055?hl=en
https://support.google.com/webmasters/answer/2604723?hl=en
https://www.seroundtable.com/google-dont-redirect-by-ip-location-24125.html
https://support.google.com/webmasters/answer/62399
https://developers.google.com/search/mobile-sites/mobile-seo/dynamic-serving?hl=en
http://www.rebelytics.com/multiple-hreflang-tags-one-url/
https://www.sistrix.com/hreflang-guide/

Related posts