Structured Data helps provides context and meaning to the content and data of our websites. But with competing standards, multiple implementation methods and fragmented documentation it can be very tricky to do right.
Peter Macinkovic will go over the history of structured data standards, how it works and common gotchas that trip up most webmasters when learning how to implement for the first time.
He also goes over best practice, which formats to choose and how to implement on scale - regardless the platform you run.
In depth article on this presentation availble here:
https://peter.macinkovic.id.au/blog/2019-08-05-structured-data-with-schema-org-and-turning-seo-into-gold-melbourne-seo-meetup-may-2019/
ABOUT THE SPEAKER
=========================
Peter Macinkovic is a Digital Marketer and eCommerce Specialist based in Melbourne, Australia. A Former Digital Project Manager, Peter found his true calling in Digital Marketing and SEO working in-house for Kiana Beauty in the online retail sector
Structured Data Explained - Everything you wish you knew about schema.org
1. Structured Data Explained:
Everything you wish you knew about schema.org
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
2. Hi, I’m Peter
https://peter.macinkovic.id.au
What I am all about
● I do Digital Marketing for an online beauty
retailer called Kiana Beauty
● Been working on the web since 2011
● I have been a regular at the
SEO Melbourne Meetup for 5+ years
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
3. What this talk covers
Structured Data Explained:
Everything you wish you knew about schema.org
● What is Structured Data
● Standardised Formats
● Schema.org
● Google SERP Enhancements
● Schema.org debugging, gotchas
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
4. What is Structured Data
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
5. What is Structured Data
Structured Data provides context and semantic
meaning to HTML Content
It helps makes human readable content
structured so it is machine readable
“When information is highly structured and
predictable, search engines can more easily
organize and display it in creative ways.”
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
9. RDFa
Developed in 2004
Standardised in 2007
Microformats
2005 - A more design
focused standard
Microdata
2009 - designed
by Ian Hickson
JSON-LD
2010 - serialised form of
Linked Data in JSON format
10. RDFa
● Developed in 2004
● Standardised in 2007
● Legacy of XML
● RDFa Lite been the standard since 2009
● Uses HTML attributes to structure data
○ vocab sets Item Scope
○ typeof sets Item Type
○ property sets property of Item
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
11. Microdata
● Developed in 2009
● Designed by Ian Hickson, who wrote the
HTML 5 Spec
● Designed to be a simpler syntax
● Development terminated between
2013 - 2018
● Uses attributes to structure data
○ itemscope sets Item Scope
○ itemtype sets Item Type
○ itemprop sets property of Item
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
12. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
JSON-LD
● Developed in 2010
● Designed to be a serialised form of
Linked Data in JSON
● Used by schema.org,
Google Knowledge Graph
● Simple to implement with <script/> tags
● Uses JSON object to set Context, Types
& Properties
13. What is schema.org
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
14. ● It is a collaboratively maintained
community to create, maintain and
promote schemas for structured data
● Started in June 2011 by
Bing, Google, Yahoo! and Yandex
● Uses three standardised formats:
○ RDFa Lite
○ Microdata
○ JSON-LD
What is schema.org
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
15.
16. Itemscope, Context
Itemtype & Properties
● Itemscope specifies the block of HTML
code is an itemtype for RDFa & Microdata
● Context in JSON-LD sets the schema the
object belongs to. This is typically set to
https://schema.org
● Itemtype is the schema object, which can
either be a Thing or DataType
● Properties are the attributes of an Itemtype
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
17. Item Types
Thing
name: Text
description: Text
url: URL
sameAs: URL
potentialAction: Action
image: ImageObject or Image
mainEntityOfPage: URL
subjectOf: CreativeWork or Event
Identifier: PropertyValue or Text or URL
MedicalEntity
properties
from thing
-----------------
Organization
properties
from thing
-----------------
CreativeWork
properties
from thing
-----------------
Event
properties
from thing
-----------------
Intangible
properties
from thing
-----------------
Action
properties
from thing
-----------------
Place
properties
from thing
-----------------
Person
properties
from thing
-----------------
Product
properties
from thing
-----------------Itemtypes are Schema Objects.
All Itemtypes are derived of Thing,
except DataTypes.
The syntax of Item Types
is in Pascal Case
(aka Upper Camel Case)
There a 9 sub-types of Thing which
all types except Data Types.
DataTypes are things like Text,
Boolean, URL etc.
18.
19. Visual Representation of the Itemtypes of
schema.org v2.2 (circa 2015)
Interactive Diagram courtesy of Fabio Valsecchi ,
Gregg Kellogg and Sandro Hawke
20. Properties
Properties are part of Item Types.
They help classify properties of an
Itemtype in a structured nature
● Properties have Expected Types that
they may passthrough.
○ Typically this will be either a
subtype of Thing or a Data Type
● Properties are in camelCase,
specifically lower camel case.
● Properties that accept an Item Type that
is a sub type of Thing can be an object
● The Expected Type of an object can
also be a Super Type or Sub Type of the
Expected Type.
● Sub Types may gain specific properties
for it and its children that differ from the
Super Type
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
21. Schema.org by Example
Itemtypes and Properties in Action for RDFa, Microdata & JSON-LD
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
22. Expected Types
● Typically this will be either a subtype of Thing
or a Data Type
● Expected Types may still validate with a Sub
Type of Super Type
○ e.g. Expected Type of LocalBusiness
can be a Pharmacist
○ e.g. Expected type of ListElement can
be a Thing
● Expected Types may have some mandatory
fields beyond name or id when validating for
Google Search Enhancements
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
23. Sub Types
● Subtypes inherit properties from their parent
● Subtypes may have multiple Super Types that
it can inherit properties from.
○ e.g. a Pharmacy can inherit properties
from Thing, Organization, Place,
MedicalOrganization, and LocalBusiness
○ e.g. a Pharmacy can be a SubType of
either a MedicalBusiness or
MedicalOrganization
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
24. Inherits from Thing
Inherits from Place
Inherits from LocalBusiness
-------------
Inherits from Organization
Inherits from MedicalOrganization
Inherited Properties by Example: Pharmacy
Thing
name
mainEntityOfPage
url
sameAs
description
image
identifier
additionalType
alternateName
potentialAction
subjectOf
disambiguatingDescription
Place
Inherits from Thing
--------
address
telephone
faxNumber
event
review
geo
maximumAttendeeCapacity
openingHoursSpecification
… 34 in total
LocalBusiness
Inherits from Thing
Inherits from Place
--------
currenciesAccepted
openingHours
paymentAccepted
priceRange
MedicalBusiness
Inherits from Thing
Inherits from Place
Inherits from
LocalBusiness
Pharmacy
25. Sub Types in Action: Inherited Properties
How Expected Types can be Sub Types that inherit parent properties
Examle: Item Type: City property: containsPlace Expected Type: Place
Above: A simple JSON-LD schema object of a City that contains a Pharmacy as a Place
26. Above: A simple JSON-LD schema object of a City that contains a Pharmacy as a LocalBusiness
Note: The property image is mandatory, with address, priceRange, telephone recommended for Rich Results in Google
Sub Types in Action: Inherited Properties
27. Above: A simple JSON-LD schema object of a City that contains a Pharmacy as a MedicalBusiness
Note: The property image is mandatory, with address, priceRange, telephone recommended for Rich Results in Google
Sub Types in Action: Inherited Properties
28. Above: A simple JSON-LD schema object of a City that contains a Pharmacy as a Pharmacy
Note: The property image is mandatory, with address, priceRange, telephone recommended for Rich Results in Google
Sub Types in Action: Inherited Properties
29. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Nesting Item Types
● Item Types have properties that are expected
to be other Item Types
● The nesting of some Item Types are flexible
and can have each other as expect types.
○ e.g. a Product can reference Offer via the
property offers
○ An Offer can reference Product via the
property itemOffered
30. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Nesting Item Types
● Item Types have properties that are expected
to be other Item Types
● The nesting of some Item Types are flexible
and can have each other as expect types.
○ e.g. a Product can reference Offer via the
property offers
○ An Offer can reference Product via the
property itemOffered
31. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Multiple Item Types
● Google recommends using JSON-LD in
particular for nested items and multiple items
● In JSON-LD, multiple Item Types can be placed
in an array by square brackets.
● Many Sub Types of Intangible such as
Enumeration and ItemList are designed to
handle a list of items.
32. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Enumeration &
Data Types
● Data Types handle basic data types such as
integers, strings, booleans etc.
○ e.g. Text, URL, XPathType, cssSelector,
Date, Number, Boolean, True, False etc.
○ Data Types may be subject to standards,
such as ISO 8601 for Date, or Unicode for
Numbers
● Enumeration members can be set to specific
canonical Schema.org items
○ E.g. The property of availability in an
Offer can equal an Enumeration such as
https://schema.org/InStock
33. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Handling Multiple
Schema Objects
● By default, Google will define all detected
schema objects as part of a WebPage
○ This prevents conflicts within the context
of the page.
○ Use mainEntityOfPage to explicitly label
the main entity of these schema objects
○ Multiple Schema Objects of the same
type will be treated as an array.
34. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
WebPage and Specific
Web Page Types
● WebPage is the explicit object a valid HTML
page will be read as - no schema needed.
● Has the mainContentOfPage property, which
sets the primary content of the page using
cssSelector or xpath
● Has 10 Sub Types for specific Web Page types
● Works well with the mainEnitity property to
explicitly define the main schema object
i.e. mainEntity of Product for an ItemPage
35. ○ AboutPage
○ CheckoutPage
○ CollectionPage
○ ContactPage
○ FAQPage
WebPage and Specific
Web Page Types
● Has the primaryImageOfPage property to set
the image most representative of the page.
● Has the significantLink property, which sets
most important URL of the page. For multiple
URLs, use significantLinks. Non-navigational
● Sub Types are:
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
○ ItemPage
○ MedicalWebPage
○ ProfilePage
○ QAPage
○ SearchResultsPage
36. Google SERP Enhancements
Using Structured Data to change how you are presented in Search
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
38. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Google Enhancements
by Item Type
● Certain Item Types have special enhancements
via the use of structured data
● These enhancements may directly impact the
presentation of a search result
● They may also affect the knowledge panel of an
entity or local business.
● There are strict required properties for Item Types
and recommended properties
● Validates with Google Structured Data Testing
Tool
Article
Breadcrumb
Book
Carousel
Corporate contact
Course
Critic review
Dataset
Employer Aggregate Rating
Event
Fact Check
Job Posting
Livestream
Local Business
Logo
Media
Occupation
Product
Q & A Page
Recipe
Review snippet
Sitelinks searchbox
Social profile
Software App
Speakable
Subscription and paywalled content
Top Places List
Video
39. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
BreadcrumbList
● A sub type of Item List.
● Breadcrumb is a property of WebPage
● URLs displayed support UTF Chars & Emojis
● Best utlised with either JSON-LD or RDFa. There
is a (long) standing bug with Microdata.
● Required Properties:
○ item: a Thing, which point to the URL of the
item
○ name: The name of the list element, which
will be displayed in lieu of the URL path
○ position: The position of the list element, in
order
40. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Article
● A sub-type of Creative Work
● Display rich content such as publish date,
headline, and image
● Articles may be one of 3 Item Types:
Article, NewsArticle and BlogPosting
● Has different standards for AMP and non-AMP
pages
○ AMP is more stricter, with richer display
including publisher logo. 11 required
properties
○ Non-AMP is less strict, with just
4 recommend properties
41. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Article
● A sub-type of Creative Work
● Display rich content such as publish date,
headline, and image
● Articles may be one of 3 Item Types:
Article, NewsArticle and BlogPosting
● Has different standards for AMP and non-AMP
pages
○ AMP is more stricter, with richer display
including publisher logo. 11 required
properties
○ Non-AMP is less strict, with just
4 recommend properties
42. Product
● Used in Combination with Offer or
AggregateOffers to serve a Product
● Display rich content such as product image, price,
and availability Required Properties are:
○ For Product: image, name
■ Recommended properties are:
aggregateRating, brand, description,
offers, review, [ gtin ], sku
○ For Offer: availability, price, priceCurrency
■ Recommended: itemOffered,
priceValidUntil, url
○ For AggregateOffers: lowPrice,
priceCurrency
■ Recommended: highPrice, offerCount
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
45. Structured Data is about providing context to
content and data.
It is more important they know that this Thing is
a Place than it is a Village.
Don’t Manually Over Optimise, it is not scalable,
prone to error and difficult to change as
standards evolve.
Use Source Data to populate Structured Data
when possible. Use Plugins like Yoast or
Modules like schema.org when non-technical.
Don’t Overthink Structured Data
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
46. Peter Macinkovic
https://peter.macinkovic.id.au
Twitter, instagram, LinkedIn as @inkovic
Questions?
● Ask questions on the Webmasters Stack
Exchange
● RIP Google+ Group ‘Semantic Search’
Best Resource
● Read the W3C Spec, Schema.org Docs, Read
the Github issues
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | April 2019
Notes de l'éditeur
Developed in 2004, standardised in 2007
☐ Legacy of XML
☐ People figuring out how to structure data
☐ Intro the Syntax
☐ RDFa Lite
Current version is 3.5
As of April 2019, no more extensions or