Surprising results of a schema.org test: Impact on Google image search

Last updated on Jun 15, 2017

Over the past months, I have been experimenting a bit with schema.org implementations in Google Tag Manager. I am planning on publishing some more detailed case studies here and over on the searchVIU blog soon. Today, I would just like to share a surprising result of a little experiment I set up for testing purposes.

If you’re in a rush and you only want to read the part about the surprising result of this test, continue here.

At an early stage of my investigations, I wanted to test if Google processes JSON-LD scripts with structured data that are simply loaded in a custom HTML tag in Google Tag Manager and not injected into the <head> section of the page using jQuery or other JavaScript. Google Tag Manager, if not instructed otherwise, adds scripts in custom HTML tags to the end of the <body> part of the page. In addition to this, I was also interested in seeing what happens if you include information in structured data that is not available on the website itself. At this stage, I was not thinking about image search at all.

Setting up the structured data test

In order to set up this test, I created a schema.org/Person data type script in the JSON-LD format with some of my personal information:

<script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "Person",
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "Sanxenxo",
        "addressCountry": "ES",
        "postalCode": "36969",
        "streetAddress": "Lugar O Casal 3A"
      },
      "birthDate": "1986-07-26",
      "birthPlace": "Meerbusch",
      "brand": [{
        "@type": "Brand",
        "name": "searchVIU"
                },
                {
        "@type": "Brand",
        "name": "Rebelytics"
                }],
      "email": "eoghan@searchviu.com",
      "image": ["https://www.xing.com/image/d_4_7_0b1ff72cb_15759183_6/eoghan-henn-foto.1024x1024.jpg",
                "https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/2/005/055/078/382f12a.jpg",
                "https://pbs.twimg.com/media/C8QFasAXcAIwdZy.jpg",
                "https://lh3.googleusercontent.com/-SjIDmB44o20/AAAAAAAAAAI/AAAAAAAAA-g/3uWtr7k_Bhc/photo.jpg",
                "http://www.netzhandwerker.net/wp-content/uploads/2017/03/relaunch.jpg",
                "https://storage.googleapis.com/seoviu_wordpress/blog/2017/02/eoghan-henn-searchviu-cofounder.jpg"],
      "jobTitle": "Co-founder",
      "name": "Eoghan Henn",
      "nationality": ["IE",
                      "DE"],
      "alumniOf": [{  
        "@type": "EducationalOrganization",
        "name": "Heinrich-Heine-Universität Düsseldorf"
      },
                   {  
        "@type": "EducationalOrganization",
        "name": "Université de Liège"
      }],
      "telephone": "+49 2164 9510581",
      "url": "{{Page URL}}",
	    "sameAs": ["https://www.rebelytics.com/",
                 "https://www.xing.com/profile/Eoghan_Henn",
                 "https://plus.google.com/u/0/+EoghanHenn",
                 "https://www.linkedin.com/in/eoghanhenn/",
                 "https://twitter.com/rebelytics",
                 "https://www.searchviu.com/de/author/eoghan/",
                 "https://www.searchviu.com/en/author/eoghan/",
                 "https://www.ranking-check.de/blog/author/eoghan/",
                 "https://www.ergativity.info/",
                 "https://seo-portal.de/personen-aus-der-szene-eoghan-henn/",
                 "https://www.crunchbase.com/person/eoghan-henn#/entity",
                 "https://angel.co/eoghan-henn",
                 "https://medium.com/@rebelytics",
                 "https://www.slideshare.net/EoghanHenn"],
      "workLocation": {
         "@type": "Place",
         "name": "Sanxenxo"},
      "worksFor": "searchVIU"
    }
    </script>



I then implemented this exact script on the home page of this blog, on my author page on the rankingCHECK blog, on the German and English versions of my author page on the searchVIU blog, and on the home page of my ergativity website, which are basically all pages about me, the entity that the JSON-LD script is all about. The Google Tag Manager variable “{{Page URL}}” that you see in the script is automatically replaced by the URL of the page that the script is loaded on in every one of the cases.

The implementation with Google Tag Manager is very simple. You can just paste the script into a “Custom HTML” tag and set a trigger to fire it on the pages you want to load it on (the home page in the example below). Here’s a screenshot of how I did it:

I hope you’ve been able to follow me up to here. If you’re not too familiar with schema.org in the JSON-LD format, or with Google Tag Manager, feel free to get in contact with me if you have any questions. I’ll be happy to help. You can also use the comments section at the end of this article.

First results: Does this implementation work?

The first question I wanted to answer with this test was whether Google processes JSON-LD scripts that are loaded in Google Tag Manager in the way described above. So far, I had only seen people inject scripts of this kind into the <head> section of the page, like Sam Nemzer in his absolutely brilliant and amazing article How to Implement SEO Changes Using Google Tag Manager. If you haven’t read that article yet, go read it and then come back here.

I found that, at least for Google and in this case, it is not necessary to inject the script into the page. Google processes the data just fine.

Here’s a screenshot of the structured data report for https://www.searchviu.com in Google Search Console:

Google’s very useful structured data testing tool also gives back fine results. Here’s a screenshot of the result for the home page of this blog, as an example:

So the implementation does work, but:

