Google’s Organisation structured data markup is broken

TL;DR: Search for “bidorbuy” in Google and post in the comment section below if you can see the LinkedIn social profile or not.

You might have missed that about 2 months ago, Google introduced Corporate Contact markup via ld+json to customise the search Knowledge Graph. It is supposedly a neat and easy way for hinting  to Google what company information should be displayed on the Knowledge Graph when searching for a brand for example.

In one of my posts to the Google Webmaster forums I raised the question if other users experience similar issues where Google fails to include the correct data in the Knowledge Graph, a simple question turned into a back-and-forth with self-proclaimed experts who make just as many assumptions as I do. I always fall for the GWMT forum as in hindsight it actually has never provided expert advise and is hardly ever frequented by Google engineers.

In most cases answers in GWMT are from “SEO experts”, who could hardly write a single line of code (or even fail at ranking their own SEO business well within search), and advice is hardly ever scientific (I am a binary 1 or 0 person and a “maybe” just does not exist for me in IT).

After now almost 8 weeks of playing “cat-and-mouse” with Google – where our social profiles appear and then disappear (without any actual change to code) it has now reached a level where I have just given up on trying to understand why it is broken. For what it’s worth, I stumbled into the same trap with Google’s Sitelinks Search Box in September 2014 – a quick one-liner in code and then the same “cat-and-mouse”-game ensued as I am facing currently. The Sitelinks Search box “self-healed” miraculously after about 4 weeks.

The Organisation structured data is a bit more temperamental as it comes and goes without any specific pattern, which seems to indicate that it is mostly flakey and buggy. The GWMT “expert” is indicating that the LinkedIn profile button should not show as part of the Knowledge Graph as one of the key requirements is (strong assumption here by said expert) that each element specified in the ld+json must be visible to the user on the page where the ld+json is implemented. Well, our website does not have a LinkedIn profile button, and yet today Google honours us with the display of the profile link in the Knowledge Graph:

Google’s flaws with structured data

Google’s primary notion about structured data is to provide the search user with a richer and more contextual experience. Hence, we as webmasters and content producers, should help search engines by contextualising our content. In the simplest form this was done with have the correct page structure and since 2011 we provided not just RDFa data for product but also started to implement to make content more machine-readable and with it assist search engines to present more appropriate content to the search user.

With Google’s structured data implementation it does feel that Google has not thought this through at all, as the issues below will highlight it:

South Africa has local toll-free numbers

For starters it does not consider how company data should be marked up in different territories. As an example, South Africa has a toll-free number concept which is called a “share-call” number which starts with 0860 or 0861 and can only be dialled from within South Africa. It is common practise that companies use share-call numbers for customer service. The problem with Google is that the markup requires an international dialling code, which is pointless as the number itself can not be dialled from overseas.

I guess many other countries have a similar concept and wouldn’t it be great (seeing that Google is any way location aware and pushes local search), if Google could display a local toll-free number for local users and/or an international number for international visitors? Now that would be a true user experience when it comes to being in the context of search – hey Google?

The verified social profiles

Although our LinkedIn profile shows once in a while, I would have expected that our Twitter and Facebook profiles would show in the Knowledge Graph. After all, the GWMT “expert” did say that Google will only show what is visible to the user and both profiles are smack-bang on the home page. Google could have been very smart here and also taken into consideration Opengraph data (which we have for Facebook) and Twitter-cards (which we also have).

For Facebook and Twitter, Google throws a curve-ball:

Please note, for social sites that offer a verification process, Google will only link to verified profiles in the Knowledge Graph.

Sure thing, didn’t think that one through Google! How many SME websites have verified Twitter or Facebook accounts? Both social networks do not provide a verification process. If a search user hears or sees a brand offline and then searches for it online, wouldn’t it make sense to show social profiles without the verified profile requirement? I am still puzzled that GWMT does not provide a mechanism to link a company’s social profile accounts to a GWMT account. Everyone else is capable of doing it and it makes me ask why the collective pool of Google engineers, Phd’s and other rocket-scientists working in Mountain View could not figure this out.

Where are my apps?

