Blog Post: Event Plugins and Schema

If you work with a performing arts organization, you might very well use WordPress for your website. And if so, you might use a common plugin for ease of managing your concerts and other events. At CAPACOA, through our Linked Digital Futures project, we are interested in how these event plugins use structured data. 

For those that don’t know, adding structured data to your website, usually in the form of a JSON-LD script hidden in the header of your webpage, gives Google and other search engines specific insight into what kind of content you have and how to display it in a useful and relevant way. Since search is a key way your concertgoers find performances, this question of structured data is extremely important. 

We also refer to structured data of an event as a schema, or overall plan of the data structure. In our case, we look at Event schema. All of the common schemas are defined by a collaborative group, including founding companies such as Google and Microsoft and input from the larger Web community.

To discover the Event schema that is generated, we tested various event management plugins. The plugins were chosen based on the number of active installations, referrals, and their feature set. Many had similar features, so that criterion received less consideration, but it will most likely be critical for your choice of plugins. For Canadian performing arts organizations, multilingual ability in French was also an important aspect. 

The initial plugin list included the following:

We loaded a website with a performing arts theme and created events in each one of the plugins. We tested the schema using the Google Structured Data testing tool. (Note: This tool is now being deprecated by the Rich Results Test, which I personally like less as it is slower and doesn’t show the code as quickly.)

In our review, only the Events Calendar had any schema at all, which was surprising. We thought that many of these plugins would have this by default. Many of the plugins had SEO optimization, but no actual structured data. We think it might be because structured data is still new to many plugin developers.

While the Events Calendar was almost the winner by default since it was the only one with schema, it didn’t provide some key schema elements. Specifically, eventAttendanceMode, eventStatus, and performer are missing, which triggers a warning in Google. This isn’t the end of the world, but we felt we could do better. One note is that they have a separate plugin to add eventAttendanceMode and eventStatus, but it didn’t work for me (the plugin did nothing after I installed it). I did see eventAttendanceMode and performer working on their demo site. 

I also found an additional plugin Schema Glue for Yoast & The Events Calendar that held back Events Calendar schema and integrates the schema into Yoast instead. However, this wasn’t that useful since the Event Calendar was still missing the modes. But, when I used Events Calendar with Schema Pro for the schema and the Schema Glue plugin suppressing the Events Calendar, it allowed me to replace the event schema from Event Calendar with Schema Pro. When I turned on Yoast, I ended up with double events again. Theoretically, Google shouldn’t penalize you for this, but I found different opinions. 

So if the basic event plugins don’t provide the basic schema, what other plugins are out there that can do this? We found a large number of plugins that claimed to do this, and we settled on a few based on these claims. 

  • Schema Pro v2.1.1 – specific plugin to generate structured data that includes events
  • Rank Math v1.0.45 – a popular SEO plugin that offers schema
  • Yoast SEO v14.5 – a very popular SEO plugin that adds schema as well.
  • Event Schema v1.1.1 – low number of installations but focused just on event schema and structured data

All these plugins offer additional schema, but we quickly ran into one major issue, which was that some plugins require duplicate manual input in addition to the event. With Schema Pro and Rank Math, you have to enter additional information in separate areas on an event page. This duplicates effort and potentially increases errors. 

Schema Pro

Schema Pro quickly became a top contender in adding additional schema to most pages. You can select a wide variety of content types to add schema to. I chose only Event, but Person and Local Business were both possible, which are useful for the arts. Person can be the artist, and Local Business is the organization, especially if the arts organization has an office or a venue it manages.

For every schema, such as Event, you map the specific value to the property you would like to use. This is handy for properties that don’t change such as currency or the country. 

Although, again with Schema Pro, you have to enter the information twice.

For example, with Modern Event Calendar, you might enter the event information here into the calendar:

But then you have to enter the same information in Schema Pro. As you can see, I have mapped some of the fields to the property already so that it can autotag some of the properties. 

This obviously is a pain. 

However, it was interesting to see that there are a lot of differences in formatting that made autotagging tricky. For example, date formats are notoriously different, and autotagging had trouble interpreting all the event date formats.

SchemaPro was very powerful, though, and it became the go-to for adding schema. One issue I wish it had was additional fields for adding new properties to a specific schema type so that we don’t have to wait until new versions to do so. 

One powerful part of Schema Pro was its ability to set specific schemas for specific pages like the Contact and the About pages. Google likes to have “Name-Address-Phone” (NAP) schema on these pages to indicate high-level schemas. Schema Pro also allows you to set your corporate information and contact information for the homepage.

Schema Pro also allows you to set the “sameAs” field for People. This is useful as the “sameAs” field ties a particular artist to an external reference. For example, if there is a social media account for the artist, a Wikidata item or a Wikipedia entry. But there aren’t “sameAs” fields for performers in Events.


