We have taken some great steps in improving the SEO of WordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. sites by rearranging the URL structure. I think the next step should be outputting Event Schema, to allow WordCamp sites to get rich event snippets. Wordcamp.org should output event schema on event homepages as well as on the individual WordCamp central Website for all WordCamp activities globally. https://central.wordcamp.org includes a list of upcoming and past camp with links to each. event page.
What is “event schema”?
Event schema is meta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. data, in JSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.+LD format, that tells Google, and other search engines and platforms, about our events. It gives them the most important event details in computer readable format, so they can use that when they highlight an event.
Schema examples
Below are the examples for event schema that should be shown on the WordCamp.org event homepage. When adding this Event schema to WordCamp Central (here, for example) we should add a url
attribute at the top level, pointing to the WordCamp homepage URL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org.
Note that this event schema can be left on the page after the event is done. The event schema can also stay on the previous homepage, so a 2019 version of a WordCamp could still have the 2019 schema.
Schema for online events
{
"@context": "https://schema.org",
"@type": "Event",
"organizer": {
"@type": "Organization",
"name": "WordCamp Finland 2020 organizing team",
"url": "https://finland.wordcamp.org/2020/about/organizers/"
},
"name": "WordCamp Finland 2020",
"description": "Join the Finnish, Nordic and European WordPress Community for a full day of learning, sharing and fun!",
"image": "https://finland.wordcamp.org/2020/files/2020/09/wpfi2020-logo-black.png",
"startDate": "2020-11-12T12:00+02:00",
"endDate": "2020-11-12T17:00+02:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
"@type": "VirtualLocation",
"url": "https://example.com/"
},
"offers": {
"@type": "Offer",
"name": "Free ticket",
"price": "0",
"priceCurrency": "EUR",
"validFrom": "2020-10-27",
"url": "https://finland.wordcamp.org/2020/tickets/",
"availability": "https://schema.org/InStock"
}
}
Schema for offline events
{
"@context": "https://schema.org",
"@type": "Event",
"organizer": {
"@type": "Organization",
"name": "WordCamp Alaska 2020 organizing team",
"url": "https://alaska.wordcamp.org/2020/about/organizers/"
},
"name": "WordCamp Alaska 2020",
"description": "Join the Alaskan WordPress Community for a full day of learning, sharing and fun!",
"image": "https://alaska.wordcamp.org/2020/files/2020/09/wp-alaska-2020-logo-black.png",
"startDate": "2020-11-12T12:00+02:00",
"endDate": "2020-11-12T17:00+02:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Our WordCamp venue",
"address": {
"@type": "PostalAddress",
"streetAddress": "Address line 1",
"addressLocality": "City",
"addressRegion": "AK",
"postalCode": "12345",
"addressCountry": "US"
}
},
"offers": {
"@type": "Offer",
"name": "Regular ticket",
"price": "25",
"priceCurrency": "EUR",
"validFrom": "2020-10-27",
"url": "https://alaska.wordcamp.org/2020/tickets/",
"availability": "https://schema.org/InStock"
}
}
Schema for cancelled events
{
"@context": "https://schema.org",
"@type": "Event",
"name": "WordCamp Finland 2020",
"description": "Join the Finnish, Nordic and European WordPress Community for a full day of learning, sharing and fun!",
"image": "https://finland.wordcamp.org/2020/files/2020/09/wpfi2020-logo-black.png",
"startDate": "2020-11-12T12:00+02:00",
"endDate": "2020-11-12T17:00+02:00",
"eventStatus": "https://schema.org/EventCancelled",
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
"@type": "VirtualLocation",
"url": "https://example.com/"
},
"organizer": {
"@type": "Organization",
"name": "WordCamp Finland 2020 organizing team",
"url": "https://finland.wordcamp.org/2020/about/organizers/"
},
"offers": {
"@type": "Offer",
"name": "Free ticket",
"price": "0",
"priceCurrency": "EUR",
"validFrom": "2020-10-27",
"url": "https://finland.wordcamp.org/2020/tickets/",
"availability": "https://schema.org/InStock"
}
}
UI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. controls
A lot of this data comes from existing fields / settings in the system. I think these are the ones that we might need to be able to change manually:
- event attendance mode (online vs offline vs mixed);
- event status dropdown (type can be one of these event types), where I suggest we do not add support for
EventPostponed
and EventMovedOnline
; - event description;
- virtual location URL.
Decisions still left to make
- Should the organization bit refer to the organizing team or to the WordCamp foundation or something else?
Thanks to @francina, @sippis and @jonoaldersonwp for providing early feedback on this idea.