Frontier Software




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



Most Search structured data uses vocabulary, but you should rely on the Google Search Central documentation as definitive for Google Search behavior, rather than the documentation. There are more attributes and objects on 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 type hierarchy 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.


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": "" 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 vocabulary. but each child object must have "@type" : "Place" or "@type" : "Offer" etc.


header tags application-name author description generator Hugo inserts <meta name="generator" content="Hugo 0.122.0"> keywords referrer theme-color color-scheme Using lighthouse output, these are what Google considers important: Has a <meta name="viewport"> tag with width or initial-scale +34m The document does not use <meta http-equiv="refresh"> +26ms [user-scalable="no"] is not used in the <meta name="viewport"> element and the [maximum-scale] attribute is not less than 5. +77ms Document has a meta description +6ms


History Every element is repeatable, so have to handle array, object, or atom. 15 Elements rfc5013 Contributor Coverage Creator Date Description Format Identifier Language Publisher Relation Rights Source Subject Title Type