Schema Markup and SEO

Schema Markup – what is it and is it important for SEO?

Schema Markup – what is it?

Schema.org provides a collection of shared vocabularies webmasters can use to mark up their pages in ways that can be understood by the major search engines: Google, Microsoft, Yandex and Yahoo!

Schema markup creates an enhanced description, more commonly known as a Rich Snippet, which appears on search engine results. You will probably have seen these rich snippets whenever you search on the internet, they look like this:

What is a rich snippet?

Using Googles example of a recipe page, which when marked up correctly, contains featured snippets such as rating, cooking time and calorie information you can see how this information is displayed directly in the search results:

What does a rich snippet look like?

Search engines are moving toward contextual search and Rich Snippets provide context to your web page. Traditionally websites are built using HTML, these HTML tags tell your browser how to display your information. However, these tags are not very good at giving any information about what the text actually means. This makes it difficult for search engines to intelligently display relevant contextual results to the user. In short, Schema Markup improves the way search engines read and represent your page in the results.

What type of content can I markup as Schema?

Businesses & Organisations

By marking up your Business or Organisation you enhance the appearance and coverage of your official website. You can enable more of your site’s functional and visual elements to appear directly in search results. For example you can list a logo, company description, contact numbers, FAQ’s and links to your social media profiles.

Barclays SERP Knowledge Panel

This ‘Knowledge Panel’ helps Barclays dominate the space on their brand search as well as giving key information to the user without them having to go to Barclays website to get it.

What does Schema Markup look like?

There are several types of Schema Markup languages, we are looking specifically at JSON-LD as it is the simpler method to implement and maintain. JSON-LD stands for JavaScript Object Notation for Linked Data, which consists of multi-dimensional arrays (basically a list of attribute-value pairs).

Using a made-up Airline, you can see the actual Schema Markup below that would be used to generate a Knowledge Panel for an (fictitious) organisation similar to the above Barclays example:


<script type="application/ld+json">
    {
        "@context": "http://schema.org",
        "@type": "Airline",
        "name": "First Air",
        "url": "https://www.firstairline.com",
        "logo": "https://www.firstairline.com/some-logo.jpg",
        "contactPoint": [{
            "@type": "ContactPoint",
            "telephone": "01234 567 890",
            "contactType": "customer service",
            "areaServed": "GB",
            "availableLanguage": "English"
        }, {
            "@type": "ContactPoint",
            "telephone": "01234 567 980",
            "contactType": "technical support",
            "areaServed": "GB",
            "availableLanguage": "English"
        }, {
            "@type": "ContactPoint",
            "telephone": "01234 123 456",
            "contactType": "sales",
            "areaServed": "GB",
            "availableLanguage": "English"
        }],
        "sameAs": [
            "https://www.facebook.com/FirstAirline",
            "https://www.twitter.com/FirstAirline",
            "https://www.instagram.com/FirstAirline"
        ]
    }
</script>

A local businesses markup would be slightly different, offering other intelligent/useful information for potential visitors that can be displayed in the search results:


<script type="application/ld+json">
    {
        "@context": "http://schema.org",
        "@type": "Dentist",
        "name": "Smile Dentist",
        "image": "https://www.smile-dentist.co.uk/logo.jpg",
        "@id": "",
        "url": "https://www.smile-dentist.co.uk",
        "telephone": "01202 123 456",
        "priceRange": "25",
        "address": {
            "@type": "PostalAddress",
            "streetAddress": "1 Main St",
            "addressLocality": "Bournemouth",
            "postalCode": "BH1 1AB",
            "addressCountry": "GB"
        },
        "geo": {
            "@type": "GeoCoordinates",
            "latitude": 50.7244101,
            "longitude": -1.851620099999991
        },
        "openingHoursSpecification": {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": [
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday"
            ],
            "opens": "09:00",
            "closes": "17:00"
        },
        "sameAs": [
            "https://facebook.com/smile-detist",
            "https://twitter.com/smile-detist",
            "https://instagram.com/smile-detist"
        ]
    }
