logo-small logo-small_halloween
Expand your knowledge:
Expand your knowledge:
On-Page SEO

How to Write Great Schema Markup for Your Company

The Wow-Score shows how engaging a blog post is. It is calculated based on the correlation between users’ active reading time, their scrolling speed and the article’s length.
Learn more

How to Write Great Schema Markup for Your Company

This post is in English
Jason Barnard
This post is in English
How to Write Great Schema Markup for Your Company

If you have read the great introduction on Schema Markup from Luke Harsel, then you know that Schema Structured Markup is vital for any company, but that over 50% of Fortune 500 companies do not yet use it!

In this article, I will take you through the steps and best practices when adding structured Schema.org markup for your company to your website... including which format to use, what information you should provide (and why), how to choose a category, how to push your markup further, how to test your markup ... and several little-known tips and tricks that will lift your markup above the competition's :)

All Companies Should Add Schema.org Organization Markup on Their Websites

It is vital to add schema structured markup to your company “About” or Home page. With this markup, you are confirming to a machine what it has almost certainly correctly understood concerning who you are and what you do. Here is Google's official stance.


Is it really necessary?

Adding a simple confirmation of who you are may seem marginal. But remember, Google and Microsoft are machines. If there is one thing that machines love it is confirmation of information in structured language (their mother-tongue, if you like).

Far from being marginal, Schema Structured Markup on your “About” or "Home" page is vital. If you are in any doubt, please re-read Luke's article (mentioned above).

In search engine's structured language they want you to:

  1. Confirm your name, your address, your social media accounts, your official website

  2. Identify what image, logo, description you want them to show when they mention you (and more often than not, they will use what you provide).

  3. Provide proof of who you are, and create credibility through third party confirmation in the “sameAs” field (Crunchbase, Wikipedia, etc.).

There is no reason not to help them, especially as they specifically ask you to!

What format should I use?

Use JSON-LD rather than embedding the markup into your HTML. It is much easier to maintain. Plus Google recommends it!

Google's recommendation is JSON-LDGoogle's recommendation is JSON-LD

You can place the JSON-LD markup anywhere in the page. Most websites put it in the <head> section. This is a logical place to put it, but if your CMS isn't able to do that, you can put the markup in the body of the content or the footer...or even in an external file. 

Interestingly, Google (and Microsoft) can also read your markup if it is in an external file that loads after the page has loaded. For very large sites and for sites that make extensive use of Schema markup, this is a solution that can potentially make managing the structured data much easier. 

Here's the Nitty-Gritty: The Markup for a Company

To start with, a simple example for a Corporation:

json-markup-simple-corporation.pngThe JSON-LD code.

Here we state  (and this is the very least you should include)

  1. The type of company
  2. The company name
  3. Official website
  4. Address
  5. The official logo
  6. The preferred description
  7. The social accounts
  8. The unique identifying URL

Are there other values for : "@type": "Corporation"?

Yes. Quite a few. The most general is "Organization". Many companies use this value, for example, Mailjet has used "Corporation". Here are the top-level options to choose from:

organization schema values

You should choose the most specific value possible. Companies should use Corporation and not the more general Organization. Most Local Businesses will find a category that suits. Ideally, you should choose the same category you have in Google My Business. However, as My Business and Schema.org do not use the same categorization, that is not always possible. Choose the closest match. There are well over 100, so you can get pretty close. Here are a few examples:

LocalBusiness Schema Categories examplesLocalBusiness Schema Categories Examples

If you do not find the right category for your business, you can actually create it. Just find the Wikipedia page that represents your business category, add that to this URL http://www.productontology.org/doc/ and add an "additonalType" to your markup.

For example, if I run a beer shop, and I want to be really specific, LiquorStore isn't QUITE right. I would get the page for Beer Shop on Wikipedia (https://en.wikipedia.org/wiki/Beer_shop), take the part after /wiki/ to do this.

Local Business Beer Shop

What is this : "@id": "https://corporation.mailjet.com"?

This is the unique URL that identifies the company, and it is up to you to choose what that URL will be. It can be a URL that returns a page, a URL that returns detailed information in various formats, or (as in this case) a URL that returns nothing. The aim here is to have a unique identifier for the entity.

Once you have provided this, it becomes the explicit, unambiguous reference for your company. Forever (so choose carefully!).