Yoast is a powerful SEO tool that allows you to set keywords and cornerstone content for each page. Adding metadata through Yoast is quite powerful. Yoast doesn’t add Event schema but it does add general “WebPage” schema to Event pages. It will also add different “Article” schema as well as “Website.” As Yoast has an extremely high installation rate, chances are that any solution should work with Yoast. They have quite an extensive ability as outlined in their documentation

Yoast also extends schema through the use of multiple plugins. Each of these plugins extends the schema for different purposes. 

Rank Math

Rank Math is an SEO plugin similar to Yoast, so you would not run both at the same time. Depending on which SEO plugin you like better, you would choose one or the other. They have published a useful article describing rich snippets and configuration of schema with Rank Math. 

You map the schema to your post type and set some autotagging, but it is not as specific as Schema Pro. 

Rank Math has a nice option to add additional information on the page, but like Schema Pro, you do not have the option of writing in any missing properties. 

Rank Math does have an extensible ability that allows developers to do this, but it seems a little heavy for the average arts administrator. 

With Event schema, Rank Math is missing the Organizer property, which is unfortunate. In a HelpDesk posting from May 2020, Rank Math suggests that waiting for a future plugin update is another option. 

Overall Recommendation

Overall, if you want to stay with plugins, the best combination of plugins I found was the following:

  • Yoast for SEO
  • SchemaPro 
  • Modern Events Calendar Lite.

I configured the combination of plugins so that it had all the information that would be useful for the event without any errors. This combination of plugins also gave the most comprehensive schema.

Concluding with the Unfortunate Reality 

Many of the plugins have limitations to their implementation of schema, which I would say is related to the limited way that these plugins approach schema. Mostly designed for ecommerce and more commercial applications, they have limited use in our performing arts world. 

For example, none of the plugins can handle multiple organizations or multiple performers, which is a common setup in many performing arts events. For an organization that uses the same venue with a similar lineup all the time, this might not be as big an issue. 

Another tough aspect for the plugins is using it for festivals because they require super/sub events. However, I think this potentially can be solved using parent and suborganizations, but that is not the same thing. More research is needed to fully flesh out the approach to festivals. 

Another important point about schema and the plugins is the use of “sameAs.” This is a powerful way to interlink organizations, artists, and events to the Web of linked open data.. “SameAs” defined on is a “URL of a reference Web page that unambiguously indicates the item’s identity. E.g. the URL of the item’s Wikipedia page, Wikidata entry, or official website.” What’s great is that the authoritative Wikidata entry is very powerful because it can be interlinked to other authority files (VIAF, ISNI) and open knowledge bases (MusicBrainz, IMDb, Artsdata). 

Another useful tip along the same lines as “sameAs” is that using “additionalType” will allow you to tie the genre of a specific piece or event to a Wikipedia article by using Productontology. This website is a dictionary of product types and brand names for marking up Web sites that leverages the use of Wikipedia articles. You can use this ontology to describe any performing arts genre where there is a matching entry in the English Wikipedia. This is quite useful for tying genres. 

Understanding all this, I would say the best approach is to write all the structured event data by hand and not use the schema offered by the plugins. Or at least use the combination of plugins for Name-Address-Phone and write each event schema by hand. This is quite time-consuming but the best way to ensure the highest quality. Given the way in which performing arts schema should be written, there is definitely a benefit to hand-writing the schema. I did find a simple plugin that allowed custom header/footer scripts to be included on each specific page. 

In conclusion, schema is a powerful way for performing arts organizations to have search engines more accurately categorize and index events and organizations. Plus, as we move forward with the Linked Digital Future project, schema will be a cornerstone that we will use to create a shared knowledge base (also called a knowledge graph) for the performing arts, which is an exciting future indeed.

Coffee chat and chew: Event Plugins, Schema and WordPress

On November 12th we held “Coffee chat and chew: Event Plugins, Schema and WordPress!” Jai shared approaches to adding event schema to your WordPress site and his recent research findings on the topic.

Checkout the recording here:

5 replies

Trackbacks & Pingbacks

  1. […] Jai Djwa, a BC-based creative technologist strategist,  tested a few WordPress event plugins as part of CAPACOA’s Linked Digital Futures Initiative. Here are his results: […]

  2. […] Jai Djwa, a BC-based creative technologist strategist,  tested a few WordPress event plugins as part of CAPACOA’s Linked Digital Futures Initiative. Here are his results: […]

  3. […] discoverability, such as setting up single web pages for individual events, to ways to improve the discoverability of event information when using event plug-ins for […]

  4. […] testing of different event and schema WordPress plugins by Jai Djwa revealed that no single plugin or combination of plugins could deliver complete […]

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *