Vocabulary for the virus: schema.org 7.0

You are currently viewing Vocabulary for the virus: schema.org 7.0

As outlined in a blog post of 16 March describing the release, schema.org 7.0 includes much “fast-tracked new vocabulary to assist the global response to the Coronavirus outbreak.”

The expeditiously-developed new vocabulary for the structured data standard used broadly by search engines falls into three broad categories.

  • A new type for special announcements, such as a government or some other organization would publish on their website. This announcement may include structured information about things like school closings, quarantine guidelines and disease prevention information.
  • The new concept of a virtual location, which can now be used to describe the location of an event, alongside new ways of classifying and describing events that incorporate the concept of online events.
  • The new places COVID Testing Facility and School District.


SpecialAnnouncement is not some nominally more expressive sub-type of CreativeWork: it is the domain of nine properties.

Many of these, obviously in response to the moment at hand, serve to surface medical and public health information. Others, like datePosted and schoolClosuresInfo, are likely to see utility outside of the pandemic response, and perhaps even be extended to other types.

The property names mostly speak for themselves (see the properties described here), but note that aside from the first two and diseaseSpreadStatistics the expected type for these is URL or WebContent (and diseaseSpreadStatistics includes those ranges). So for the most part SpecialAnnouncement is more about the provision of links – whether to URLs or other pieces of content – rather than structuring the properties of SpecialAnnouncement.

  • category
  • datePosted
  • diseasePreventionInfo
  • diseaseSpreadStatistics
  • gettingTestedInfo
  • newsUpdatesAndGuidelines
  • publicTransportClosuresInfo
  • quarantineGuidelines
  • schoolClosuresInfo
  • travelBans

UPDATE: 1 April 2020 – A new SpecialAnnouncement property, announcementLocation, is in the process of being deployed.

Indicates a specific CivicStructure or LocalBusiness associated with the SpecialAnnouncement. For example, a specific testing facility or business with special opening hours. For a larger geographic region like a quarantine of an entire region, use spatialCoverage.

I’ve not yet seen a confirmation from Google that they’re yet doing anything special with – or even meaningfully ingesting – SpecialAnnouncement markup (though their testing tools don’t complain about the type, and Rich Results even claims “Page is eligible for rich results”), but Bing has been quick to embrace the new markup.

UPDATE: 1 April 2020 – Google has now added a page on its Developer site, “Add structured data to COVID-19 announcements (BETA)”, which outlines use of SpecialAnnouncement, with examples for a shelter-in-place announcement, a COVID-19 testing facility announcement and a school closure announcement.

UPDATE: 3 April 2020 – Google now supports the submission of SpecialAnnouncement information via a forms-based interface on Google Search Console or Google My Business.

UPDATE: 6 April 2020 – Google has added a post on their Webmaster Central Blog describing how these announcements appear in search results, and how webmasters can implement them.

In a 23 March blog post Bing outlines the many ways it might make use of SpecialAnnoucement data. Notably this use includes actual data on the pandemic provided through SpecialAnnouncement markup.

Bing may consume case statistics from government health agencies at the country, state or province, administrative area, and city level that use the schema.org markup for diseaseSpreadStatistics associated with a SpecialAnnouncement. These statistics are used on bing.com/covid and other searches for COVID-19 statistics

As with its support for business updates, testing centers and travel restrictions, Bing requires the issuing entity be the official source of the information – in the case of disease statistics, a government organization.

For business information Bing is quite specific about how SpecialAnnouncement data will be used in the SERPs (I haven’t yet found an example in the wild to show you).

A label showing your special announcements related to the COVID-19 pandemic with a link to your site for more details may be used on web results for your official website and in local listings shown on the SERP or map experiences. This provides an easy link for your customers and community to find your latest information

For risk assessments and testing centers Bing may use gettingTestedInfo and CovidTestingFacility official data to provide information on testing and test locations to searchers.

Bing has gotten behind SpecialAnnouncement in a big way, and already has a page on it in their webmaster documentation – for once ahead of Google in this respect. 🙂

VirtualLocation and other Event-related vocabulary

