We know that search engines can crawl and interpret a huge amount of information from the web, so it might seem unusual to need to give them a bit of a helping hand! But the reality is that content is inherently complicated. By providing a bit more context to what our web page means, we’re able to help search engines understand it better. In turn, this means it’s more likely to be shown to people conducting relevant searches.
Another key benefit of this context is that search engines like Google have now gone beyond the ‘simple blue links’ in results pages, and include plenty of rich content directly on the search results page. This can include things like star ratings for reviews, product pricings, recipe cooking times, image previews and more.
These rich results quickly give the viewer more information about the page, which they’ll take into account when clicking the link which looks like it will best meet their needs. By providing context – and potentially gaining these rich results – we can improve our chances of our website getting more clicks.
While some of these results happen automatically, there’s a type of code called schema markup which provides additional information to search engines and can be used to increase the likelihood of gaining some of these rich results in search.
What is schema markup?
Schema markup is a form of structured data that helps search engines understand the content on a web page. Structured data as a whole is where information is provided in a standardised format, and this is reflected in schema.
There are different types of schema which you can use on your website to describe different types of content, for example an organisation, article, event or product. Each schema type has a standardised format with different ‘properties’, which are like a field in a database.
Schema is implemented through code, so as a web visitor you won’t see anything different on the page. But for search engines, this is a way of providing additional context to better understand what’s on the page.
As an example, a date might represent the date of an event, a birthday – or just be a random number that looks like a date! Using schema, you could highlight that it’s the first broadcast date of a new movie, or the birth date of a person you’re writing about.
Search engines are generally really good at understanding context, but schema helps to make sure that important details haven’t been lost in the process.
What schema types are there?
At the time of writing, there are 806 types of schema listed on schema.org – the online bible for all things schema markup! Between them, these schema types support 1474 properties. That’s a huge amount of information – and level of detail – that you can add to a page.
Of course, not all of these will be relevant to your business – many of the schema types are specialised. It would be a very niche business that would need to highlight a Screening Event, a medical drug, AND a Sports Team! Usually, each organisation will end up with a selection of schema types that are most relevant and used regularly for their business.
Commonly used schemas include:
- Organisation – This is often used to show the organisation behind a website, and includes basic information like the organisation address, along with more detailed options like a Diversity policy.
- Product – This is a really useful one for e-commerce sites, and includes information like the category, colour and material, as well as information like awards, related products and whether it’s family friendly.
- Recipe – This includes details like cook time, ingredients and quantity produced, as well as those all-important instructions, dietary suitabilities and more.
- Restaurant – This is more specific, but a good highlight of the level of detail available for a specific business. This schema type can highlight the type of cuisine, link to the menu, link to a reservation URL and highlight the star rating. Additional information includes the payment types accepted, opening hours, price range and events associated with the restaurant.
You can see how schema can quickly become a really powerful tool to highlight the nuances of your website content.
What are the benefits of using schema markup?
Search engines work by understanding your content, and matching it with what people are searching for. Schema helps search engines to understand your content even better, which can help it be shown up for more relevant queries.
One of the key reasons that many businesses use schema is that it can make you more likely to show up as a rich result on search. Rich results are when the results page shows more information than just the standard blue link and description.
As an example, this cookie recipe from BBC Good Foods is much more than a link:
- The ingredients have been pulled up in the place of a description
- There’s an example of what the cookie will look like when you’ve made it
- There’s a star rating, along with how many reviews that’s based on
- It tells you that it’ll take around 32 minutes to make (very specific!)
This is a product example from Amazon. Rich results include:
- A star rating, along with the number of reviews
- The price
- Availability – it’s in stock
- A product preview image
- Links to related products
It’s worth noting that schema isn’t essential to get a rich results listing – neither does it guarantee that you’ll get one! But helping to show all these details to a search engine makes it more likely that your page will be seen as eligible for these sorts of results.
And rather than just looking pretty on the results page, rich results are a great way to quickly show more information to a potential customer – which can make them more likely to click!
Getting started with schema
Ready to dive in and see how schema can help your website? Here are 7 steps to getting started…
1. Choose your vocabulary
There are three different vocabularies you can use for schema, which are the ways you can code schema into your website:
- Microdata – This is embedded within the HTML code as additional tags wrapped around your content, and is designed to be a simpler way of annotating content than
- RDFa – RDFa is an extension of HTML5, and again this is embedded as tags within the HTML of your content.
- JSON-LD – JSON-LD is a linked data format and the code is added in separately to your content.
Personally, I’ve always used JSON-LD to implement schema, mostly because I find it much easier to create and read the code separate from the HTML of the main content. It’s also easier to maintain – I don’t need to worry about accidentally deleting some schema if I edit the content at a later date – and it’s easy to find and update any parts of the JSON-LD if needed.
Google also recommends JSON-LD as the format to use for most website owners, for similar reasons as it’s easier to set up and maintain at scale, and less prone to user error.
2. Choose your first type of schema
As mentioned above, there are loads of different types of schema available which you can test out on your website. There’s plenty of inspiration online for choosing a relevant schema type, including:
- Browse schema.org and type in relevant terms to see what types exist
- Browse the structured data gallery on Google Search Central , which shows you what the related rich result looks like in search.
- Google ‘schema for…’ and your business, e.g. ‘schema for hotels’, ‘schema for service business’, ‘schema for e-commerce’.
For the purpose of getting started, pick one type that’s relevant to your business that you want to test. Once you’ve learnt how to implement schema code to your site, you can dive more into investigating a wider variety of schema types to use across your site.
3. Check which properties are available for your type
Schema.org lists the full range of available properties for each type, however you don’t need to use all of them every time you create schema!
If you’re specifically targeting Google with your schema, it’s worth noting that Google doesn’t take into account all of the properties available on schema.org, but some of these may be used by other search engines or platforms. Google Search Central provides its’ own documentation of the required and recommended properties for a variety of schema types.
For example, for Event schema, Google lists the following required properties:
- location (physical, online or mixture)
- location.address – a street address, required for all events at a physical location
- location.url – The URL where people can join, required for all online events. If this is only provided after registration, then provide the registration URL.
- name – the full title of the event
- startDate – the start date and start time, in ISO-8601 format. If online, you need to specify the UTC or GMT time offset.
Alongside this are 18 recommended properties, which will help you add more detail to your listing. You might not be able to fill in all of these for your specific situation, but generally the more detail you can add to these recommended properties, the better.
4. Choose how to implement schema on to your website
Depending on your CMS system, there are different options for implementing schema. For larger sites, it’s often easier to have the schema created and implemented automatically – especially for common content types such as articles or products.
For some CMS systems, there are plugins available which will help to create schema based on your page content. A few examples are:
- Structured Data for SEO (for Magento) – this creates product, contact page and web page schema
- Yoast (for WordPress) – this can output up to 20 different types or properties, covering content such as reviews, recipes, event or organisation. There’s some control over how these work automatically in the plugin settings, although from experience it can be difficult to have much control over how the schema is created.
- Schema Plus for SEO (for Shopify) – this adds options for FAQPage, Organisation, Product, Article schema and more.
As well as plugins, there are options to add schema in a more customised way. In the next few steps we’ll test out schema by adding it into the web page html code – most CMS systems will let you add this in the body of the page. This allows you to paste in any JSON-LD code directly to the page it needs to be on and is an easy and quick way to test out schema.
While manually adding code per page might be the easiest option for smaller sites, or those testing out schema for the first time, larger sites (particularly e-commerce or those with a high product turnover) may find it unmanageable to keep code on individual pages up to date.
There are options here to automatically create schema at scale with the support of your web developer. One option is to use Google Tag Manager and use variables to dynamically pull certain areas of your content into a schema code for the page. You can also use JavaScript to create your structured data directly on your website.
5. Create your schema
The good news? You don’t need to be a coding whizz to get started with schema. There are tools out there that will help you put together your first bit of JSON-LD, which you can later tweak if you want to add more information.
My favourite is Merkle’s Schema Markup Generator , which has templates for creating 13 popular schema types. You copy and paste in the relevant URLs and content, and it creates the JSON-LD which you can copy.
Google’s Structured Data Markup Helper has 12 types of schema, with some different types to Merkle – so it can be useful to have both tools on hand. For this tool, you choose your schema type, paste in the URL and it brings up a preview of the web page. From here, you can highlight parts of the page and tag what they show for the schema. Again, it gives you the JSON-LD code that you can copy onto your website.
Many people have also tried using ChatGPT to create schema markup. As this creates the schema code automatically from the URL, it’s worth checking that the information it pulls out is correct. It’s not uncommon for either the information or code to be incorrect, but JSON-LD is pretty straightforward to read, so if you’re confident in checking the code and make sure you verify it afterwards, this could be a tool you’d like to experiment with.
6. Add the code to your page
As mentioned above, rather than a large scale, automatic implementation, we’re going to test out this first bit of code by pasting it directly into the web page.
This is possible on most CMS software, however it needs to be posted in as source code rather than normal text. This can look different across different platforms, for example:
- On the HeyYou! website (running ACF on WordPress), it’s the ‘text’ option next to ‘visual’.
- For a client on WordPress running GeneratePress & Gutenberg, I’d need to click the 3 dots on a block in the visual editor and then choose ‘edit as html’ – or add a html code block.
- Another client is on Drupal, where the html is shown with a ‘source’ button in each block, however they needed a separate JSON-LD field setting up for this to work properly.
If you’re not sure what you’re looking for on your CMS, drop me a message!
Once you’ve found how to edit the html code, paste in your JSON-LD code. Once you save the page, you’ll see that the schema is invisible to the user. On the next step we’re going to verify that it’s visible to the search engines (and working correctly!)
7. Test your schema
Like with all code, a misplaced comma can break things. As well as checking that the code works, this step also checks that all the required properties are in place for the code to be valid and give you the opportunity to rank for rich text results.
As usual, there are different options out there for tools, however these are the main ones I use:
- Schema.org ‘s Validator – You can either paste in a URL if you’ve added the schema to your website (as we have here), or you can paste in the JSON-LD code to check it before you add it to your website. Once you press ‘run test’, you’ll see the code on the left, and the right hand side will show you the type of schema detected, the properties and their values, and flag up and errors or warnings.
- Google’s Rich Results Test – Again, this lets you test either a live page or the JSON-LD code separately. Once you click ‘test URL’ or ‘test code’, you’ll be taken to another page which shows you the types of schema found and nests the properties and values within those. Again, it’ll highlight any errors or warnings (such as optional properties missing).
- Google Search Console’s Enhancement report – This will show you trends across your website, so is handy for monitoring schema in bulk and flagging up any wider errors going on. From experience, this doesn’t always show every type of schema (or instance of schema on your website), but it has it’s place for larger scale monitoring.
General best practices for schema
In order to get your structured data seen and read by search engines, and have the chance to get rich results listings, keep the following in mind:
- Google needs to access your page in order to read the schema markup. If you’re having issues, check that Google isn’t blocked from the page in robots.txt.
- Structured data should always be relevant to the page you’re listing it on. If you use irrelevant schema, you won’t get a rich result and you run the risk of being hit with a manual penalty. Make sure the schema is an accurate representation of the content on the page.
- Don’t create an empty page to hold the structured data – it should go directly on the page it relates to, where it gives more context to the content.
Once you’ve got up and running with your first few schema tests, you can review your site for additional relevant opportunities and decide whether to use a larger scale, automatic solution to speed up creating and maintaining markup across your site.
I’d love to hear how you get on with testing out schema – drop me a message or comment on LinkedIn to let me know how it’s worked for you!
Need some help?
If you’re looking for advice on how to make best use of schema for your website – or more general SEO support! – we’d love to have a chat. At HeyYou!, we work with East Midlands-based organisations to get more results from search and content. If you’d like to find out about having us on your team, get in touch via 📨 hello@heyyou.digital or 📞 01159 902779 to have a chat.
Want more tips like this?
Sign up to our newsletter for SEO knowledge, updates and ideas every Friday.