Select Page

By Andrea Volpini

4 years ago

In the experiment I am sharing here we measured the impact of a specific improvement on the structured data of a website that references 500+ Local Business (more specifically the site promotes Lodging Business such as hotels and villas for rent). In SEO, if you are a local business (or deal with local business), you want to have the correct location listed in Google Maps and link your website with Google My Business. The best way to do that is to properly markup your Google Map URL using schema markup.

Is it really worth it? 

Let’s start with the end. In the experiment I am sharing today we measured the impact of a specific improvement on the structured data of a website that references 500+ Local Business (more specifically the site promotes Lodging Business such as hotels and villas for rent). Before diving into the solution; let’s have a look at the results that we obtained using a Causal Impact analysis. If you are a marketing person or an SEO you constantly struggle to measure the impact of your actions in the most precise and irrefutable way; Casual Impact, a methodology originally introduced by Google, helps you exactly with this. It’s a statistical analysis that builds a Bayesian structural time series model that helps you isolate the impact of a single change being made on a digital platform. 

Cumulative result achieved after the first week (click data exported from GSC).

In a week, after improving the existing markup, we could see a positive increase of +5.09% of clicks coming from Google Search – this improvement is statistically relevant, unlikely to be due to random fluctuations and the probability of obtaining this effect by chance is very small 🔥🔥

We did two major improvements to the markup of these local businesses: 

  1. Improve the quality of NAP (Name, Address and Phone number) by reconciling the entities with entities in Google My Business (viia Google Maps APIs) and by making sure we had the same data Google has or better;
  2. Adding, for all the reconciled entities, the hasMap property with a direct link to the Google CID Number (Customer ID Number), this is an important identifier that  business owners and webmasters should know – it helps Google match entities found by crawling structured data with entities in GMB. 

Problem Statement

Google My Business is indeed the simplest and most effective way for a local business to enter the Google Knowledge Graph. If your site operates in the travel sector or provides users with immediate access to hundreds of local businesses, what should you do to market your pages using schema markup against a fierce competition made of the business themselves or large brands such as booking.com and tripadvisors.com?

How can you be more relevant for both travelers abroad searching for their dream holiday in another country and for locals trying to escape from large urban areas?

Approach

The approach, in most of our projects, is the same regardless of the vertical we work for: knowledge completion and entity reconciliation; these really are two essential building blocks of our SEO strategy. 

By providing more precise information in the form of structured linked data we are helping search engines find the searchers we’re looking for, at the best time of their customer journey. 

Another important aspect is that, while we’re keen on automating SEO (and data curation in general), we understand the importance of the continuous feedback loop between humans and machines: domain experts need to be able to validate the output and to correct any inaccurate predictions that the machine might produce. 

There is no way out – tools like WordLift needs to facilitate the process and web scale it but they cannot replace human knowledge and human validation (not yet at least). 

Agentive SEO = Human-in-the-Loop 

The Solution

LocalBusiness markup works for different types of businesses from a retail shop to a luxury hotel or a shopping center and it comes with sub-types (here is the full list of the different variants from the schema.org website). 

All the sub-types, when it comes to SEO and Google in particular, shall contain the following set of information: 

  1. Name, Address and Phone number (and here consistency plays a big role and we want to ensure that the same entity on Yelp shows the same data on Apple Maps, Google, Bing and all the other directories that clients might use)
  2. Reference to the official website (this becomes particularly relevant if the publisher does not coincide with the business owner) 
  3. Reference to the Google My Business entity (the 5% lift – we have seen above is indeed related to this specific piece of information) using the hasMap property
  4. Location data (and here, as you might image, we can do a lot more than just adding the address as a string of text)

The JSON-LD behind a Local Business 

Here is the gist.

Google My Business reconciliation