As most already-scheduled in-person events have canceled or postponed as a result of the pandemic, and because – especially with virus-caused lockdowns – online events have assumed a new importance, schema.org has developed vocabulary to better reflect the suddenly very different world of live events.

A new Intangible type has been created, VirtualLocation, which is now an expected type for an Event location. Until now you could only provide some text, a (physical) Place or a PostalAddress as an event’s location (more on the search engine implications of this below): VirtualLocation provides a previously-lacking mechanism by which online events can be precisely described as such.

Since there are now both brick-and-mortar and online events in schema.org’s world, the eventAttendanceMode property has been added to Event to allow publishers to classify whether an event is online or not. Members of the enumeration (schema.org’s taxonomies) are:

  • MixedEventAttendanceMode
  • OfflineEventAttendanceMode
  • OnlineEventAttendanceMode

Finally, to help address the large number of events that have been the enumeration for eventStatusType has the new member EventMovedOnline,

(Gleeful disclaimer: I’ve tried to nudge online events forward for many, many years.)

Online events in the SERPs

I’ve not yet seen Bing yet make use of VirtualLocation, but Google has modified both their structured data requirements and their events rich results to make use of the newly-available vocabulary for online and mixed events.

Previously Google required an instance of Place (“Entities that have a somewhat fixed, physical extension”) for an Event to be eligible for rich results. Google’s updated guidelines still requires a value for location, but now one of those values can be VirtualLocation.

As attested to in the screenshot below, Google is now generating rich results on the basis of this new vocabulary.

However the “Online event” label highlighted below is not generated on the basis of Meetup.com’s use of the new vocabulary, contrary to what I initially posted. Instead, it’s there because on this page the range of the event’s location property is Place, and here a place with the name “Online event”. That’s why “Online event” appears in what might be called the “location” column, like the search result directly below that’s legitimately at a physical place.

Google's rich result for an online event from meetup.com, with the "Online event" label generated only because the markup actually identifies this as an offline event taking place at a place named "Online event"

I’ve also marked up a virtual event, with a similar rich result in the SERPs – but with the difference that the “location column” is missing. Again, the label above is because Google thinks “Online event” is the name of a Place, not because it now has a specific convention for showing online events.

An event rich result in Google generated on the basis of new schema.org markup for online events

Both in a blog post explaining the new schema.org vocabulary and in the Developers site documentation Google has been encouraging webmasters to employ this enhanced events markup, in the latter saying:

Due to COVID-19, we encourage you to add these new properties so people can understand the status of your event and how they can attend.

One thing that hasn’t changed since this new Event vocabulary became available is that once a searcher is in some sort of event vertical (“the event experience on Google”, as Google’s documentation describes it), the search engine has no notion of an online event. Any events are a seeming match for “online event” are actually marked up as brick-and-mortar event.

Online events in Google do not display properly in Google's dedicated events results

So at this point there seems to be no way for a publisher’s online event marked up with the new standards to make its way into Google’s “event experience”, nor are there any toggles or filters to limit results to online events. Perhaps such enhancements are coming.

CovidTestingFacility and SchoolDistrict

The utility of a new Place (and Organization) CovidTestingFacility should be obvious. Of its use on SpecialAnnouncement schema.org has this to say:

For an announcement that is about a place, you can use about (or mainEntity) to make that relationship explicit. For example, the announcement could be “about” a new CovidTestingFacility, and provide contact information, location, geo, openingHours etc.

SchoolDistrict was actually added in a 7.01 release (along with datePosted). It was added because for the “next phase of COVID-19 examples, we are lacking a way to talk about groups of schools.”

Next steps for schema.org

In the conclusion to the schema.org annoucement post authors Dan Brickley, R.V. Guha and Tom Marsh said that they will “we will continue to improve this vocabulary in the light of feedback” so these may not be the last pandemic-facing vocabulary we see emerge from the schema.org community.

Aaron Bradley

Aaron Bradley is Senior Structured Content Architect at Telus Digital, and chief cook and bottle washer at The Graph Lounge.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.