Spreading its Wings: An SEO Look at Google Flights

Google’s flight booking search service has been sitting on the runway for seven years and it looks like it’s finally been cleared for take-off. Google Flights just re-entered the market in a big way.

And I probably would’ve missed it if it wasn’t for Martin MacDonald’s tweet.

Martin is a well-known SEO from the travel industry. He was head of SEO for Orbitz, and before that he worked for Expedia and a few other travel-related companies.

Google Flights has been around since September of 2011, but with this release, they have become much more aggressive by fully integrating their website with…Google.

But more than an integration, this is a complete re-launch. To paraphrase some of the opinions I came across on social media, “This time, they are just as good as other flight comparison websites.”

Starving Other Brands of Oxygen

In February, Forbes made the bold statement that Google Flights had “replaced search-aggregation sites like Kayak or Skyscanner and individual travel websites like Orbitz and Priceline.” Whereas in early March, PhocusWire was a little bit more conservative by citing data from SimiliarWeb that Google Flights was a contender in flight metasearch “but in the context of comparing it to Kayak.”

While Google Flights’ domination of the market is yet to be determined, its unique features such as its ability to predict if your flight will be delayed or tell customers the best time to book a flight are already turning heads.  

One could argue though that there is enough room for everyone as the flight market is huge. This is true, but people would be neglecting to notice the bigger picture, as a large proportion of the traffic going to the websites in this niche is organic (coming from search).

This will now change.

If we search for “flights” on a 15-inch retina display, Google owns a huge 40% of the real estate on the screen. Also, you won’t find their competitors without scrolling.

The situation gets even more dire for Google’s competitors when you search for “flights” using a mobile.

But I’m not here today to talk about the history of Google Flights or its place in the market.

I’m much more interested in talking about SEO. More specifically, how is Google Flights doing in terms of SEO? Does it soar, or should it be grounded?

Let’s Talk SEO

Figuring out how Google does SEO is the main reason I wanted to write this article. Google is in an incredibly awkward position here. They need to deliver results, but at the same time, they need to…rank. 😀

Let’s start with visibility.

The trend isn’t amazing. We can see that the growth trends weren’t spectacular over the last 8 years. The chart above is useless without some references, so let’s compare it with other major players.

As you can see Google Flights are far, far away from major players like e.g. CheapFlights.com (9 times more visibility!).

Let’s look at Google Flights’ keywords.

Redirects

If you go to your favorite browser and enter google.com/flights, which I guess most people would do, your request is going to go through an interesting (and badly done) chain of redirects. HTTP → HTTPS → WWW → “/”.

As you can see, each “version” of Google Flights has a lot of backlinks going to a given version of the page. For example, there are 85,000 backlinks to https://google.com/flights (without the trailing slash at the end and without “www”). All those backlinks need to go through multiple redirects to reach the homepage, which, as we all know, is a bad SEO practice.

Recently Google has been moving a lot of assets to subfolders from subdomains (I guess they finally realized it is better for SEO 🙂 ). This is probably why a lot of publishers link to flights.google.com, which is fine, but for some reason, this is a 302 (temporary) redirect.

“302 temporary redirect: Like the name says, this might not be that permanent. It might change in the future, it might change depending on who accesses it, on the device used, or the user’s location. You can’t cache this. Search engines tend to index the content (and keep all signals) under “R”, since it’s unsure that it’ll always redirect to “S.” This is useful for redirecting from the root URL to a lower-level page (“/” -> “/fancycms/mainpage.php”), and for redirects that depend on the user’s country, device, or language settings.”

 Source: https://plus.google.com/+JohnMueller/posts/E4PqAhRJB2V

 In all fairness, Googlers have claimed numerous times that both 301 and 302 redirects both pass PageRank.

JavaScript & Prerendering

Another interesting thing to note is that, like YouTube, Google Flights is a client-rendered JavaScript website. Google Flights doesn’t work with JavaScript disabled:

We can only speculate if they are using any form of prerendering (like YouTube does) because if they do it on the basis of Googlebot’s IP, we can’t check it without GSC access.

However, Bing appears to prove that Google does not prerender JavaScript. If we search for any content that’s available on any page from Google Flights (like “Explore the world” which is in the footer), we can only find one page on Bing:

This is just one of those things that make you go Hmm…

Indexing Issues

It is hard to say if this problem comes from JavaScript rendering, but if you search for content from Google Flights, you won’t find all of the pages with this content.

As there is almost zero content on all the landing pages, I went with a disclaimer from the footer:

“Prices are final prices and include all taxes and fees, including payment fees for the cheapest common payment method (which may differ depending on the provider). Additional charges may apply for other types of payment, luggage, meals, WLAN, or other additional services. Prices, availability, and travel details are without commitment and may be subject to change or to additional conditions. Please check prices and conditions with the service provider before booking.”

The results are surprising.

Looking at the screenshot above, we can see a lot of different issues. Only one of the results comes from Google Flights, even though this disclaimer is present on every page, including all the international versions that aren’t translated to local languages yet, e.g. https://www.google.pl/flights/

Also, the URL that is indexed (again – the only URL) – https://www.google.fr/flights/?hl=en&f=0&gl=fr – shouldn’t even be indexed as it is canonicalized.

As far as I understand their URL structure, it is the English version of their French website which is canonicalized to https://www.google.fr/flights/ anyway.

The second result is even more interesting. It is Google’s shortener “goo.gl”. It is a redirect URL (you can’t open it) indexed in Google and ranking for Google Flights’ content.