In order to improve the markup and to add the hasMap property on hundreds of pages we’ve added a new functionality in WordLift’s WordPress plugin (that also works already for non-WordPress websites) that helps editors: 

  • Trigger the reconciliation using Google Maps APIs
  • Review/Approve the suggestions 
  • Improve structured data markup for Local Business
Google My Business Reconciliation by WordLift

From the screen below the editor can either “Accept” or “Discard” the provided suggestions. 

WordLift reconciles an entity with a loose match with the name of the business, the address and/or the phone number. 

Improving the name of the local business by adding a new alias, adding the hasMap and the International Phone  number

Adding location markup using containedInPlace/containsPlace and linked data

As seen in the json-ld above we have added – in a previous iteration (and independently from the testing that was done this time) two important properties:

  1. containedInPlace and 
  2. the inverse-property containsPlace (on the pages related to villages and regions) to help search engines clearly understand the location of the local businesses. 

This data is also very helpful to compose the breadcrumbs as it will help the searcher understand and confirm the location of a business. Most of us, still make searches like “WordLift, Rome” to find a local business and more likely we will click on results where we can confirm that – yes, WordLift office is indeed located in Italy > Lazio > Rome.

administrative divisions in GeoNames for rione Regola in Rome
The administrative divisions in GeoNames for the rione Regola in Rome where our office is located

To extract this information along with the sameAs links to Wikidata and GeoNames (one of the largest geographical databases with more than 11 million locations) we used our linked data stack and an extension called WordLift Geo to automatically populate the knowledge graph and the JSON-LD with the containedInPlace and containsPlace properties. 

Are you dealing with geographical data on your website? Want to learn more about WordLift GEO and local SEO? Contact us.

Conclusions

  • We have seen a +5.09% increase in clicks (after only one week) on pages where we added the hasMap property and improved the consistency of NAP (business name, address and phone number) on a travel website listing over 500+ local businesses
  • We did this by interfacing the Google Maps Places APIs and by providing suggestions for the editor to validate/reject the suggestions
  • Using containedInPlace/containsPlace is also  a good way to improve the structured data of a local business and you should do this by adding also sameAs links to Wikidata and/or GeoNames to facilitate disambiguation
    • As most of the searches for local businesses (at least in travel) are in the form of “[business name][location where the business is located]”; we have seen in the past an increased in the CTR when schema Breadcrumb use this information from containedInPlace/containsPlace (see below 👇)
Breadcrumbs using the administrative divisions from GeoNames

FAQs on LocalBusiness markup

One key aspect in SEO, if you are a local business (or deal with local business), is to have  the correct location listed in Google Maps and link your website with Google My Business.  The best way to do that is to properly markup your Google Map URL using schema markup. 

What is the hasMap property and how should we use it?
In 2014 (schema v 1.7) the hasMap property was introduced to link a web page of a place with the URL of a map. In order to facilitate the link between a web page and the corresponding entity on Google Maps we can use the following snippet in the JSON-LD “hasMap”: “https://maps.google.com/maps?cid=YOURCIDNUMBER”  

What is the Google CID number? 
Google customer ID (CID) is a unique number used to identify a Google Ads account. This number can be used to link a website with the corresponding entity in Google My Business.

How can I find the Google CID number using Google Maps?
Search the business in Google Maps using the business nameView the source code (use view-source: followed by the url in your browser)Click CTRL+F and search the source code for “ludocid”The CID will be the string of numbers after “ludocid\\u003d” and before #lrd. You can alternatively use this Chrome extension.

Must Read Content

The Power of Product Knowledge Graph for E-commerce
Dive deep into the power of data for e-commerce

Why Do We Need Knowledge Graphs?
Learn what a knowledge graph brings to SEO with Teodora Petkova

Generative AI for SEO: An Overview
Use videos to increase traffic to your websites

SEO Automation in 2024
Improve the SEO of your website through Artificial Intelligence

Touch your SEO: Introducing Physical SEO
Connect a physical product to the ecosystem of data on the web

Are you ready for the next SEO?
Try WordLift today!