</script>

As you can see, there are several differences here, mainly the addition of an address with coordinates (for directions) and opening hours. This is information that your customers will want to see when they search for a ‘Dentist’. Again this shows how context in search is advancing to get the best information in front of users as quick as possible.

This code may look scary and difficult to implement, but it isn’t. There are plenty of tools online that can help you. We’ll discuss them later. For now it’s just important to know what types of information you can actually markup.

Events

Events normally have a date, time, type and location as well as ticket pricing information. Marking up your events correctly can improve visibility in search results.

Events marked up in SERPs

People

Like organisation and business listings, People can be marked up to produce a Knowledge Panel for a person.

Steve Jobs Knowledge Panel in SERPs

Products

Schema Markup for products is particularly useful allowing you to add prices, availability and review ratings on the search results without the users having to click through to your website. Allowing you to attract potential buyers to products you sell.

Recipes

Recipes are particularly interesting when setup correctly as not only can you provide ratings, cooking time, temperature and calorie information in the search results but you can also enable ‘Guidance’. This is where your smart speaker can guide users through your recipes!

This is done through ‘Content Based Actions’… when Schema Markup and AMP (Accelerated Mobile Pages) pages are produced, Google may automatically create an ‘Action’ (things people can ask the Google Assistant to do) allowing users to interact with your content. If Google creates an Action the site owner will receive an email in their Search Console and will have to claim the page.

Reviews

Reviews are important, the ‘social proof’ element they provide to users can be enough to persuade them to choose one website/product/service over another. If you don’t have reviews but your competitor does, you are probably losing business!

Your reviews must be genuine, If Google suspects that they are not then you may face a Manual Penalty, severely impacting your rankings in the search engine results.

When obtained ‘legally’ and marked up correctly, reviews normally appear as shown below:

Reviews appearance in SERPs

Which result in this search for Car Finance are you most likely to click on?

Videos

Providing the correct markup for your videos can mean that Google uses your videos in carousels such as the ‘Top Stories’. It can also enable the badge on mobile image results, grabbing the attention of users. You can provide the description, thumbnail location, upload date as well as the duration of the video through your markup.

How do I implement Schema Markup?

So now we’ve gone through all the different types of markup that can be done, how on earth do you go about implementing it? Well there is a lot of documentation on the Google developer portal here – https://developers.google.com/search/docs/guides/mark-up-content. https://schema.org/ is also a good, in-depth resource for all things Schema.

Reading through all of that documentation isn’t exactly light reading though, so we find it best to use some online tools for generating our structured data.

One of our favourite Schema Markup tools tools is provided by https://technicalseo.com/seo-tools/schema-markup-generator/. The tool allows you to choose the type of Markup you want to produce. Then, using a simple form you can enter the required information. In the right panel it will be automatically generate your markup for you!

Once you have your code it’s just a case of copying it over to your website. Where possible you should do this dynamically for all of your content, if you want to know more about this then please get in touch.

Whichever way you produce your Schema Markup you will want to validate that it is actually working. To do this use the Google Structured Data Testing Tool which allows you to fetch a URL or just paste your code snippet in. It will tell you if there are any errors or warnings and give you some indication as to what needs addressing.

If all is well then you will have no errors or warnings and you should be able to view the output that will be indexed.

Is Schema Markup important for SEO?

In short, no, there is no evidence that having structured data will improve your rankings. However, when you do appear in the results you want the best data, in the best format in front of the user to improve CTR (click through rate). After all, appearing no.1 on Google is only half the battle, you still have to convince that user to click on your listing.

Or, better still, give the information the user wants right there in the search results. If you don’t your competitors probably already are!

If you would like to discuss structured data and how it could be beneficial to your business or website then we would love to hear from you, please get in touch.

0 replies

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 *