Looking at the screenshot above, you can clearly see some major SEO issues.

Speaking of major SEO issues…

Complete Lack of Indexing Strategy

Where do I start?

  1. I thought this was supposed to be Google!
  2. Come on!

You would expect a website built 100% by Googlers to be, you know, good.

It turns out that Google Flights doesn’t have any indexing strategy in place.

Let me show you an example: This is the search result URL for Kerikeri to Algiers on March 31st, returning April 4th. Believe it or not, but I found it in Google as an indexed result:

There is no canonical, no robots.txt blocking those URLs. Nothing.

The URL indexed in Google is actually https://www.google.com/flights/flights-from-kerikeri-to-algiers.html?gl=us&source=organic&f=0&search=f%3DKKE%3Bt%3Dr-Africa-0x10a06c0a948cf5d5%3A0x108270c99e90f0b3%3Bd%3D2017-08-30%3Br%3D2017-09-03 but you can only see it with JavaScript disabled. When you open this URL, JavaScript will replace it to https://www.google.com/flights/flights-from-kerikeri-to-algiers.html?gl=us&f=0#search;f=KKE;t=ALG;d=2018-03-31;r=2018-04-04 but your plugins, etc. won’t record any redirect.

This URL, however, also doesn’t have any canonicals and it isn’t blocked from being indexed by Google.

We can find more fails with a very simple Google search:

What’s interesting is that the lack of proper canonicals and indexing strategy caused Google to index everything.

Thin Content

Google Flights is a perfect example of a website that should be affected negatively (technically, it is not a penalty, so I won’t use this word on purpose) by, you know, Google algorithms looking for thin content.

Apart from the complete lack of a proper indexing strategy, Google index is flooded with past search results.

Controversy

The results above are controversial and let me explain why.

As I mentioned before, when you open https://www.google.com/flights/?gl=us&source=organic&search=f=PHL;t=BOS;d=2017-09-12;r=2017-09-16&f=0 (AKA URL #1) it will be instantly changed to https://www.google.com/flights/?gl=us&f=0#search;f=PHL;t=BOS;d=2017-09-12;r=2017-09-16 (AKA URL #2) by JavaScript in your browser. However, if my logic is right, this shouldn’t happen for Googlebot.

URL #1 is the one that is indexed in Google. It has no canonical.

URL #2 is canonicalized to https://www.google.com/flights/.

Which of those 2 URLs will be presented to Googlebot?

There is only one tool that can help us check this without Google Search Console access –  Rich Results Test. After using the Rich Results test, I didn’t find any canonicals in the DOM (processed source code).

[Disclaimer: My logic above may be wrong as I am working with a limited toolset (no Google Search Console), but we should assume I am right until proven otherwise. :)]

Backlinks

This is hard to assess without an in-depth look at whether Google is actively building backlinks to their product, but their # of backlinks is growing from what I’m seeing at first glance, like real reviews, etc. A lot of the links are publishers mentioning Google Flights’ new features like e.g. their new flight delay predictions.

“Using historic flight status data, our machine learning algorithms can predict some delays even when this information isn’t available from airlines yet—and delays are only flagged when we’re at least 80% confident in the prediction.”

Source: https://www.blog.google/topics/travel/get-help-cheaper-flights-and-potential-flight-delays-winter/

Added Value

We all know that Google is all about providing an added value for users. If we consider the fact that Google Flights doesn’t have a blog or any space where they can communicate with their users, their tool’s features are the only way to get links and mentions to their product.

I am not one for conspiracy theories, but I find it surprising that Google Flights managed to get this many links to a product that was half-baked and sitting there for the last seven years before this recent re-launch. Knowing that Google ranked #1 for “flights” for a long time with a website that wasn’t half as good as its competitors is something I don’t quite understand.

Footer Links

We can clearly see that Google is learning from other major players in the travel niche. They are pushing their most popular landing pages with a dynamically generated footer (it changes depending on your destination).

Below you can see a screenshot from my desktop (I am currently in Wrocław, Poland). You can see “Top destinations from Warsaw” on the right.

And this is a screenshot from our remote server in Germany.

“Top destinations from Warsaw” are replaced with “Top destinations from Berlin” here.

Cache Cross-contamination

This is one of those problems that is quite popular “offline” in the SEO community but nobody has written about it (until now).

Since 2017, Google has had a very strange problem with Google Cache cross-contamination. It may happen that you will see a different domain when looking into your cache. In the case of our clients, we saw a domain for a different country (e.g. you check the cache for domain.co.uk and you see domain.ru).

I know that some major websites have the same problem and there is a good chance that you know who I am talking about. A few SEOs (including myself) were desperately trying to reach out to Google with this problem. All of my messages remained unanswered though.

It turns out that Google’s domains aren’t bug-free either.

If you look closely at the animation above, you’ll see that we are opening a .FR domain to see a cache from .CA for a website with Chinese content.

This is clearly an issue.

Further Analysis

There is a new version of Google Flights coming and I am sure that I missed quite a few major bugs for the current website.

My hope was to go to Google Flights to learn about best practices and see how they do SEO in Google, but I cannot understand the phenomenon of their rankings, visibility growth, and being “bulletproof” against Google updates with almost zero content, duplication issues and no indexing strategy.

While they won SERPs for many keywords and will definitely hit some major players in the travel niche, I wish I could say that they earned it from some great SEO work and not for being part of the Google family.