Skip to main content

With structured data, you can enrich the HTML of your Joomla site so that search engine bots can understand the information better. It may lead to increased visibility in Google search results. Structured data were previously also referred to as microdata, rich snippets, etcetera, and you still can. They help to structure your HTML by setting up subjects with properties in your HTML code. They do not affect the visual display for your visitors! If you use them properly, you may be rewarded by Google, as they love structured data. It makes it easier for them to understand your content. Without having to interpret the full code of the page, structured data can instantly tell Google that the page is about a book review, a product of the type bicycle, an event, or something like that. You can also attach the properties of the product to add further structure to the product.

Increased visibility in search

Also, you can get bonus points from Google, like having stars from readers' reviews shown in the search results, or a small video thumbnail, the price for webshop products, etc., as in this example for a bicycle:

microdata are excellent for showing up in SERP

In this case, the bicycle really stands out. It has 4 kinds of properties that are directly visible inside the search results

  • The breadcrumb path
  • Ratings from users
  • The price
  • The number of items in stock

Structured data in HTML

If you look at the source code of such a page, you may see something like this:

<div itemprop="aggregateRating" itemscope="" itemtype="">
<div class="rating">
<i class="star-img stars_3_half" title="3.5 star rating">
<img alt="3.5 star rating" class="offscreen" src="/stars_map.png.">
<meta itemprop="ratingValue" content="3.5">

You can see that properties are assigned to the tags, which helps search engines understand the code. The syntax is standardized according to

It might not immediately boost your rankings, but for your CTR (Click Through Rate) in the search engine rankings it will help. Research showed that users are 30% more likely to click on an enriched result than a similar result without microdata.

Note that there are several conventions to add structured data. The example above is using microdata, where you add markup to your HTML, inside the tags that describe the product. But you can also use JSON structured data, where the code is added in the <head> section of the HTML, like this example for an address (wrapped in a script tag):

"@context": "",
"@type": "Person",
"address": {
"@type": "PostalAddress",
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98052",
"streetAddress": "20341 Whitworth Institute 405 N. Whitworth"

Google really loves this format. More examples are on If you have the choice, use the JSON format. Though both are valid, Google advises using the JSON format. It might seem pretty complicated to add all these structured tags to your content, but happily most of the time you don't have to do so manually. In some cases, the Joomla core already takes care of this, though for most cases you have to look for extensions that add them. Or use extensions that already have them included. Examples are shop extensions like Hikashop or event calendars like RS-Events. They provide structured data out of the box.

Very important is to check that structured data are created correctly. A small typo can already result in corrupted structured data. To verify this, use the Google structured data testing tool. Simply copy a URL that you would like to test and paste it in. An example of a shopping product could be something like this:

rich results test google search console

You also see non-critical messages. Usually, that is fine, mainly you should check the critical ones.

How to use structured data in Joomla

In older Joomla versions you needed plugins and overrides to implement them. Joomla now supports them out of the box, though still only for limited purposes. Not everything is catered for, however, just some features, like articles and contact persons. See this example code for a Contact created with the Joomla core Contacts component:

<dl itemprop="address" itemscope="" itemtype="">
<dd><span class="contact-street" itemprop="streetAddress">
Street here...
<dd><span class="contact-suburb" itemprop="addressLocality">
City here...
<dd><span class="contact-postcode" itemprop="postalCode">
Postal code here...

As you can see, it is very important to use every field exactly what it is meant for. I have often used the address field to put in non-address-related information, just because of formatting issues, but this should now be avoided.

Also, the breadcrumbs module now supports microdata, giving you breadcrumb paths in the Google SERP pages:

microdata breadcrumbs

Joomla extensions for structured data

I already that in many cases, you can use extensions that simply support structured data out of the box. As an example, take Hikashop, one of the most popular e-commerce solutions for Joomla. In e-commerce, the logic of how a perfectly structured product should be set up is pretty straightforward. You have the name of the product, its price, its stock value, its reviews, its brand, etcetera. The available fields that you fill in in the backend automatically translate to valid structured data. The same for many event calendar extensions. So in this case, you only have to check whether the structured data are indeed generated correctly.

In other cases, you simply want structured data within Joomla articles that you styled for a specific purpose, like a FAQ, a recipe, a video, or something else that needs to be structured. In cases like that, you may need a specific extension to assist you. The most important ones in this category are:

  • 4SEO by Weeblr
  • Google Structured Data by Tassos Marinos

Check my extensions page for more information about these extensions.

Note that for setting up your local business SEO, I have a separate article explaining this.

Ad - SiteGround Web Hosting - Crafted for easy site management. Amazing Speed; Powerful Tools; Top-rated support. Learn more.