Last update on .

Don't forget to share this post

Before and After Applying Semantic Schema Markups
Before and After Applying Semantic Schema Markups
Entity-based SEO is a method used by search engines to deliver the most relevant and accurate results to users by understanding the context and intent behind their searches. While machines can process phrases literally, they may not always grasp the nuances of language that humans do.

Its important to note that knowledge graphs and semantic quality are key concepts for semantic-based SEO because they help search engines understand the relationships between different entities and the meaning and context of a website's content. This can lead to improved search rankings, more accurate and useful search results, and a better search experience for users.

In this case study, I am going to demonstrate how entity-based SEO takes into account the relationships between entities and the context in which they are used to provide more meaningful search results.

This semantic SEO study is going to cover the followings:

What is an entity?

An entity is a thing with distinct and independent existence. It's anything that is singular, unique, well-defined, and distinguishable. an entity doesn't have to be a physical object or tangible, it can be either way, for example, color and date are intangible entities while Organizations, LocalBusiness, and Articles are tangible.

What is entity based SEO?

Entity-based SEO is a method that looks at the content of pages, the context of entities and their relationships rather than just the keywords on the page.

It refers to a webmaster’s ability to define the primary entity on the page and describe its relationships with other entities on the page.

for more information i posted an article about optimizing entities for SEO in the previous blog post.

What is the difference between SEO and entity-based SEO?

Entity-based SEO (EBS) can help semantic search engines better understand the context and relevance of the content on your page.

By targeting ideas and contexts rather than just words or phrases, entities can create a richer understanding of what people are searching for online. They can also help identify keywords that may not be directly related to the topic of the article but could provide valuable insight into how users think about the subject, and finally, entities build a bigger picture of content, potentially allowing it to outperform traditional keyword research methods.

Semantic JSON-LD code Vs non-semantic JSON-LD code

I created two JSON-LD codes for a real estate listing. Both codes are identical except for one key difference: the first code is semantic and it describes the entities and their relationships, while the second code is not semantic and it only describes the entities without any relationships. This presents a problem because the second code does not show the primary entity on the page and its relationships with other entities. In contrast, the first code clearly defines the relationships between all entities within a context. To see the difference, you can validate both codes using the schema markup validator.

Note: if you validate this blog post, you ll find separate entities not connected, and the reason is that the template itself for this blog is using RDF technology not JSON-LD, in RDF the code is semantically embedded in the HTML elements, and the relationships are concluded from the RDF elements in the DOM (Document Object Model).

What are entity types?

An entity type is a category of entities that share certain characteristics or properties. In JSON-LD, entity types are represented using types, which are used to specify the class or category to which an entity belongs. For example, a person entity might have a type of "Person", while a product entity might have a type of "Product". Entity types allow you to specify the nature of an entity and define how it should be interpreted within the context of your JSON-LD code.

An entity type is the fundamental building block for describing the structure of data on your page, each type has to have a unique name, unique ID, informational data in the form of properties, and relationship data in form url.

There are many languages that are recommended to describe entities on the web such as Web Ontology Language OWL, XML, RDF but the most common one is JSON-LD from it has around 1,400 entity types and their properties, examples are: Organization, LocalBusiness, Product, Service, Article etc. describes a variety of other item types, each of which has its own set of properties that can be used to describe the entity. has a set of types, arranged in a multiple inheritance hierarchy where each type may be a subclass of multiple types, for example, a jewelry shop is a subclass of a store which is a subclass of a local business, and a local business is a subclass of organization.

Can an entity have more than one type?

Yes of course, for example, a video about semantic SEO, can be described as a VideoObject and also as a LearningResource.

What are entity properties?

Entity properties are characteristics or attributes that describe an entity such as (name, description, currency, date, time, url, etc). Entity properties are used to provide additional information about an entity and help to define its meaning or significance within a particular context.

For example, a person entity might have properties such as "name", "age", and "address", while a product entity might have properties such as "name", "price", and "description". Entity properties are usually represented using key-value pairs in JSON-LD, with the key representing the property name and the value representing the property value.