You may be tempted to use your homepage as the unique identifier for your company. However, the homepage (http://www.example.com/) typically "stands for" three things:

  • The home page
  • The whole website
  • The organization

Some people use imaginary (or real) anchors:

  • The home page: http://www.example.com/

  • The whole website: http://www.example.com/#site

  • The organization: http://www.example.com/#organization

I recommend using a unique subdomain of the company domain (remember they do not need to exist or give access to a page to be valid as a unique identifier).

How This System Will Scale

Dedicated subdomains, and URI for each entity - product / person / company / place / office with Schema-compatible anchors for "explaining" the details is the only system that will work over time. 

A unique, never-changing subdomain with hashtags / anchors: 

  1. Allows you to have the truly never changing id (which is what these machines are looking for)
  2. Allows you to keep UE and machine understanding apart (anyone who has tried pleasing both users and machines at the same time knows this can get complicated)
  3. Allows you to add anchors for detail without worrying about effects on UE navigation
  4. Most importantly - allows you to add data to the URL. The subdomain (URL) CAN return data in Schema format - including product details and very IMPORTANTLY the current active URL for the UE. Meaning that machines would always come to this URL to find current (reliable) information about any given entity. Using this system, you can inform / educate the machines without impacting UE. As long as you always refer explicitly to the URL intended for users that provides the same information, and that the information on both is coherent, the machines will thank you. 

Extending Schema Markup for a Company


Here we have added

  1. Several reliable references to the company,
  2. Some investors 
  3. The product the company offers (an emailing platform) 

Here is what Google "sees". It is very, very clear.


Taking It Even Further

We could also have added information such as the founders, the management team, sub-organisations, area served, client rating, etc. The list is pretty extensive.
The more ACCURATE and pertinent information you can provide, the better. 
Here is the list of possibilities on Schema.org/Corporation.

Local Businesses can add opening hours, geo-coordinates, prices, telephone, fax...
Here is the list of possibilities on Schema.org/LocalBusiness.

Which element of the markup is the most important?

sameAs”  - this property is the key.
These links provide 1) third party confirmation  2) credibility  3) context  4) additional information

Typical examples of great sameAs links:

  1. Wikipedia
  2. Wikidata
  3. Crunchbase
  4. Official company listing (for example Companieshouse.gov.uk)
  5. Business organizations of which the company is a member
  6. Your company profile pages on review sites

Creating the Markup Easily

Here is a great tool from Kalicube.pro that automatically generates structured markup need is JSON-LD format. One of the few tools out there that allows multiple sameAs links.

Create Schema Structured Markup for your company.

Checking Your Markup is Error-Free

ALWAYS double check you structured markup once implemented on your site. Here is Google's super-cool tool that does that for you.

Structured Markup for Your Company Makes Sense From Every Perspective

Far from being marginal, Schema Structured Markup on your website is vital. Start today.

Like this post? Follow us on Feedly and read more interesting posts:

Almost 2 decades of experience: I started promoting my first website in the year Google was incorporated and built it up to become one of the top 10,000 most visited sites in the world.
Today I am a search marketing consultant and working hard on two SaaS: Kalicube.pro (Measuring Brand Authority) and Kalicup.com (quick and easy SEO wins from small businesses).

My column will outline how we in the world of SEO can successfully segue into AEO – Answer Engine Optimization. I will develop the details of the two major concepts your AEO strategy should center on: communication and credibility. Within these concepts, luckily for us, most (white hat) SEO tactics we use today will remain
Expand your knowledge:
On-Page SEO
Share this post


2000 symbols remain
Should also add ratings & reviews schema part
Jason Barnard
Lalit Sharma
Yes, when you have a reliable source to cite
Good point. Thanks !
as for the organization mark up, where should I place it? Contact US or homepage? I see there is some post about placing the organization mark up on the home page, however my home page lack some information like contact email. In this case, should I simply to add the organization mark up on the "Contact Us" page?
Jason Barnard
Yip Leung
The homepage represents the website, the page and the organization.
I suggest putting the markup there. And only there
Kyle Theil
Say you have multiple different domains for the same company, is it safe to say that adding them as "sameAs" would be beneficial?
A huge thanks from me, this is hands-down the best guide on Schema I have read until today, great work Jason. I just wanted to touch on your comment here 'I recommend using a unique subdomain of the company domain (remember they do not need to exist or give access to a page to be valid as a unique identifier).' So, you suggest that we use subdomains as unique identifies, for example: product.example.com, secondproduct.example.com, etc.? I guess I could use an example to fully grasp what you suggest.