It is equally puzzling that Google has not yet introduced links to Android-, iOS-, Blackberry- and Windows Phone-apps into their Knowledge Graph. There is actually no “IT wizardry” required, as most websites already include deeplink markup for at least Android and iOS:

Mockup - Google Knowledge Graph with app icons


The structured data “conspiracy”

I have yet to figure out the motive behind Google’s latest drive to introduce via ld+json into websites. In the past it was perfectly acceptable to have embedded structured data (which is difficult as it’s standard and nesting of elements requires you to structure your page layout in a specific manner). I do think that ld+json is much better than what we currently have to deal with, but it the question still remains: Google is king when it comes to search, crawling and understanding context – so why is it now necessary for webmasters to hint context to Google?

If you have ever implemented information via Microdata or RDFa you will know that Google can be a real pain when it comes to valid markup. At the same time however, the Microdata/RDFa markup ensured that markup was within the visible context to the user, whereas now ld+json is just a snippet of Javascript which is never visible to the user.

Googlebot has been incredibly smart in analysing data on the web and I still have not found an answer to why we should now introduce machine-readable context. Right now structured data is fairly broken when it comes to indexing and displaying in SERPs. My GWMT thread and the frequent appearance/disappearance of Knowledge Graph data is evidence enough that structured data does not work consistently.

The LinkedIn issue

With keeping all the above in mind, I also thought it would be interesting to keep track of when Google’s Knowledge Graph display shows/changes. As an experiment: Search for the brand “bidorbuy” via Google and post in the comment section below if you see a LinkedIn profile in the Knowledge Graph (we are also missing our toll-free number and the new version of our logo).

  • 17.02.2015: LinkedIn not shown (with LinkedIn profile markup in JSON)
  • 18.02.2015: LinkedIn shows (LinkedIn profile markup was removed after feedback from GWMT “expert”)
  • 19.02.2015: LinkedIn not shown (a day after I put markup back as it obviously made no difference)
  • 20.02.2015 – 22.02.2015: I didn’t monitor the searches
  • 23.02.2015: LinkedIn shows (with the markup containing LinkedIn)
  • 24.02.2015: LinkedIn shows
  • 25.02.2015 (morning) LinkedIn shows
  • 25.02.2015 (afternoon) LinkedIn not shown
  • 26.02.2015 (afternoon) LinkedIn shows
  • 27.02.2015 (morning) LinkedIn gone again
  • 28.02.2015 (07:00am SAST) LinkedIn shows
  • 01.03.2015: LinkedIn gone again
  • 02.03.2015 (07:00am SAST) LinkedIn gone / (08:50pm SAST): LinkedIn is back
  • 03.03.2015 (10:00am SAST) LinkedIn shows. Tested with 50 people across the globe and it shows everywhere for everyone (in Chrome: LinkedIn-Google+-Youtube vs Firefox: Google+-LinkedIn-Youtube) / (2:50pm SAST) LinkedIn gone
  • 04.03.2015 (06:00am SAST) LinkedIn shows / 04.03.2015 (8:00pm SAST) LinkedIn gone again
  • 05.03.2015 (07:00am SAST) LinkedIn still gone / (05:28pm SAST): LinkedIn is back
  • 06.03.2015 (06:00am SAST) LinkedIn shows
  • 07.03.2015 (07:am SAST) LinkedIn gone again
  • 08.03.2015 (07:am SAST) LinkedIn still gone/ (20:28pm SAST): And we are back in the game – LinkedIn is back
  • 09.03.2015 (06:00am SAST) LinkedIn shows
  • 10.03.2015 (06:00am SAST) LinkedIn shows
  • 11.03.2015 (07:am SAST) LinkedIn gone again
  • 12.03.2015 (06:00am SAST) LinkedIn shows
  • 17.03.2015 (09:50am SAST) LinkedIn has been consistently showing since the 12.03. Unfortunately other social profiles (Twitter & Facebook) do not.
  • 22.04.2015 (07:am SAST) I have given up. LinkedIn stopped showing for some weeks and our verified Twitter and Facebook pages come and go. There is just no method behind this.