entity properties can also be used to define relationships between entities. For example, you might use properties to specify that a particular person is the "author" of a book or that a product is a "variant" of another product.

There are two types of properties:

  • Simple types: the types that take text as input, such as name, description, URL date, time.
  • Complex type: the properties that can be described as another entity, for example, if you have an Organization type, the founder of the organization is a Person which is also another entity that has its properties. So this person can be described as the founder (relationship) of an organization.

Do I have to mark up all entities on the page?

It is generally a good idea to mark up all relevant entities on a page using JSON-LD, as this helps to provide more context and meaning to the content, However markup is not an all-or-nothing choice. marking up as much content as possible helps search engines use your information to present your page to users in the most useful way. As a general rule, you should mark up only the content that is visible to people who visit the web page and not content in hidden div's or other hidden page elements.

What are the important properties needed for interlinking in entity-based SEO?

There are many different properties that can be useful for entity-based SEO such as 'name', 'description', 'url' and 'image'. But some of the most important properties to consider are the ones that can describe the relationships between entities.

  • mainEntity: Indicates the primary entity described in some page or other CreativeWork. For example if you have a WebPage about a Product, the WebPage also has FAQ, review and an article, the mainEntity of the WebPage is the product, while the FAQ and Article are other entities related to the Product.

  • mainEntityOfPage: is the inverse of mainEntity, for example if your primary entity is the Product, this product is mainEntityOfPage on the WebPage.

  • sameAs: The sameAs property also relates a thing to a page that indirectly identifies it, for example your social media pages, or a wikipedia page about the same thing.

  • About: about is similar to mainEntity, with two key differences. First, about can refer to multiple entities/topics, while mainEntity should be used for only the primary one. Second, some pages have a primary entity that itself describes some other entity, for example the primary entity is a Recipe and there is an FAQ about the Recipe, the mainEntity of the WebPage is the Recipe and the about of the WebPage is the FAQ.

  • Url: The url property should be reserved to refer to more official or authoritative web pages, such as the item’s official website additionalType: Entities can use more than one type, typically used for adding more specific types from internal or external vocabularies, for example a VideoObject and a LearningResource or a Place and a Museum.

  • Location vs AreaServed: The Location is the address of the entity while the AreaServed is the area its serving, for example a real estate agent has a location in a specific area but they are serving the North East part of town coz this is where all their real estate listings are located.

  • Id: its used in one of the methods to link entities together, all entities can be linked with their Ids to describe their relationships, for this reason every entity has to have an Id.

  • knowsAbout: to indicate a topic that is known about, for example a dentist knowsAbout Dentistry alternateName: Other names for the entity for instance: Cell Phone, Mobile, Cellulaire, Iphone, Android, they all relate to the same entity which is a phone.

  • subjectOf: is the Inverse-property of about for example an FAQ can be a subject of a WebPage.

  • aggregateRating: The average rating based on multiple ratings or reviews, for example even if you don't have rating on your page you can refer to the aggregate rating on your Google Business Profile page by providing the url of the page.

How do you optimize your content for semantic SEO?

This involves , as well as .

According to Tim Berners-Lee the founder of the internet: The Semantic Web isn't just about putting data on the web. It is about making links, so that a person or machine can explore the web of data. With linked data, when you have some of it, you can find other related data.

Below are the 5-star rules, for creating semantic content on the web, by Tim Berners-Lee.

  • Available on the web (whatever format) but with an open license, to be Open Data<./li>
  • ★★ Available as machine-readable structured data (e.g. excel instead of image scan of a table).
  • ★★★ as (2) plus non-proprietary format (e.g. CSV instead of excel).
  • ★★★★ All the above plus, Use open standards from W3C (RDF, SPARQL or JSON-LD) to identify things, so that people can point at your stuff.
  • ★★★★★ All the above, plus: Link your data to other people’s data to provide context.

What are semantic schema markups?

Semantic schema markups, a method of markups that find all appropriate entities to include on a page, show how they are connected. Then, build ontologies that show off their relationships.

Here is an article i wrote about how to optimize your structured data for semantic SEO.

