# What and why schema.org

### W**hat is schema.org?**

Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages, and beyond.

Structured data can be used to mark up all kinds of items from products to events to recipes.

Most sites and organizations will not have a reason to extend schema.org. However, schema.org offers the ability to specify additional properties or sub-types to existing types.

"Schema.org" vocabulary can be used with many different encodings, including RDFa, Microdata and JSON-LD. These vocabularies cover entities, relationships between entities and actions, and can easily be extended through a well-documented extension model. Over 10 million sites use Schema.org to markup their web pages and email messages. Many applications from Google, Microsoft, Pinterest, Yandex and others already use these vocabularies to power rich, extensible experiences.

### Why use schema.org

As with any site nowadays; you’re competing in a crowded market-place. Ranking higher on search result pages or being included in 3rd party registries that receive more web-traffic can raise the exposure of your work to be seen by larger audiences. This is all achievable by following best practices and applying schema.org to your site.

* Communicate with all the search engine
* Enhance findability from search engine results
* Provide context to an ambigous webpage
* Metadata Interoperability and Standardization across all website using schema.org

### Schema.org formats

You can use the schema.org vocabulary along with [Microdata](http://en.wikipedia.org/wiki/Microdata_\(HTML\)), [RDFa](http://en.wikipedia.org/wiki/RDFa), or [JSON-LD](http://en.wikipedia.org/wiki/JSON-LD) format to add markup to your web pages.

#### Format exemples:

#### Microdata

```
<div itemscope itemtype="http://schema.org/SportsTeam">
  <span itemprop="name">San Francisco 49ers</span>
  <div itemprop="member" itemscope
        itemtype="http://schema.org/OrganizationRole">
    <div itemprop="member" itemscope
            itemtype="http://schema.org/Person">
      <span itemprop="name">Joe Montana</span>
    </div>
    <span itemprop="startDate">1979</span>
    <span itemprop="endDate">1992</span>
    <span itemprop="roleName">Quarterback</span>
</div>
```

#### RDFa

```
<div vocab="http://schema.org/" typeof="SportsTeam">
  <span property="name">San Francisco 49ers</span>
  <div property="member" typeof="OrganizationRole">
    <div property="member" typeof="http://schema.org/Person">
      <span property="name">Joe Montana</span>
    </div>
    <span property="startDate">1979</span>
    <span property="endDate">1992</span>
    <span property="roleName">Quarterback</span>
</div>
```

#### JSON-LD

```
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "SportsTeam",
  "name": "San Francisco 49ers",
  "member": {
    "@type": "OrganizationRole",
    "member": {
      "@type": "Person",
      "name": "Joe Montana"
    },
    "startDate": "1979",
    "endDate": "1992",
    "roleName": "Quarterback"
  }
}
</script>
```

### Examples

{% tabs %}
{% tab title="Google cupcake microdata" %}
By performing a simple search of cupcake recipes on Google we will have as a result a preview of the information shown on the website even before going to the actual website; information such as the recipe name, rating, cooking time, calories and a description

![](/files/-LNzIVYyT7dT1JYIyhiN)

Displayed on the website you can find the same rating details shown on the Google card.

![](/files/-LNzMBhv1mgxAiD6V525)

And behind the scenes this metadata, used by Google on its search result cards, its marked **schema.org**

![](/files/-LNzMmBqEvkx_XUj9jyJ)

The type used on the markup `itemprop="aggregateRating"` is referencing the property on <https://schema.org/Recipe> website

![](/files/-LNzMvwRKfkdmSgvglok)
{% endtab %}

{% tab title="DuckDuckGo cupcake jsonld" %}
DuckDuckGo take advantage of schema.org in a similar way Google does

![](/files/-LNzZiwaj7pVX3WpNj9b)

The author of the recipe could be found on the search result card and the actual website as seen below

![](/files/-LNzf5-iZDgnlHl5F7D_)

and behind the scenes we will find the json-ld tag with the Recipe information

![](/files/-LNziDG-kKjFK35JsX4R)

the author property then holds the name we are seeing displayed on DuckDuckGo result search cards

![](/files/-LNzi5m75NDrTPkN0Pvl)

just as schema.org documentation would expect it

![](/files/-LNznjXITBOl86xT0CqT)
{% endtab %}
{% endtabs %}

### Learn how to implement this to your website on

{% content-ref url="/pages/-LNz4\_gO\_4kHGiFV3SIJ" %}
[Adding schema.org to a GitHub Pages site](/training-portal/how-to/adding-schema.org-to-a-github-pages-site.md)
{% endcontent-ref %}

{% embed url="<https://www.beautiful.ai/deck/-LPKRmK9dCDSSvzyk9wM/bioschemas_schemaorg>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bioschemas.gitbook.io/training-portal/tutorials-1/what-and-why-schema-org.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
