Frontier Software

Metadata

Glossary

Formats

Google intro to structured data

  1. JSON-LD
  2. Microdata
  3. RDFa

I’ve opted to use both JSON-LD and Microdata, and ignore RDFa which seems to have fallen out of fashion with XML.

The reason I’m using Microdata is I’ve found it an aid in keeping my HTML templates logical and neat, though it does sometimes confuse Google’s scrapers in that two different Metadata formats on the same page invites contradictions. For me, Microdata is in lieu of cluttering the HTML code with classes. I get the CSS to reference elements by itemprop rather than class.

S u b j e c t O b j e c t P r e d i c a t e

Controlled Vocabularies

Google examples

microdata

schema-org

Most Search structured data uses schema.org vocabulary, but you should rely on the Google Search Central documentation as definitive for Google Search behavior, rather than the schema.org documentation. There are more attributes and objects on schema.org that aren’t required by Google Search; they may be useful for other search engines, services, tools, and platforms. — Introduction to structured data markup in Google Search

schema.org type hierarchy

https://schema.org/docs/datamodel.html

Types

T h   i   n g A B C E I M O P P P T c i r v n e r e l r a t o e e t d g r a o x i C a n a i a s c d o o h t t n c n o P e u n n e i g a i n a c m v i l z t t E e b E a i n W l n t e t o e t i n i r i o t t k t n y y
Google schema.org
Article NewsArticle
Book actions DataFeed
Breadcrumb BreadcrumbList
Carousel ItemList
Course info Course
Course list ItemList
Dataset Dataset
Discussion forum DiscussionForumPosting
Education Q&A Quiz
Employer aggregate rating EmployerAggregateRating
Estimated salary Occupation
Event Event
Fact Check ClaimReview
FAQ FAQPage
Home activity Event
Image metadata ImageObject
Job posting JobPosting
Learning video VideoObject
Local business LocalBusiness
Math solver MathSolver
Movie carousel ItemList
Organization Organization
Practice problem Quiz
Product Product
Product variant ProductGroup
Profile page ProfilePage
Q&A QAPage
Recipe Recipe
Review snippet Review
Sitelinks search box WebSite
Software app SoftwareApplication
Speakable WebPage
Subscription and paywalled content NewsArticle
Vacation rental VacationRental
Vehicle listing Car
Video VideoObject

Google’s validator

json-ld

Homepage

W3 Spec

Validator

Google page on Event structured data

JSON-LD keywords start with an ampersand.

@context

Every JSON-LD entry must have a "@context": "https://schema.org" at the top level. The @context is assumed to be inheritted by all descendents, so only needs to appear once.

@type

Something like "@type": "MusicEvent", ie something in the schema.org vocabulary.

but each child object must have "@type" : "Place" or "@type" : "Offer" etc.

@id

There’s a bit of overlap between JSON-LD and schema.org keywords, and the rule seems to be JSON-LD is higher up in the hierarchy and should be prefered given the choice.

html5

header tags

https://www.dublincore.org/specifications/dublin-core/dc-html/

Using lighthouse output, these are what Google considers important:

dublin-core

History

  1. Every element is repeatable, so have to handle array, object, or atom.

15 Elements

rfc5013

  1. Contributor
  2. Coverage
  3. Creator
  4. Date
  5. Description
  6. Format
  7. Identifier
  8. Language
  9. Publisher
  10. Relation
  11. Rights
  12. Source
  13. Subject
  14. Title
  15. Type

https://www.dublincore.org/specifications/dublin-core/dc-html/