It is a way of markup to provide additional context and meaning. They are also used to help search engines and other software understand the content of a webpage and how it relates to other information on the web.

example of Semantic schema code vs non semantic schema code.

Case Study: Semantic SEO for a Real Estate Agency Improves Search Engine Rankings and User Experience

In this case study, Im going to demonstrate how the real estate agency's organic traffic was increased by more than 100%, and their impressions on search engines increased by more than 200% only by following the rules mentioned above.

in here i listed the general outline of what has been done, but to learn the how-to it is important to watch the following resources with real examples.

Key (Must See) Learning Resources:


The client is a local real estate agency that mediates selling residential and commercial properties by listing them on their online platform. The website has been struggling to attract relevant organic traffic and generate sales. When we examined other real estate platforms, including the international ones, it came to our attention that none of the real estate platforms uses the right schema types for their listings, most of them use the type Product, which does not describe the page entirely except for the offer and price. To improve its search engine optimization (SEO), we decided to be different and deploy the right schema types and implement semantically structured data markup on their website.


To create and optimize semantic schema markups, you can easily apply the following steps using Schemantra.

Schemantra is an entity-based SEO tool that allows to create entities and describe their relationships with other entities.

To help implement the solution below please read the resources mentioned above.

The following is the framework required to implement semantic markups on your website:

  • Identify the right schema type for the primary entity of the page: for example, the website provides real estate listings which is the main core of their business, they have a dedicated page for each listing each page has a real estate property for sale lets say its an Apartment, so obviously the primary entity of the page is the Apartment, we need an Apartment schema type, this apartment is a real estate listing so obviously this apartment is also a RealEstateListing Type, moreover, this apartment has a price, so its also a product, As a result each primary entity (listing) has three types (Apartment, RealEstateListing and Product).

  • Provide as much detailed information as possible about your entity. As long as the information exists on the page. in your schema properties you can include all apartment specifications, price, images, location, etc., the more information you provide the more likely your business will appear in search results.

  • Identify all other entities on the page and apply steps one and two for each entity. For example, other entities include, FAQs, lead forms, contact person, reviews, other real estate listings.

  • Use the important properties needed for entity-based SEO to describe the relationship between the primary entity on the page and its relationship with all other entities on the page, i created a video to explain the fundamentals of semantic SEO using an Automotive example for instance: the mainEntity on WebPage is the listing which is [Apartment, RealEstateListing, Product] the WebPage has FAQ about the listing, the WebPage hasPart: otherListings.

  • Test your structured data using Google's Structured Data Testing Tool. This tool allows you to see how your structured data will appear in search results and identify any errors or issues. Use Google Search Console to submit the changes to Google, monitor your search engine rankings and track the performance of your schema. This will help you understand how effective your schema is and identify any areas for improvement.


As a result of these changes, real estate agent ranking in search results improved significantly. The website began to appear in more relevant search queries and attracted more traffic from users who were looking at real estate listings, organic traffic increased by almost 100%, impressions increased by 200% and lead increased by almost 100%.

Overall, implementing semantic structured data markup on the company’s website improves its search engine rankings and user experience, leading to an increase in the original traffic, leads, and an increase in sales. The website's owner was very pleased with the results and plans to continue using semantic SEO to improve its online presence.


Pingbacks are closed.


  1. Ecommerce Optimizer

    Ecommerce Optimizer on #

    Haven't been here for a while. Awesome growth. You've done very well finding your niche in the grand scheme of things with well-thought-out content. Nice Job!

  2. Lucian Voju

    Lucian Voju on #

    Great info! Thank you for sharing it

  3. Tom Mauger

    Tom Mauger on #

    Great blog and tool! Thank you!

  4. GaryPaulson

    GaryPaulson on #

    In the section "What is an Entity" you say:
    ... color and date are intangible entities ...
    Did you mean to say "colors and dates are intangible entities"?

    As written it implies you mean the word "color" and the word "date" are intangible entities, whereas I think you mean things like Blue and 09/11/2001 are intangible entities.

    PS. Hope the course is available soon.

Login to comment