Thank you again for the excellent guide!
Jason Barnard
George Karmpoulonis
Hi George

Thanks for the incredible feedback. I am very pleased this is informative and clear.

Interesting you ask about that id question. I had a nap earlier and was thinking about it.
I may well have given the "wrong" advice.
The idea that a homepage represents a page, a site and a company is actually quite interesting. Using hashtags is quite a nice way to make that subtle difference very explicit.
And leverage Schema into the bargain.
I have never seen this. But citing the Schema entities as anchors may be the way to go, after all.
Looking at the example below, that would seem 100% logical.

Using Schema :
The page: http://www.example.com/#WebPage
The whole website: http://www.example.com/#WebSite
The company: http://www.example.com/#Corporation

That "feels" right to me. Perhaps subdomains are NOT the way to go !!!! I am VERY open to discuss this point
It seems to me to be fundemental since, once the id is "set" it will be VERY difficult and slow to change.
Thoughts ?
Anyone ?

All exchanges on this topic are welcome since we will all learn :)
Jason Barnard
Jason Barnard
And thinking about this a little more... I may be coming back to my original idea with subdomains, and just integrate hashtags / anchors :)

When looking at your products example, the unique subdomain with hashtags may well be the most easily manageable and a system that will never become redundant.

To be honest I am not convinced anyone has really thought all this through (which is reasonable as we don't yet know where all this will lead !)

My gut feeling is that unique subdomains for each entity - product / person / company / place / Office ...
with Schema-compatible anchors for "explaining" the details is the only system that will work over time.

A unique, never-changing subdomain with hashtags / anchors
- allows you to have the truly never changing id (which is what these machines are looking for)
- allows you to keep UE and machine understanding apart (anyone who has tried pleasing both users and machines at the same time knows this is a nice idea)
- allows you to add anchors for detail
- allows you to add data to the url. The subdomain (URL) CAN return data in Schema format - including product details and very IMPORTANTLY the current active URL. Meaning that machines would always come to your subdomain to find current (reliable) information about that product. If that subdomain is not the same as the actual product page, that means you can inform / educate the machines without impacting UE. As long as you always include the current active product URL, and that the information on both is coherent, I can only imagine that the machines will thank you :)

I suspect that is the way forward
Jason Barnard
Any concern that this goes against Google's guidelines of only applying schema to the pages that the content is located on? Google gives the following example: "For example, if the JSON-LD markup describes a performer, the HTML body should describe that same performer."
Jason Barnard
john smith
Hi John
Good point. I have forgotten one thing - use a 303 code.
DBpedia uses this technique.
Here is a post describing it.
Another way is using HTTP status code 303. The code 200 gives the representation of the page about the thing, the code 303 See Other gives an additional URI identifying the thing. This method is used by DBpedia:

http://dbpedia.org/resource/The_Lord_of_the_Rings represents the novel
http://dbpedia.org/page/The_Lord_of_the_Rings represents the page about the novel

(resp. http://dbpedia.org/data/The_Lord_of_the_Rings for machines)

ref : https://stackoverflow.com/questions/16000064/best-practices-for-adding-semantics-to-a-website/16017139#16017139

I have not yet implemented this idea - it came from Georges comment that made me thing about the flexibility of and @id system you want to put in place.
Thanks to you I found the DBpedia example. And that seems to me to be about perfect.
Kris Fannin
One of the best and well thought out articles on schema. Thank you! The additional type really helped and going to implement this. Had no idea what it really was or how to use it.
Jason Barnard
Kris Fannin
Hi Chris
Thanks for the (very) positive comment.
I am very pleased it is good - SEMrush asked me for 3 rewrites to get it to this stage :)
additionalType is, indeed, very useful for "explaining" more granular concepts and entities to Google and Bing.
I haven't done much work seeing how far that can be "pushed".
Aymen Loukil
Great post Jason ;)
For developers it is very useful to test and validate Schema codes with Google official tools. Check out my new post describing a solution to test localhost with Google Structured Data Testing Tool : http://www.aymen-loukil.com/en/blog-en/how-to-test-localhost-website-with-google-seo-tools/
Jason Barnard
Aymen Loukil
Thanks Aymen
Interesting post - great stuff for developers.