Structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. itself just refers to data that is organized and formatted in a way that makes it easier for both humans and machines to make sense of it. Structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. often follows a schemaAn analytics system uses schemas to parse, validate, and store events ingested by the collector. The schema dictates what a valid event looks like, what data types are accepted by the system, and what values are required in all incoming events. Schema can also be used to describe the structure of other things, such as the Data Layer. that dictates how the data should be organized.
In the context of the web, structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. typically refers to a certain schemaAn analytics system uses schemas to parse, validate, and store events ingested by the collector. The schema dictates what a valid event looks like, what data types are accepted by the system, and what values are required in all incoming events. Schema can also be used to describe the structure of other things, such as the Data Layer. and markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML. combination that lets you annotate a web page with more details about its individual parts.
Search engines can then consume this information to produce search features.
The functionality of structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. is purely semantic. It doesn’t show up on the page, and the user can’t interact with it. It’s just additional data about individual elements, and the purpose of structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. is to give search engines (and other similar services) a better understanding of what the page is about.
Example
If you have a web page with a recipe, you could add markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML. to the individual HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. elements that represent the recipe’s components, such as its ingredients, its ratings, and its preparation time.
When the search engine then indexes the content, it makes note of this structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. and might use it to enrich the search engine results page (SERPThe search engine results page is where you'll see a listing of sites and ads once you run a query in a search engine.).
It’s a good idea to add structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. to web content, because that way you’ll add additional signals for search engines to understand your content subject matter. Hopefully, search engines will then enable additional features using this structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume., which can then improve the click-through rateThe ratio of users who click on something (usually a link) to the number of total users who saw the clicked element or its context (a page, email, or ad, for example). to your content.
Just note that adding structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. is unlikely to directly result in better ranking in search engine results for your content. However, the potentially enriched result displays might invite users to click through to the content more readily, which in turn increases traffic to your website.
Don’t miss this fact!
Using structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. doesn’t guarantee a special SERPThe search engine results page is where you'll see a listing of sites and ads once you run a query in a search engine. feature, nor does it guarantee better rankings or a better click-through-rate. However, adding structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. can improve your visibility in search results, so it’s a good idea to invest in making it work.
Another thing to keep in mind is that structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. is only helpful if it’s relevant and matches the content it is describing. Especially when using JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. (see below), it’s common to have the semantic layer fall out of sync with the rest of the page.
In this case, the structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. can actually be counter-productive, because search engines will not be able to trust it as it does not accurately describe the content on the page.
As a technical marketer, you should be aware of the different approaches for adding structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. to a page. Figuring out opportunities to enrich the semantic content of the page is one of the ways to contribute to optimizing the content for search engines.
Schema.org markup
Schema.orgA collaborative repository of schemas for structured data on the Internet. is a community-driven, vendor-sponsored, collaborative effort to build a common vocabulary for semantic markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML. on the web.
With the specifications in Schema.orgA collaborative repository of schemas for structured data on the Internet., you can add a layer of detail to your web content to clearly annotate what the content is about.
There are many different formats for adding the structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. to the page (see below), but here’s an example using microdataA specification for nesting structured data within HTML content. (HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. tagsNormally, tag references an HTML element (or node). In a marketing context, tags are used to denote HTML elements and JavaScript snippets specifically designed for collecting data to marketing vendors. and attributes).
<!-- No microdata added -->
<div>
<h1>The best meatloaf in the world</h1>
<p>By Simo Ahava</p>
<img alt="Meatloaf on a plate" src="meatloaf.webp" />
<p>This is a delicious meatloaf recipe.</p>
<p>
<span>Prep time: 10 minutes</span>
<span>Cook time: 45 minutes</span>
</p>
</div>
This (partial) recipe text in itself is clear, but search engines might have a hard time figuring out which content is relevant for enrichment. To help them, you could add the metadataMetadata is additional data about the data itself. For example, in an analytics system the "event" describes that action the user took, and metadata about the event could contain additional information about the user or the event itself. like this:
<!-- Microdata added -->
<div itemscope itemtype="https://schema.org/Recipe">
<h1 itemprop="name">The best meatloaf in the world</h1>
<p>By <span itemprop="author">Simo Ahava</span></p>
<img itemprop="image" alt="Meatloaf on a plate" src="meatloaf.webp" />
<p itemprop="description">This is a delicious meatloaf recipe.</p>
<p>
<span>Prep time: <meta itemprop="prepTime" content="PT10M">10 minutes</span>
<span>Cook time: <meta itemprop="cookTime" content="PT45M">45 minutes</span>
</p>
</div>
Here you can see how the additional attributes such as itemprop don’t add any additional information to the text content itself, but they are included in the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML.. Search engines can then consume this markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML. to better understand what the content is about.
Structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. is also useful for normalizing expressions that might often be displayed in different ways. Date and time are two such things.
In the example above, the preparation time is given as “10 minutes”, but it could have just as well been written as “ten minutes” or “00:10:00” or “10:00”. The meta tagNormally, tag references an HTML element (or node). In a marketing context, tags are used to denote HTML elements and JavaScript snippets specifically designed for collecting data to marketing vendors. uses the attribute value PT10M to normalize these differences.
JSON-LD and other formats
There are different formats for expressing the Schema.orgA collaborative repository of schemas for structured data on the Internet. markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML..
In the example above, microdataA specification for nesting structured data within HTML content. was used to annotate the relevant HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. elements themselves. It’s a very semantic approach, and it encodes both the syntax and the semantics for annotating content.
These days structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. is most often delivered with JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. (JavaScriptJavaScript is the main language of the dynamic web. The web browser renders the HTML source file into a dynamic document that can be interacted with using JavaScript. ObjectObject is a JavaScript construct that comprises key-value pairs. The Data Layer (a type of object itself) typically consumes objects of data. Notation for Linked Data).
JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. annotation is done on a separate layer from the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. elements themselves. It’s similar to the Data LayerA globally available JavaScript structure on the web page designed to pass information between the web page and the tag management system. in that its sole purpose is to dictate the semantics of structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. on the page.
For example, instead of adding microdataA specification for nesting structured data within HTML content. and/or RDFa directly to the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. elements of the recipe snippet, there could be a JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. block in the beginning of the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML., completely separate from the recipe code itself:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe",
"author": "Simo Ahava",
"prepTime": "PT10M",
"cookTime": "PT45M",
"description": "This is a delicious meatloaf recipe.",
"image": "meatloaf.webp",
"name": "The best meatloaf in the world"
}
</script>
JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. is popular because it’s simple. You no longer need to link semantic data with the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. elements themselves. Instead, you just need to list all the semantic content that search engines should consume in a block of information in the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML. itself.
Deep Dive
RDFa for structured data
RDFa (Resource Description Framework in Attributes) is a somewhat similar way of encoding the semantics into HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. elements directly. However, RDFa only specifies the syntax of annotation – you can use it to freely combine different vocabularies of structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume..
<!-- Recipe annotated with RDFa -->
<div vocab="https://schema.org/" type="Recipe">
<h1 property="name">The best meatloaf in the world</h1>
<p>By <span property="author">Simo Ahava</span></p>
<img property="image" alt="Meatloaf on a plate" src="meatloaf.webp" />
<p property="description">This is a delicious meatloaf recipe.</p>
<p>
<span>Prep time: <meta property="prepTime" content="PT10M">10 minutes</span>
<span>Cook time: <meta property="cookTime" content="PT45M">45 minutes</span>
</p>
</div>
Enriched results
Whenever you do a search for information and find a result that looks enriched or otherwise pleasing to the eye, it’s a useful exercise to open that link and then look through the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. source to see how it’s annotated.
For example, here is a search for “Contact movie”, with the intent of finding information about one of the best movies of all time. At the top of the listings, there’s the IMDB entry that looks enriched:
As you can see, IMDB has added a rating in addition to votes and some quick links. Even though the rating is absurdly low (this movie deserves a 9.5/10 at minimum), it’s useful extra information when determining if this is what you should dedicate your movie night to.
Opening the page and inspecting the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. source, you can see this:
In this JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. block, there are a number of things that have been utilized in the search engine results page entry.
“description” is used to generate the short snippet below the title.
“aggregateRating.ratingValue” generates the average rating for the entry, and “aggregateRating.ratingCount” is the count.
The title of the page Contact (1997) doesn’t come from the JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. but rather the <title> attribute of the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. source itself, and the quick links at the bottom are derived dynamically from the content.
It’s thus important to understand that adding structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. doesn’t guarantee that the enrichment will appear in all search results, nor does it guarantee that only the structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. will be used for enrichment.
Search engines might divert from your structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. suggestions if they are confident that they have even better information available elsewhere in the HTMLHyperText Markup Language (HTML) is used to describe how web documents should be rendered by the web browser. When you navigate to a web page, the web server hosting that page serves your browser an HTML source file that is then rendered into the visible and interactive web page. markupIn web technologies, markup is the process of "marking up" a document with tags or similar codes. This process can be formalized in languages like HTML or XML..
Key takeaway #1: A schema instructs the form and function
While you are free to annotate your content however you like, if you want search engines to make use of it, you need to follow their schemaAn analytics system uses schemas to parse, validate, and store events ingested by the collector. The schema dictates what a valid event looks like, what data types are accepted by the system, and what values are required in all incoming events. Schema can also be used to describe the structure of other things, such as the Data Layer.. There’s usually a very specific syntax and semantic structure to how the structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. needs to be applied to the page, and if you divert from this, the search engine might ignore the annotations altogether.
Key takeaway #2: Structured data can enrich the SERP
Even though structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. is useful in giving additional information to search engines about the content, a good reason to add structured dataStructured data is a semantic layer on a website, explaining what the website is about and what different entities on the page are. This information is usually provided for bots and crawlers to consume. is the chance that your content might get enriched in the SERPThe search engine results page is where you'll see a listing of sites and ads once you run a query in a search engine.. If the search engine decides to do this, it means that your content might be displayed more prominently with a featured image or with other, relevant annotations.
Key takeaway #3: JSON-LD is a good way to start annotating
JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. is a block of information you add to the page, separate from the rest of the content. Other annotation methods require you to add relevant information to the actual on-page elements themselves, whereas JSON-LDJavaScript Object Notation is a popular format for encoding JavaScript objects as strings. It's usually used with HTTP network requests, but can be used for other purposes like structured data, too. needs you to compile everything into a separate code block. This is often the easiest way to annotate, although this separation of concerns does mean that you need to be careful not to inadvertently include outdated information.