Please note that, to be on the safe side, it is still best to inject the JSON-LD script into the <head> section of the page, as other machines might not process pages the same way Google does. Also, in more recent experiments, I have had problems with the format of URLs in Google Tag Manager variables when using the method shown above. I have moved on to always injecting JSON-LD scripts into the <head> section of a page using jQuery in Google Tag Manager. If you want to learn how to do this, check out Sam Nemzer’s post (the one I already urged yo to read above).

Next, let’s have a look at what happened to the results in Google’s image search after I implemented the structured data.

As I mentioned in the beginning, I was curious to see what would happen after providing this structured data, as most of it was not available on the pages it was implemented on in a different format. I didn’t expect much to happen, and all in all, nothing much happened. But I made one interesting observation in Google’s image search that I would like to share with you. As you noticed above, I included the URLs of some photos of me that I found across the web in the script:

 "image": ["https://www.xing.com/image/d_4_7_0b1ff72cb_15759183_6/eoghan-henn-foto.1024x1024.jpg",
                "https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/2/005/055/078/382f12a.jpg",
                "https://pbs.twimg.com/media/C8QFasAXcAIwdZy.jpg",
                "https://lh3.googleusercontent.com/-SjIDmB44o20/AAAAAAAAAAI/AAAAAAAAA-g/3uWtr7k_Bhc/photo.jpg",
                "http://www.netzhandwerker.net/wp-content/uploads/2017/03/relaunch.jpg",
                "https://storage.googleapis.com/seoviu_wordpress/blog/2017/02/eoghan-henn-searchviu-cofounder.jpg"],



These images are hosted on different domains and most of them are not included in the pages that the JSON-LD script has been implemented on. Interestingly enough, some of these images now rank for Google searches for my name (“Eoghan Henn”), and they are associated with the pages the script is on, and not with the websites I originally found them on.

Here’s an example. When you search for my name in google.co.uk, you see the following result:

Results for Eoghan Henn in google.co.uk

The first image that shows in the image search integration is the profile image of my XING profile (XING is a German business network, similar to Linkedin) and it is one of the images I included in the JSON-LD script shown above. When you click on the image, you get to the following preview in Google’s image search:

Note that the image is associated with the home page of Rebelytics here, and not with XING, which is the original source of the image. The button “visit page” takes you to https://www.rebelytics.com/, and the button “view image” links to https://www.xing.com/image/d_4_7_0b1ff72cb_15759183_6/eoghan-henn-foto.1024×1024.jpg, the original image URL on XING.

The same thing is going on with the third image from the image search integration:

This image was originally included in this article on netzhandwerker.de and I used it in my JSON-LD script. Again, the image is associated with my Rebelytics home page instead of the original source of the image and the buttons “visit page” and “view image” behave in the same way as in the first case described above. “Visit page” takes the user to Rebelytics and “view image” links to the original URL of the image.

Another very interesting observation I made in this context is that in the search results for my name in the German version of Google, the same two images show up in the image search preview, but they are associated with my author page on the rankingCHECK blog, another page that I included the JSON-LD script on, and not with the Rebelytics home page, like in the English results:

Again, the buttons that let you view the page or the image behave in the same way as in the cases above: Google sends visitors that want to view the page to the author page on the rankingCHECK blog, that does not contain the image, but links to it in the JSON-LD script. The button that takes users directly to the image links to the original image URLs on XING and netzhandwerker.de.

Conclusion and takeaways

So what exactly is going on here? It is not easy to draw solid conclusions from such a limited set of data, but here’s my take on it: I guess that by adding the image URLs to the JSON-LD script on pages that are about me, I made Google understand that these images are tied to the entity “Eoghan Henn” (me). Only two of the pages I implemented the script on benefitted from this experiment – the ones that were already ranking well in the normal search results for this entity: Rebelytics in English results and my rankingCHECK author page in German results.

Now, the images that show this entity rank for searches for this entity, but the pages they are associated with are not the pages they are embedded in, but the pages that rank best for this entity and that let Google know that the images show this entity.

To be honest, I’m not too sure what to make of all of this this. There is certainly an interesting potential in being able to “steal” other website’s images and rank with them by simply including them in structured data for an entity that you already rank well for. On the other hand, I don’t know if this reproducible at scale. Also, I do not expect Google to keep up this behaviour for very long, as I do not find it particularly user-friendly. If I click on the button “visit page” in Google’s image search, I as a user will certainly be disappointed about landing on a page that does not actually include the image. On top of that, the implementation described in this article probably even violates Google’s structured data guidelines. Sorry, Google, I was just playing around with JSON-LD and now I can’t remove it because I wrote an article about it and people will want to check it out in real life.

One thing that we can conclude from this little test is that Google does pay a lot of attention to structured data and uses it in ways that we might not expect. Structured data helps Google understand and gather information about entities that it will use to rank content for searches related to those entities. The benefits of using structured data on your website will most likely go far beyond enhanced and rich snippets in the near future.

I will certainly continue using structured data wherever I can and I recommend you do the same. If you want to read more about structured data in future, why don’t you follow me on Twitter or connect with me on Linkedin? I will publish some more results of other experiments and more detailed case studies soon.

If you have any questions, please just give me a shout. Also, I would be very happy to hear your opinion about the unexpected results of this test. Have you made similar observations in other cases? I’m looking forward to your comments!

Did you enjoy reading this article? Say thanks by sharing it:

Leave a Reply