Schema markup is a powerful tool that helps structure information on a page and make it more comprehensible to search engines. This innovative approach allows page markup to become visible to algorithms, enabling key elements like headlines, prices, ratings, and contacts to be prominently displayed in Google search results. In this article, we’ll explain what schema markup is, how to implement it correctly, and why it’s critically important for SEO performance.
What is schema markup and why do you need it?
Schema markup is a set of specialized tags and attributes added to a website’s HTML code to structure and annotate content. Think of your website as a book. Without schema markup, search engines see only a continuous block of text, unable to distinguish between section beginnings, character descriptions, or important quotes. Schema markup acts like a table of contents and margin notes, helping search robots quickly and accurately determine the content and context of your page.
This tool works with all popular search engines, including Google, Bing, and Yahoo. Implementing website schema markup helps not only improve organic search rankings but also ensures better user interaction and engagement.
Schema markup types and syntaxes

Types of markup schemas
Markup schemas or vocabularies define the types of data you can describe and the properties you can use to label them. Here are the main schemas:
- Schema.org: The most popular vocabulary, jointly developed by Google, Microsoft, Yahoo, and Yandex. It offers a broad set of types and properties for various content.
- Open Graph: Created by Facebook to optimize content for social media. It allows you to control how your pages appear when shared on social platforms.
- Microformats: Use existing HTML attributes to label data, especially contact information and events.
- Data Vocabulary: An older format that is gradually being phased out.
- Dublin Core: A set of standards for metadata descriptions, commonly used in libraries and archives.
- FOAF (Friend of a Friend): A schema designed to describe social networks and relationships between individuals.
Markup syntax
Syntax defines how markup is embedded into HTML code. It’s the “grammar” used to correctly structure the data. The main syntaxes are:
- Microdata: Uses HTML5 attributes like
itemscope,itemtype, anditempropto label structured data. - RDFa (Resource Description Framework in Attributes): Extends existing HTML tags with attributes to embed metadata.
- Microformats: Embeds data directly into HTML using classes and attributes.
- JSON-LD (JavaScript Object Notation for Linked Data): Adds structured data in JSON format inside
<script type="application/ld+json">tags. Recommended by Google for its simplicity and flexibility.
Most common combinations
- Schema.org with JSON-LD or Microdata: This is the de facto standard for most websites, ensuring maximum compatibility and support from search engines.
- Open Graph: Widely used for optimizing content in social media, especially when sharing links on Facebook, Twitter and LinkedIn.
Practical examples of schema markup
Schema markup for the website Header
The website header contains key elements such as navigation, the logo, contact details, and links to social media. Proper markup helps search engines understand the website’s structure while enhancing user experience. Below is an example of implementing structured data in a website header:
<header itemscope itemtype="https://schema.org/WPHeader">
<!-- Company Logo -->
<div itemscope itemtype="https://schema.org/Organization">
<a href="/" itemprop="url">
<img src="logo.png" alt="Company Logo" itemprop="logo">
</a>
<meta itemprop="name" content="Company Name">
</div>
<!-- Navigation Menu -->
<nav itemscope itemtype="https://schema.org/SiteNavigationElement">
<ul>
<li><a href="/about" itemprop="url"><span itemprop="name">About Us</span></a></li>
<li><a href="/services" itemprop="url"><span itemprop="name">Services</span></a></li>
<li><a href="/blog" itemprop="url"><span itemprop="name">Blog</span></a></li>
<li><a href="/contact" itemprop="url"><span itemprop="name">Contact</span></a></li>
</ul>
</nav>
<!-- Contact Information -->
<div itemscope itemtype="https://schema.org/ContactPoint">
<meta itemprop="contactType" content="Customer Support">
<p>Phone: <a href="tel:+1234567890" itemprop="telephone">+1 (234) 567-890</a></p>
<p>Email: <a href="mailto:info@example.com" itemprop="email">info@example.com</a></p>
</div>
<!-- Social Media Links -->
<div>
<a href="https://facebook.com/company" itemprop="sameAs">Facebook</a>
<a href="https://twitter.com/company" itemprop="sameAs">Twitter</a>
<a href="https://linkedin.com/company" itemprop="sameAs">LinkedIn</a>
</div>
</header>- Organization – Defines official information about the company, such as its name and logo. This helps search engines associate the site with the brand, allowing them to display the logo and contact details in search results, which builds brand trust.
- SiteNavigationElement – Indicates the navigation menu of the website. It helps search engines understand the site’s structure, which can result in sitelinks in search results, improving user navigation and click-through rates.
- ContactPoint – Specifies the company’s contact information, including phone numbers, email, and the type of contact (e.g., customer support). This data can enhance local SEO by displaying contact details in search results, making it easier for users to reach the company.
- sameAs – Links the brand’s social media profiles to its website. Search engines may display these profiles in search results, boosting the brand’s authority and online visibility.
Schema markup for the website Footer
The website footer typically includes extended navigation, copyright information, additional contact details, and legal links such as terms of use or privacy policy. Structuring the footer with microdata enhances user experience and helps search engines better index the content. Here’s an example of footer markup:
<footer itemscope itemtype="https://schema.org/WPFooter">
<!-- Extended Navigation -->
<nav itemscope itemtype="https://schema.org/SiteNavigationElement">
<ul>
<li><a href="/about" itemprop="url"><span itemprop="name">About Us</span></a></li>
<li><a href="/services" itemprop="url"><span itemprop="name">Services</span></a></li>
<li><a href="/faq" itemprop="url"><span itemprop="name">FAQ</span></a></li>
<li><a href="/terms" itemprop="url"><span itemprop="name">Terms of Use</span></a></li>
<li><a href="/privacy" itemprop="url"><span itemprop="name">Privacy Policy</span></a></li>
</ul>
</nav>
<!-- Additional Contact Information -->
<div itemscope itemtype="https://schema.org/ContactPoint">
<meta itemprop="contactType" content="Customer Support">
<p>Phone: <a href="tel:+1234567890" itemprop="telephone">+1 (234) 567-890</a></p>
<p>Email: <a href="mailto:info@example.com" itemprop="email">info@example.com</a></p>
</div>
<!-- Address -->
<div itemscope itemtype="https://schema.org/PostalAddress">
<p>Address:
<span itemprop="streetAddress">10 Shevchenka St</span>,
<span itemprop="addressLocality">Kyiv</span>,
<span itemprop="addressCountry">Ukraine</span>
</p>
</div>
<!-- Copyright Information -->
<p>© <span itemprop="copyrightYear">2024</span> <span itemprop="copyrightHolder">Company Name</span>. All rights reserved.</p>
<!-- Payment Systems -->
<div itemscope itemtype="https://schema.org/PaymentCard">
<img src="visa.png" alt="Visa">
<img src="mastercard.png" alt="MasterCard">
</div>
</footer>
- SiteNavigationElement – refers to the extended navigation menu at the bottom of the website, which helps search engines better understand the main structure of the site and makes it easier for users to access key sections.
- ContactPoint – an important element for displaying contact information, particularly useful for local SEO. This tag includes details such as phone numbers and email addresses. For more details on configuring ContactPoint, see the section below.
- PostalAddress – allows for a clear definition of the company’s location. Especially useful for local businesses to link the website to an exact address.
- copyrightYear and copyrightHolder – These tags provide information about the copyright year and the website owner, helping users understand that the content is updated and protected by copyright.
- PaymentCard – indicates supported payment systems for e-commerce websites, which can increase user trust in the site by showing available payment methods.
Schema markup for a Contact Page
Proper schema markup for a contact page ensures search engines can easily identify and display your contact information in search results. This is particularly valuable for local SEO, as it allows search engines like Google to showcase your company’s details directly in search or on maps.
<div itemscope itemtype="https://schema.org/ContactPage">
<h1 itemprop="name">Contact Information</h1>
<!-- Company Information -->
<div itemscope itemtype="https://schema.org/Organization">
<meta itemprop="name" content="Company Name">
<meta itemprop="url" content="https://example.com">
<div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
<img src="logo.png" alt="Company Logo" itemprop="url">
</div>
<!-- Contact Point -->
<div itemprop="contactPoint" itemscope itemtype="https://schema.org/ContactPoint">
<meta itemprop="contactType" content="Customer Support">
<p>Phone: <a href="tel:+123456789" itemprop="telephone">+123456789</a></p>
<p>Email: <a href="mailto:info@example.com" itemprop="email">info@example.com</a></p>
</div>
<!-- Company Address -->
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<p>Address:</p>
<p><span itemprop="streetAddress">10 Shevchenko St.</span></p>
<p><span itemprop="addressLocality">Kyiv</span>, <span itemprop="addressRegion">Kyiv Region</span></p>
<p><span itemprop="postalCode">01001</span>, <span itemprop="addressCountry">Ukraine</span></p>
</div>
</div>
</div>- ContactPage – The
ContactPagetype signals to search engines that this page contains key contact details. This helps search engines understand the purpose of the page and prioritize its information in search results. - ContactPoint – The
ContactPointtype represents the company’s contact information. This structured data improves visibility in local search results, particularly for businesses serving specific regions. It is essential for presenting data such as:telephone: The company’s phone number.email: An email address for inquiries.contactType: Specifies the type of contact, such as “Customer Support,” “Sales,” or “Technical Support.”
- PostalAddress – The
PostalAddresstype accurately marks the company’s location. Key attributes include:- streetAddress: Specifies the street name and building number (e.g., “10 Shevchenko St.”).
- addressLocality: Indicates the city (e.g., “Kyiv”). This is crucial for local SEO, especially for businesses catering to specific locations.
- addressRegion: Defines the region or area (e.g., “Kyiv Region”), useful for distinguishing businesses in broader geographic areas.
- postalCode: Adds precision to the location (e.g., “01001”).
- addressCountry: Identifies the country (e.g., “Ukraine”), critical for international companies to align their business with specific regions.
Using PostalAddress to mark an address improves user experience and provides significant benefits for local SEO.
Schema markup for Breadcrumbs
Breadcrumb schema markup acts as “signposts” for users, showing the path from the homepage to the current page. It enhances navigation, particularly on large websites with deep structures. Users can quickly identify their location and easily return to previous pages. Breadcrumbs benefit both visitors and search engines by making the site structure more comprehensible.
Search engines like Google often display breadcrumbs in search results, improving the clarity and appeal of your snippet. This also facilitates better page indexing, as the site structure becomes more transparent to algorithms.
<ul itemscope itemtype="https://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://example.com">
<span itemprop="name">Home</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://example.com/electronics">
<span itemprop="name">Electronics</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://example.com/electronics/smartphones">
<span itemprop="name">Smartphones</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ul>Schema markup for reviews and ratings
Implementing schema markup for reviews and ratings can significantly enhance your website’s visibility and credibility in search results. By displaying star ratings, review counts, and average scores directly in search snippets, potential customers can quickly gauge the quality of your product, service, or business.
Reviews for products (Product)
For e-commerce websites, schema markup for product reviews allows search engines to showcase ratings and reviews directly in search results, improving click-through rates.
<div itemscope itemtype="https://schema.org/Product">
<h2 itemprop="name">Smartphone Y</h2>
<div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
<span itemprop="ratingValue">4.5</span> out of 5
<span itemprop="reviewCount">128 reviews</span>
</div>
<!-- Individual Review -->
<div itemprop="review" itemscope itemtype="https://schema.org/Review">
<span itemprop="author">John Doe</span> writes:
<p itemprop="reviewBody">Amazing smartphone! The camera quality is top-notch.</p>
<span itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">
Rating: <span itemprop="ratingValue">5</span> out of 5
</span>
</div>
</div>AggregateRating: Displays the average rating (ratingValue) and the total number of reviews (reviewCount).Review: Represents an individual review, including:author: The name of the reviewer.reviewBody: The text of the review.reviewRating: The specific rating given in the review.
Reviews for a website or business (LocalBusiness or Organization)
For local businesses or service companies, schema markup can highlight overall customer satisfaction with the company, strengthening trust in your brand.
<div itemscope itemtype="https://schema.org/LocalBusiness">
<h2 itemprop="name">Tasty Pizza Restaurant</h2>
<div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
<span itemprop="ratingValue">4.7</span> out of 5
<span itemprop="reviewCount">250 reviews</span>
</div>
<!-- Individual Review -->
<div itemprop="review" itemscope itemtype="https://schema.org/Review">
<span itemprop="author">Maria Smith</span> writes:
<p itemprop="reviewBody">Best pizza in town! Super fast delivery.</p>
<span itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">
Rating: <span itemprop="ratingValue">5</span> out of 5
</span>
</div>
</div>LocalBusinessorOrganization: Indicates that reviews pertain to the business as a whole, not a specific product.AggregateRating: Summarizes overall customer satisfaction.Review: Includes individual reviews with an author, review text, and rating.
The author attribute is mandatory for reviews because search engines require transparency and authenticity. Including the reviewer’s name increases the legitimacy of the review and helps prevent automatic or fake content from appearing in search results.
Schema markup for articles and news
Proper schema markup for articles plays a critical role in how search engines identify, index, and display informational content. Google and other search engines recognize three primary schema types for articles: Article, NewsArticle, and BlogPosting. Each type has specific features and purposes tailored to particular content types. Let’s dive into each and understand when and how to use them effectively.
Article: General schema markup for articles
The Article schema is a foundational type for informational content. It works well for most articles that are not necessarily news or blog posts. Examples include reference materials, analytical pieces, or other types of content outside the news and blog categories.
<article itemscope itemtype="https://schema.org/Article">
<!-- Article Title -->
<h1 itemprop="headline">A Comprehensive Analysis of Climate Change in the 21st Century</h1>
<!-- Article Description -->
<p itemprop="description">This article explores key factors influencing climate change and their potential impacts on nature and society.</p>
<!-- Article Author -->
<div itemprop="author" itemscope itemtype="https://schema.org/Person">
<a itemprop="url" href="https://example.com/profile/john-doe">
By: <span itemprop="name">John Doe</span>
</a>
</div>
<!-- Publication Date (Indicated in the format: date time time zone) -->
<p>Published on: <time itemprop="datePublished" datetime="2024-10-15T08:00:00+02:00">October 15, 2024</time></p>
<!-- Last Modified Date (Indicated in the format: date time time zone) -->
<p>Last updated: <time itemprop="dateModified" datetime="2024-10-20T09:00:00+02:00">October 20, 2024</time></p>
<!-- Article Image -->
<img src="climate_change.jpg" alt="Climate Change Impact" itemprop="image">
<!-- Main Content -->
<div itemprop="articleBody">
<p>Climate change has become one of the most pressing issues of our time...</p>
</div>
</article>NewsArticle: Schema markup for news articles
The NewsArticle schema is designed specifically for news content. Search engines identify this content type as news, helping it appear in Google News and other news aggregators. This schema includes additional attributes, such as modification dates, article images, and publisher information.
<article itemscope itemtype="https://schema.org/NewsArticle">
<!-- News Title -->
<h1 itemprop="headline">Government Introduces New Initiatives to Combat Climate Change</h1>
<!-- News Description -->
<p itemprop="description">The government announced new measures aimed at protecting the environment and reducing CO2 emissions.</p>
<!-- News Author -->
<div itemprop="author" itemscope itemtype="https://schema.org/Person">
<a itemprop="url" href="https://example.com/profile/jane-smith">
By: <span itemprop="name">Jane Smith</span>
</a>
</div>
<!-- Publisher Information -->
<div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
<meta itemprop="name" content="Today News">
<div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
<img src="publisher_logo.png" alt="Publisher Logo" itemprop="url">
</div>
</div>
<!-- Publication and Modification Dates (Indicated in the format: date time time zone) -->
<p>Published on: <time itemprop="datePublished" datetime="2024-10-20T08:00:00+02:00">October 20, 2024</time></p>
<p>Last updated: <time itemprop="dateModified" datetime="2024-10-21T09:00:00+02:00">October 21, 2024</time></p>
<!-- News Image -->
<img src="environment_initiative.jpg" alt="Environmental Initiatives" itemprop="image">
<!-- Main Content -->
<div itemprop="articleBody">
<p>The government unveiled several new measures to curb emissions...</p>
</div>
</article>BlogPosting: Schema markup for blogs
The BlogPosting schema is specifically for blog content. Blogs often have a unique style, including personal insights, tips, reviews, or informal tones. This schema signals to search engines that the content is a blog post, not a news article or general article. It helps improve visibility for thematic queries and aligns better with blog audiences.
<article itemscope itemtype="https://schema.org/BlogPosting">
<!-- Blog Title -->
<h1 itemprop="headline">10 Tips for a Productive Workday</h1>
<!-- Blog Description -->
<p itemprop="description">This post covers 10 practical tips to help you achieve higher productivity during your workday.</p>
<!-- Blog Author -->
<div itemprop="author" itemscope itemtype="https://schema.org/Person">
<a itemprop="url" href="https://example.com/profile/emily-jones">
By: <span itemprop="name">Emily Jones</span>
</a>
</div>
<!-- Blog Publisher -->
<div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
<meta itemprop="name" content="Productivity Blog">
<div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
<img src="blog_logo.png" alt="Blog Logo" itemprop="url">
</div>
</div>
<!-- Publication and Last Modified Dates (Indicated in the format: date time time zone) -->
<p>Published on: <time itemprop="datePublished" datetime="2024-10-18T08:00:00+02:00">October 18, 2024</time></p>
<p>Last updated: <time itemprop="dateModified" datetime="2024-10-19T09:00:00+02:00">October 19, 2024</time></p>
<!-- Blog Image -->
<img src="productivity_tips.jpg" alt="Productivity Tips" itemprop="image">
<!-- Main Content -->
<div itemprop="articleBody">
<p>Productivity at work is a key factor for success. To achieve this, it’s important to...</p>
</div>
<!-- Discussion Link -->
<a href="https://example.com/blog/productivity-tips#comments" itemprop="discussionUrl">Discuss this post</a>
</article>Schema markup for products
Schema markup for products allows you to present product information in a structured way, making it easier for search engines to understand the details and features of your offerings. Proper schema markup enhances product visibility in search results, increases click-through rates (CTR), and improves user engagement by providing critical information directly in the search snippet.
The primary schema type for products is Product, which supports a range of attributes such as name, description, price, aggregateRating, review, and more. Below is an example implementation of product schema markup with detailed explanations of each attribute.
<div itemscope itemtype="https://schema.org/Product">
<!-- Product Name -->
<h2 itemprop="name">Smartphone Y Pro</h2>
<!-- Product Image -->
<img src="smartphone_y_pro.jpg" alt="Smartphone Y Pro" itemprop="image">
<!-- Product Description -->
<p itemprop="description">The new Y Pro with an enhanced camera and long-lasting battery is perfect for photography enthusiasts.</p>
<!-- SKU and Brand -->
<div>SKU: <span itemprop="sku">YPRO123</span></div>
<div itemprop="brand" itemscope itemtype="https://schema.org/Brand">
<span itemprop="name">Y Electronics</span>
</div>
<!-- Pricing and Availability -->
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="priceCurrency" content="USD" />
<meta itemprop="price" content="799.99" />
<meta itemprop="priceValidUntil" content="2024-12-31" />
<meta itemprop="availability" content="https://schema.org/InStock" />
<meta itemprop="itemCondition" content="https://schema.org/NewCondition" />
<!-- Shipping Details -->
<div itemprop="shippingDetails" itemscope itemtype="https://schema.org/OfferShippingDetails">
<div itemprop="shippingRate" itemscope itemtype="https://schema.org/MonetaryAmount">
<meta itemprop="value" content="10.00" />
<meta itemprop="currency" content="USD" />
</div>
<div itemprop="shippingDestination" itemscope itemtype="https://schema.org/DefinedRegion">
<meta itemprop="addressCountry" content="US" />
</div>
<div itemprop="deliveryTime" itemscope itemtype="https://schema.org/ShippingDeliveryTime">
<div itemprop="handlingTime" itemscope itemtype="https://schema.org/QuantitativeValue">
<meta itemprop="minValue" content="1" />
<meta itemprop="maxValue" content="2" />
<meta itemprop="unitCode" content="DAY" />
</div>
<div itemprop="transitTime" itemscope itemtype="https://schema.org/QuantitativeValue">
<meta itemprop="minValue" content="2" />
<meta itemprop="maxValue" content="5" />
<meta itemprop="unitCode" content="DAY" />
</div>
</div>
</div>
<!-- Return Policy -->
<div itemprop="hasMerchantReturnPolicy" itemscope itemtype="https://schema.org/MerchantReturnPolicy">
<meta itemprop="applicableCountry" content="US" />
<meta itemprop="returnPolicyCategory" content="https://schema.org/MerchantReturnFiniteReturnWindow" />
<meta itemprop="merchantReturnDays" content="30" />
<meta itemprop="returnMethod" content="https://schema.org/ReturnInStore" />
<meta itemprop="returnFees" content="https://schema.org/FreeReturn" />
</div>
</div>
<!-- Product Rating -->
<div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
<div>Rating: <span itemprop="ratingValue">4.8</span> out of 5</div>
<span>(<span itemprop="reviewCount">200</span> reviews)</span>
</div>
<!-- Customer Review -->
<div itemprop="review" itemscope itemtype="https://schema.org/Review">
<div itemprop="author" itemscope itemtype="https://schema.org/Person">
<a itemprop="url" href="https://example.com/profile/jane-doe">Author: <span itemprop="name">Jane Doe</span></a>
</div>
<p itemprop="reviewBody">An excellent smartphone with top-notch performance, though slightly heavy.</p>
<div itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">Rating: <span itemprop="ratingValue">4</span> out of 5</div>
</div>
<!-- Product Advantages -->
<div itemprop="positiveNotes" itemscope itemtype="https://schema.org/ItemList">
<h3>Pros</h3>
<div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<meta itemprop="position" content="1">
<span itemprop="name">High-quality images</span>
</div>
<div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<meta itemprop="position" content="2">
<span itemprop="name">Powerful battery</span>
</div>
<div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<meta itemprop="position" content="3">
<span itemprop="name">Excellent sound</span>
</div>
</div>
<!-- Product Disadvantages -->
<div itemprop="negativeNotes" itemscope itemtype="https://schema.org/ItemList">
<h3>Cons</h3>
<div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<meta itemprop="position" content="1">
<span itemprop="name">Large size</span>
</div>
<div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<meta itemprop="position" content="2">
<span itemprop="name">High price without discounts</span>
</div>
</div>
</div>
name: The product name, providing essential information for users and search engines.description: A brief description of the product.image: The main product image, showcasing its appearance.sku: A unique product code used for inventory identification.brand: The product’s brand name, allowing search engines to associate the product with its manufacturer.offers: Groups information about the offer, including price, availability, and other details.price: The product’s price displayed on the website.priceCurrency: The currency of the price (e.g., USD for dollars, EUR for euros).priceValidUntil: The expiration date for the price or discount. This can encourage buyers to purchase before the promotion ends.availability: Indicates the product’s availability status. Proper use of this attribute ensures search engines provide accurate stock information, which is especially crucial for online stores. Below are the statuses that can be applied:InStock: The product is available and ready for purchase.OutOfStock: The product is temporarily unavailable.BackOrder: The product is awaiting restock and available for pre-order.PreOrder: The product is not yet available for sale but can be pre-ordered.PreSale: The product is available for order and delivery before its official release.SoldOut: The product is completely sold out, with no plans for restocking.Discontinued: The product is no longer produced or sold.LimitedAvailability: The product has limited stock and may sell out quickly.InStoreOnly: The product is only available for purchase in physical stores.OnlineOnly: The product is exclusively sold online and not available in physical stores.
itemCondition: Specifies the condition of the product:NewCondition: A brand-new product.RefurbishedCondition: A refurbished product.UsedCondition: A pre-owned product.
shippingDetails: Information about shipping terms, including delivery cost, destination, and delivery time.shippingRate:value: The shipping cost.currency: The currency of the shipping cost.
shippingDestination: The location where the product can be delivered (country or region).deliveryTime: The processing and delivery time for the product.handlingTime: The time required to process the order before shipping.transitTime: The time required for product transportation.
hasMerchantReturnPolicy: Details of the return policy, including return rules, return window, and methods of return.applicableCountry: The country where the return policy applies.returnPolicyCategory:MerchantReturnFiniteReturnWindow: The product can be returned within a specified number of days (requires themerchantReturnDaysattribute).MerchantReturnNotPermitted: Returns are not allowed.MerchantReturnUnlimitedWindow: The product can be returned at any time.
returnMethod: The method of return:ReturnAtKiosk: Return through a kiosk.ReturnByMail: Return via mail.ReturnInStore: Return in-store.
returnFees: Return costs:FreeReturn: Free return.ReturnFeesCustomerResponsibility: The customer bears the return shipping costs.ReturnShippingFees: The seller charges the customer for return shipping (requires thereturnShippingFeesAmountattribute).
aggregateRating: The product’s overall rating, showing the average score based on user reviews.review: User reviews, including the reviewer’s name, review text, and rating.positiveNotesandnegativeNotes: Lists of the product’s pros and cons.
Proper schema markup makes your offer more appealing to search engines. It increases the chances of better visibility and interactivity in search results by providing additional details such as images, descriptions, availability, shipping conditions, and ratings. This structured data improves user engagement and encourages informed purchasing decisions.
Schema markup for Product Groups
In addition to individual products, you can use the ProductGroup schema to describe a group of products that share common characteristics but differ in variations like size, color, or other options. This markup helps search engines better understand your offerings and display relevant information in search results.
<div itemscope itemtype="https://schema.org/ProductGroup">
<!-- Product Name -->
<h1 itemprop="name">Winter Wool Coat</h1>
<!-- Product Description -->
<p itemprop="description">Wool coat, the highlight of this winter season</p>
<a href="https://www.example.com/coat" itemprop="url">Learn more</a>
<div itemscope itemtype="https://schema.org/Brand" itemprop="brand">
<span itemprop="name">Reliable Brand</span>
</div>
<div itemscope itemtype="https://schema.org/PeopleAudience" itemprop="audience">
<meta itemprop="suggestedGender" content="unisex" />
<div itemscope itemtype="https://schema.org/QuantitativeValue" itemprop="suggestedAge">
<meta itemprop="minValue" content="13" />
<meta itemprop="unitCode" content="ANN" />
</div>
</div>
<meta itemprop="productGroupID" content="44E01" />
<meta itemprop="pattern" content="striped" />
<meta itemprop="material" content="wool" />
<meta itemprop="variesBy" content="https://schema.org/size" />
<meta itemprop="variesBy" content="https://schema.org/color" />
<!-- Variant 1 -->
<div itemscope itemtype="https://schema.org/Product" itemprop="hasVariant">
<meta itemprop="sku" content="44E01-M11000" />
<meta itemprop="gtin14" content="98766051104214" />
<img src="https://www.example.com/coat_small_green.jpg" alt="Small Green Coat" itemprop="image" />
<h2 itemprop="name">Small Green Coat</h2>
<p itemprop="description">Small green wool coat for the winter season</p>
<meta itemprop="color" content="green" />
<meta itemprop="size" content="small" />
<div itemscope itemtype="https://schema.org/Offer" itemprop="offers">
<a href="https://www.example.com/coat?size=small&color=green" itemprop="url">Buy Now</a>
<meta itemprop="priceCurrency" content="USD" />
<meta itemprop="price" content="149.99" />
<link itemprop="itemCondition" href="https://schema.org/NewCondition" />
<link itemprop="availability" href="https://schema.org/InStock" />
<link itemprop="shippingDetails" href="#shipping_policy" />
<link itemprop="hasMerchantReturnPolicy" href="#return_policy" />
</div>
</div>
<!-- Variant 2 -->
<div itemscope itemtype="https://schema.org/Product" itemprop="hasVariant">
<meta itemprop="sku" content="44E01-K11000" />
<meta itemprop="gtin14" content="98766051104207" />
<img src="https://www.example.com/coat_small_lightblue.jpg" alt="Small Light Blue Coat" itemprop="image" />
<h2 itemprop="name">Small Light Blue Coat</h2>
<p itemprop="description">Small light blue wool coat for the winter season</p>
<meta itemprop="color" content="light blue" />
<meta itemprop="size" content="small" />
<div itemscope itemtype="https://schema.org/Offer" itemprop="offers">
<a href="https://www.example.com/coat?size=small&color=lightblue" itemprop="url">Buy Now</a>
<meta itemprop="priceCurrency" content="USD" />
<meta itemprop="price" content="149.99" />
<link itemprop="itemCondition" href="https://schema.org/NewCondition" />
<link itemprop="availability" href="https://schema.org/InStock" />
<link itemprop="shippingDetails" href="#shipping_policy" />
<link itemprop="hasMerchantReturnPolicy" href="#return_policy" />
</div>
</div>
</div>
<!-- Shipping Policy -->
<div itemprop="shippingDetails" itemtype="https://schema.org/OfferShippingDetails" itemscope id="shipping_policy">
<div itemprop="shippingRate" itemscope itemtype="https://schema.org/MonetaryAmount">
<meta itemprop="value" content="10.00" />
<meta itemprop="currency" content="USD" />
</div>
<div itemprop="shippingDestination" itemscope itemtype="https://schema.org/DefinedRegion">
<meta itemprop="addressCountry" content="US" />
</div>
<div itemprop="deliveryTime" itemscope itemtype="https://schema.org/ShippingDeliveryTime">
<div itemprop="handlingTime" itemscope itemtype="https://schema.org/QuantitativeValue">
<meta itemprop="minValue" content="1" />
<meta itemprop="maxValue" content="2" />
<meta itemprop="unitCode" content="DAY" />
</div>
<div itemprop="transitTime" itemscope itemtype="https://schema.org/QuantitativeValue">
<meta itemprop="minValue" content="2" />
<meta itemprop="maxValue" content="5" />
<meta itemprop="unitCode" content="DAY" />
</div>
</div>
</div>
<!-- Return Policy -->
<div itemprop="hasMerchantReturnPolicy" itemtype="https://schema.org/MerchantReturnPolicy" itemscope id="return_policy">
<meta itemprop="applicableCountry" content="US" />
<meta itemprop="returnPolicyCategory" content="https://schema.org/MerchantReturnFiniteReturnWindow" />
<meta itemprop="merchantReturnDays" content="30" />
<meta itemprop="returnMethod" content="https://schema.org/ReturnInStore" />
<meta itemprop="returnFees" content="https://schema.org/FreeReturn" />
</div>In this section, we have reviewed the key attributes of product schema markup that will help your product stand out in search engines. However, to fully utilize the potential of schema markup, we recommend familiarizing yourself with the documentation. Alternatively, contact the Murre Agency team, who will help you configure everything down to the smallest details to ensure your website captures maximum attention!
FAQ schema markup
FAQ schema markup allows you to present answers to frequently asked questions in a structured way. This is particularly useful for business websites, services, or products that often receive standard inquiries from users. Including such markup helps your questions and answers appear directly in search results, saving users time and improving their experience with your site.
<div itemscope itemtype="https://schema.org/FAQPage">
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
<h3 itemprop="name">How can I return a product?</h3>
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<p itemprop="text">To return a product, please contact our support team and provide the product in good condition.</p>
</div>
</div>
</div>Video schema markup
Video content is one of the most powerful ways to capture attention, as people process visual information 60,000 times faster than text! With the VideoObject schema markup, your videos can appear in Google’s “Videos” section or in search results with a thumbnail and description. This increases the chances of your video being watched by the audience most interested in your content.
<div itemscope itemtype="https://schema.org/VideoObject">
<!-- Video Title -->
<meta itemprop="name" content="The History of Ukrainian Art: From Traditions to Modernity" />
<!-- Upload Date -->
<meta itemprop="uploadDate" content="2024-03-31T08:00:00+08:00" />
<!-- Video Duration in ISO 8601 Format -->
<meta itemprop="duration" content="PT1H30M54S" />
<!-- Video Description -->
<p itemprop="description">A documentary exploring the unique history of Ukrainian art, from traditional folk crafts to modern installations. Dive into the world of Ukrainian artists and learn how they shaped cultural heritage.</p>
<!-- Video Interaction Statistics -->
<div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter">
<meta itemprop="userInteractionCount" content="77018" />
<meta itemprop="interactionType" itemtype="https://schema.org/WatchAction" />
</div>
<!-- Video Embed URL -->
<link itemprop="embedUrl" href="https://www.example.com/embed/ukraine-art-history" />
<!-- Video File URL -->
<meta itemprop="contentUrl" content="https://www.example.com/video/ukraine-art-history/file.mp4" />
<!-- Allowed Viewing Regions -->
<meta itemprop="regionsAllowed" content="UA" />
<meta itemprop="regionsAllowed" content="PL" />
<!-- Video Thumbnail URL -->
<meta itemprop="thumbnailUrl" content="https://example.com/thumbnails/ukraine-art-history.jpg" />
</div>name: The title of the video, highlighting its topic and capturing user interest.uploadDate: The video upload date in ISO 8601 format (year, month, day, time, and timezone).duration: The video length in ISO 8601 format:- PT: Period of time
- H: Hours
- M: Minutes
- S: Seconds
description: A short video description providing users with an idea of its content and value.interactionStatistic: Interaction data, such as the number of views or other metrics.embedUrl: The URL for embedding the video on other websites.contentUrl: A direct link to the video file for viewing or downloading.regionsAllowed: Specifies regions where the video is available. Include this attribute multiple times for each allowed region.thumbnailUrl: The URL of the video thumbnail, showing its cover image or a static frame.
Image schema markup
Images not only enhance your webpage but also attract attention and provide users with a quick visual representation of your content. The ImageObject schema allows you to add detailed information to images, making them more noticeable in search results. This is crucial for all types of websites, as image-based queries account for approximately 20% of all search requests. Optimizing your images can significantly boost your website’s visibility.
<div itemscope itemtype="https://schema.org/ImageObject">
<!-- Image URL and brief description -->
<img alt="Picturesque view of the Carpathian Mountains at sunrise" itemprop="contentUrl" src="https://example.com/photos/1x1/karpaty-sunrise.jpg" />
<!-- Image License -->
<span itemprop="license">https://example.com/license</span><br>
<!-- Page with license details -->
<span itemprop="acquireLicensePage">https://example.com/how-to-use-my-images</span>
<!-- Image creator (photographer) -->
<span itemprop="creator" itemscope itemtype="https://schema.org/Person">
<meta itemprop="name" content="Oleksandr Boyko" />
</span>
<!-- Copyright notice -->
<span itemprop="copyrightNotice">Oleksandr Boyko</span>
<!-- Credit text -->
<span itemprop="creditText">PhotoKarpaty Studio</span>
</div>contentUrl: The URL of the image displayed on the page, accompanied by analtdescription for accessibility and SEO.license: A link to the page describing the licensing terms for using the image.acquireLicensePage: A URL directing users to information on obtaining a license to use the image.creator: The name of the image’s creator, such as the photographer. This uses the nestedPersontype to include detailed information about the creator.copyrightNotice: A copyright notice indicating ownership rights for the image, often including the name of the copyright holder.creditText: Text crediting the source or studio that provided the image.
Local business schema markup
LocalBusiness schema markup allows you to specify your contact details, location, and operating hours directly in Google. This helps users find your business among thousands of others, see when you’re open, and easily contact you for more information. Whether it’s a café, yoga studio, or service center, this markup aids users in making quicker decisions. Since over 45% of all search queries are location-based, local SEO is crucial for any business.
<div itemscope itemtype="https://schema.org/LocalBusiness">
<!-- Business Name -->
<span itemprop="name">Sunny Galya Cafe</span>
<!-- Official Website -->
<link itemprop="url" href="https://www.sunnygalya.com">
<!-- Business Logo -->
<img itemprop="logo" src="https://www.sunnygalya.com/logo.png" alt="Sunny Galya Cafe Logo">
<!-- Business Description -->
<meta itemprop="description" content="A warm and welcoming café offering authentic Ukrainian dishes, located in the heart of the city. Perfect for a unique cultural and culinary experience.">
<!-- Business Type -->
<meta itemprop="@type" content="Restaurant">
<!-- Address -->
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<meta itemprop="streetAddress" content="123 Main Street">
<meta itemprop="addressLocality" content="Chicago">
<meta itemprop="addressRegion" content="IL">
<meta itemprop="postalCode" content="60601">
<meta itemprop="addressCountry" content="US">
</div>
<!-- Geographical Coordinates -->
<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
<meta itemprop="latitude" content="41.8781">
<meta itemprop="longitude" content="-87.6298">
</div>
<!-- Contact Phone -->
<p>Phone: <span itemprop="telephone">+1-312-555-6789</span></p>
<!-- Email -->
<meta itemprop="email" content="info@sunnygalya.com">
<!-- Operating Hours -->
<div itemprop="openingHoursSpecification" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
<!-- Regular Hours -->
<meta itemprop="dayOfWeek" content="Monday">
<meta itemprop="dayOfWeek" content="Tuesday">
<meta itemprop="dayOfWeek" content="Wednesday">
<meta itemprop="dayOfWeek" content="Thursday">
<meta itemprop="dayOfWeek" content="Friday">
<meta itemprop="opens" content="08:00">
<meta itemprop="closes" content="21:00">
</div>
<div itemprop="openingHoursSpecification" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
<!-- Weekend Hours -->
<meta itemprop="dayOfWeek" content="Saturday">
<meta itemprop="dayOfWeek" content="Sunday">
<meta itemprop="opens" content="09:00">
<meta itemprop="closes" content="22:00">
</div>
<!-- Special Operating Hours (e.g., Holidays) -->
<div itemprop="openingHoursSpecification" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
<meta itemprop="validFrom" content="2024-12-25">
<meta itemprop="validThrough" content="2024-12-25">
<meta itemprop="opens" content="10:00">
<meta itemprop="closes" content="16:00">
<meta itemprop="description" content="Christmas Hours">
</div>
<!-- Business Photo -->
<img itemprop="image" src="https://www.sunnygalya.com/photos/cafe-front.jpg" alt="Sunny Galya Cafe Front">
<!-- Social Media Profiles -->
<div itemprop="sameAs">
<link href="https://www.facebook.com/sunnygalya">
<link href="https://www.instagram.com/sunnygalya">
</div>
<!-- Business Rating -->
<div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
<meta itemprop="ratingValue" content="4.8">
<meta itemprop="reviewCount" content="342">
</div>
<!-- Reviews -->
<div itemprop="review" itemscope itemtype="https://schema.org/Review">
<div itemprop="author" itemscope itemtype="https://schema.org/Person">
<span itemprop="name">Anna Johnson</span>
</div>
<div itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">
<meta itemprop="ratingValue" content="5">
</div>
<span itemprop="reviewBody">The most delicious dumplings I've ever had! The cozy atmosphere is perfect for a relaxing meal.</span>
</div>
<!-- Price Range -->
<meta itemprop="priceRange" content="$$">
<!-- Payment Methods Accepted -->
<meta itemprop="paymentAccepted" content="Cash, Credit Cards, Apple Pay, Google Pay">
<!-- Founder and Founding Date -->
<div itemprop="founder" itemscope itemtype="https://schema.org/Person">
<meta itemprop="name" content="Halyna Zdyrko">
</div>
<meta itemprop="foundingDate" content="2020-07-01">
</div>
name: The name of the business.url: The official website of the business.logo: The logo of the business.description: A brief description of the business.address: The physical address of the business.streetAddress: The street name and building number.addressLocality: The city.addressRegion: The state or region.postalCode: The postal code.addressCountry: The country code (ISO 3166-1 alpha-2). For USA, it’sUS.
geo: The geographical coordinates of the business.telephone: The contact phone number.email: The email address for communication.openingHoursSpecification: A detailed schedule of operating hours.dayOfWeek: The day of the week (can be specified multiple times).opens: Opening time (inHH:MMformat).closes: Closing time (inHH:MMformat).validFromandvalidThrough: Dates when these operating hours are valid (used for special hours).description: A description of the hours, such as “Christmas operating hours.”
image: Images or photos of the business.sameAs: Links to the business’s social media profiles.aggregateRating: The average rating of the business.ratingValue: The average score (e.g., 4.7).reviewCount: The total number of reviews (e.g., 254).
review: An individual review of the business.author: The name of the review’s author.reviewRating: The rating given by the author.reviewBody: The content or text of the review.
priceRange: The price range of the business, helping users understand the cost category ($$ for a mid-range business).paymentAccepted: The payment methods accepted by the business.founderandfoundingDate: Information about the founder and the founding date of the business.founder: A nestedPersonentity with the founder’s name.foundingDate: The date inYYYY-MM-DDformat.
Schema markup for Courses
Course schema markup is used for educational programs, training sessions, online courses, and learning modules. It helps search engines understand key details about the course, such as its title, description, provider (instructor or organization), and certification information.
<div itemscope itemtype="https://schema.org/Course">
<!-- Course Name -->
<h2 itemprop="name">Python Programming Basics</h2>
<!-- Course Description -->
<p itemprop="description">This course introduces students to fundamental programming concepts in Python. Learn how to work with variables, functions, loops, and other foundational topics.</p>
<!-- Course Publisher -->
<div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
<span itemprop="name">LearnBetter Platform</span>
<meta itemprop="url" content="http://www.examplecoursewebsite.com">
</div>
<!-- Course Provider -->
<div itemprop="provider" itemscope itemtype="https://schema.org/Organization">
<span itemprop="name">Online Academy "LearnBetter"</span>
<link itemprop="sameAs" href="https://www.example.edu" />
</div>
<!-- Course Image -->
<img src="course-image.jpg" alt="Python Programming Basics Course" itemprop="image">
<!-- Course Rating -->
<div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
<meta itemprop="ratingValue" content="4.6">
<meta itemprop="ratingCount" content="1234">
<meta itemprop="reviewCount" content="450">
</div>
<!-- Course Offer -->
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="category" content="Paid" />
<meta itemprop="priceCurrency" content="USD" />
<meta itemprop="price" content="100" />
</div>
<!-- Additional Course Information -->
<meta itemprop="totalHistoricalEnrollment" content="12345">
<meta itemprop="datePublished" content="2024-03-21">
<meta itemprop="educationalLevel" content="Beginner">
<meta itemprop="inLanguage" content="en">
<meta itemprop="availableLanguage" content="es">
<meta itemprop="availableLanguage" content="fr">
<!-- Course Modules -->
<div itemprop="syllabusSections" itemscope itemtype="https://schema.org/Syllabus">
<h2 itemprop="name">Memory Management</h2>
<p itemprop="description">Explore the principles of memory allocation when creating variables in Python.</p>
<meta itemprop="timeRequired" content="PT4H">
</div>
<!-- Course Reviews -->
<div itemprop="review" itemscope itemtype="https://schema.org/Review">
<div itemprop="author" itemscope itemtype="https://schema.org/Person">
<span itemprop="name">Alex Johnson</span>
</div>
<meta itemprop="datePublished" content="2024-08-31">
<div itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">
<meta itemprop="bestRating" content="5">
<meta itemprop="ratingValue" content="4">
</div>
</div>
<!-- Course Prerequisites -->
<div itemprop="coursePrerequisites">Basic understanding of algorithms and data structures.</div>
<a href="https://www.example.com/beginnerAlgorithms" itemprop="coursePrerequisites">Beginner Algorithms Course</a>
<!-- Course Instance -->
<div itemprop="hasCourseInstance" itemscope itemtype="https://schema.org/CourseInstance">
<meta itemprop="courseMode" content="Online" />
<!-- Course Schedule -->
<div itemprop="courseSchedule" itemscope itemtype="https://schema.org/Schedule">
<meta itemprop="duration" content="PT3H" />
<meta itemprop="repeatFrequency" content="Daily" />
<meta itemprop="repeatCount" content="30" />
<meta itemprop="startDate" content="2024-02-15" />
<meta itemprop="endDate" content="2024-05-15" />
</div>
<!-- Course Instructor -->
<div itemprop="instructor" itemscope itemtype="https://schema.org/Person">
<meta itemprop="name" content="Maria Ivanenko" />
<meta itemprop="description" content="Professor at Harvard, Python programming expert." />
</div>
</div>
</div>name: The name of the event, reflecting its content and capturing attention.startDate: The start date and time of the event in ISO 8601 format (YYYY-MM-DDTHH:MM+03:00).endDate: The end date and time of the event in ISO 8601 format.eventAttendanceMode: The attendance mode of the event:OfflineEventAttendanceMode: Offline event.OnlineEventAttendanceMode: Online event.MixedEventAttendanceMode: Both offline and online.
eventStatus: The status of the event:EventCancelled: Cancelled.EventMovedOnline: The event will be held online.EventPostponed: Postponed, and the new date is not yet known (do not change the originalstartDateuntil the new date is confirmed. Once the new date is available, updateeventStatustoEventRescheduledand add the newstartDateandendDate).EventRescheduled: Postponed, and the new date is known.EventScheduled: Scheduled to occur as planned.
location: The venue where the event will take place, including the name and address of the location.name: The name of the venue. Example: “Perci Meadow”.streetAddress: Street name and number.addressLocality: City or town.postalCode: Postal code.addressRegion: Region or state.addressCountry: Country in ISO format (e.g.,USfor USA).
image: An image representing the event, such as a poster or a photo from past events.description: A short description of the event, conveying its atmosphere and providing key details.offers: Information about tickets or other offers for the event.url: A link to the ticket purchase page.price: Ticket price.priceCurrency: The currency for the price (e.g.,USDfor US dollar).availability: Ticket availability.validFrom: The date when ticket sales start.
performer: Indicates the performer(s) or group(s) appearing at the event.organizer: The event organizer, including the name and a link to their official website.
These are the key fields recommended for course schema markup. However, there are additional attributes that can further enhance the information about your course. You can read more about their application here or leave it to the experts at Murre Agency.
Schema markup for Events
Event schema markup is especially useful for companies, organizations, and individuals organizing events such as conferences, seminars, festivals, or concerts. It allows you to display information about the event, including the date, location, ticket prices, and even registration links.
<body itemscope itemtype="https://schema.org/Event">
<!-- Event Name -->
<h1 itemprop="name">Music Festival "Peaks and Sounds"</h1>
<!-- Event Start Date and Time -->
<meta itemprop="startDate" content="2025-08-10T18:00-04:00" />
<!-- Event End Date and Time -->
<meta itemprop="endDate" content="2025-08-12T23:00-04:00" />
<!-- Event Attendance Mode -->
<meta itemprop="eventAttendanceMode" content="https://schema.org/OfflineEventAttendanceMode" />
<!-- Event Status -->
<meta itemprop="eventStatus" content="https://schema.org/EventScheduled" />
<!-- Event Location -->
<div itemprop="location" itemscope itemtype="https://schema.org/Place">
<span itemprop="name">Rocky Mountain Amphitheater</span>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">123 Summit Rd</span>,
<span itemprop="addressLocality">Aspen</span>,
<span itemprop="postalCode">81611</span>,
<span itemprop="addressRegion">CO</span>,
<span itemprop="addressCountry">US</span>
</div>
</div>
<!-- Event Image -->
<img src="https://example.com/photos/1x1/festival-usa.jpg" alt="Music Festival 'Peaks and Sounds'" itemprop="image" />
<!-- Event Description -->
<p itemprop="description">The "Peaks and Sounds" festival unites top musicians and nature enthusiasts in the majestic Rocky Mountains. Experience the rhythms of the peaks and unforgettable musical performances under the stars.</p>
<!-- Ticket Offers -->
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<a href="https://www.example.com/festival_tickets" itemprop="url">Buy Tickets</a>
<meta itemprop="price" content="150" />
<meta itemprop="priceCurrency" content="USD" />
<meta itemprop="availability" content="https://schema.org/InStock" />
<meta itemprop="validFrom" content="2024-06-01T10:00-04:00" />
</div>
<!-- Event Performers -->
<div itemprop="performer" itemscope itemtype="https://schema.org/PerformingGroup">
<span itemprop="name">Band "The Lumineers"</span>
</div>
<!-- Event Organizer -->
<div itemprop="organizer" itemscope itemtype="https://schema.org/Organization">
<span itemprop="name">Rocky Music Alliance</span>
<a href="https://rockymusicalliance.com" itemprop="url">Official Website</a>
</div>
</body>name: The name of the event that reflects its theme and captures attention.startDate: The date and time the event begins, in ISO 8601 format (YYYY-MM-DDTHH:MM-04:00).endDate: The date and time the event ends, in ISO 8601 format.eventAttendanceMode: Mode of attendance for the event:OfflineEventAttendanceMode: In-person attendance.OnlineEventAttendanceMode: Virtual/online attendance.MixedEventAttendanceMode: Both in-person and online.
eventStatus: Status of the event:EventCancelled: Cancelled.EventMovedOnline: The event will take place online.EventPostponed: The event is postponed, and the new date is not yet determined.
(Do not change the originalstartDateuntil the new date is confirmed. Once you know the new date, updateeventStatustoEventRescheduledand adjuststartDateandendDateaccordingly.)EventRescheduled: The event is postponed, and the new date is confirmed.EventScheduled: The event is proceeding as planned.
location: The venue where the event will take place, including its name and address:name: Venue name.streetAddress: Street address of the venue.addressLocality: City or locality.postalCode: ZIP code.addressRegion: State or region.addressCountry: Country in ISO format.
image: An image representing the event, such as a poster or a photo from past events.description: A brief description of the event that conveys its atmosphere and key details.offers: Details about tickets or other offers for the event:url: Link to the ticket purchase page.price: Ticket price.priceCurrency: Currency for the price.availability: Ticket availability status.validFrom: The date when ticket sales start.
performer: Details about the performers or groups participating in the event.organizer: Information about the event organizer, including their name and a link to their official website:
These are the primary attributes we’ve covered for creating event schema markup. However, you can find additional attributes in the official documentation that can help provide a more detailed description of your event and enhance its visibility in search engines.
Schema markup for site search
The SearchAction schema markup enables search engines to recognize that your website includes an internal search functionality. This allows users to search your site directly from Google search results. By entering their query into a designated field within the search results page, Google redirects them to your site with the pre-formed search results.
Imagine a user looking for a specific product or service. Instead of navigating from the search engine results page (SERP) to your site and then searching for the desired content, Google displays a search input box directly in the SERP. This enhances user convenience and increases the likelihood that the visitor will remain on your site. For businesses, it’s an additional opportunity to engage potential customers by saving them time and effort.
<div itemscope itemtype="https://schema.org/WebSite">
<meta itemprop="url" content="https://www.example.com/"/>
<!-- Search functionality -->
<form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction">
<!-- URL containing the user query -->
<meta itemprop="target" content="https://query.example.com/search?q={search_term_string}"/>
<!-- Input field for search queries -->
<input itemprop="query-input" type="text" name="search_term_string" required/>
<button type="submit">Search</button>
</form>
</div>Recipe schema markup
Recipe schema markup is a fantastic tool for culinary websites or sections dedicated to recipes. It structures your recipe data so search engines can display them as rich snippets with an appealing image of the dish, ratings, preparation time, and even a short summary of the main ingredients.
Imagine a user searching for a “quick borscht recipe.” With the Recipe schema markup, Google can display your recipe in an attractive box, complete with an image of borscht, preparation time (e.g., “30 minutes”), and user ratings. This visually engaging presentation significantly increases the chances of capturing users’ attention as they immediately see what they’re looking for before even clicking on the page.
<div itemscope itemtype="https://schema.org/Recipe">
<!-- Recipe Name -->
<h2 itemprop="name">Ukrainian Borscht</h2>
<!-- Dish Image -->
<img src="https://example.com/images/borscht.jpg" alt="Ukrainian Borscht" itemprop="image">
<!-- Preparation Video (Optional) -->
<video itemprop="video" itemscope itemtype="https://schema.org/VideoObject" controls>
<meta itemprop="name" content="How to Make Ukrainian Borscht">
<meta itemprop="thumbnailUrl" content="https://example.com/thumbnails/borscht.jpg">
<meta itemprop="contentUrl" content="https://example.com/videos/borscht.mp4">
<meta itemprop="uploadDate" content="2024-03-31T08:00:00-05:00" />
<meta itemprop="duration" content="PT20M43S" />
<p itemprop="description">A step-by-step video guide to making delicious Ukrainian borscht.</p>
</video>
<!-- Recipe Description -->
<p itemprop="description">Traditional Ukrainian borscht with beets, cabbage, and beef.</p>
<!-- Author and Publication Date -->
<div itemprop="author" itemscope itemtype="https://schema.org/Person">
<a itemprop="url" href="https://example.com/profile/olena-tkachenko">
Author: <span itemprop="name">Olena Tkachenko</span>
</a>
</div>
<meta itemprop="datePublished" content="2024-10-01">
<!-- Servings and Preparation Time -->
<p>Servings: <span itemprop="recipeYield">6 servings</span></p>
<p>Prep Time: <time itemprop="prepTime" datetime="PT30M">30 minutes</time></p>
<p>Cook Time: <time itemprop="cookTime" datetime="PT1H">1 hour</time></p>
<p>Total Time: <time itemprop="totalTime" datetime="PT1H30M">1 hour 30 minutes</time></p>
<!-- Recipe Category -->
<meta itemprop="recipeCategory" content="Main Course">
<!-- Cuisine -->
<meta itemprop="recipeCuisine" content="Ukrainian">
<!-- Keywords -->
<meta itemprop="keywords" content="borscht, Ukrainian cuisine, traditional recipes">
<!-- Ingredients -->
<h3>Ingredients:</h3>
<ul>
<li itemprop="recipeIngredient">500 g beef</li>
<li itemprop="recipeIngredient">3 medium beets</li>
<li itemprop="recipeIngredient">4 potatoes</li>
<li itemprop="recipeIngredient">1 carrot</li>
<li itemprop="recipeIngredient">1 onion</li>
<li itemprop="recipeIngredient">200 g cabbage</li>
<li itemprop="recipeIngredient">Salt and pepper to taste</li>
</ul>
<!-- Cooking Steps -->
<h3>Instructions:</h3>
<ol itemprop="recipeInstructions">
<li>Boil the beef broth for 1 hour.</li>
<li>Add chopped beets and cook for 15 minutes.</li>
<li>Add potatoes, carrots, onions, and cabbage. Cook for another 20 minutes.</li>
<li>Season to taste and let the soup rest for 10 minutes before serving.</li>
</ol>
<!-- Nutritional Information -->
<div itemprop="nutrition" itemscope itemtype="https://schema.org/NutritionInformation">
<p>Calories per serving: <span itemprop="calories">150 calories</span></p>
</div>
<!-- Recipe Rating -->
<div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
<meta itemprop="ratingValue" content="4.8">
<meta itemprop="reviewCount" content="256">
</div>
</div>name: The name of the recipe.image: An image of the prepared dish.video: A video demonstrating the preparation steps, allowing users to visually follow each step (learn more about video markup here).description: A brief description of the recipe.author: The author of the recipe.datePublished: The date when the recipe was published.recipeYield: The number of servings.prepTime,cookTime,totalTime: Preparation, cooking, and total time durations.recipeCategory: The category of the recipe, which helps classify it clearly (e.g., main dish, dessert).recipeCuisine: The type of cuisine the recipe belongs to (e.g., Ukrainian, Italian).keywords: Keywords or tags that help search engines better understand the recipe’s content.recipeIngredient: A list of ingredients used in the recipe.recipeInstructions: Step-by-step cooking instructions.aggregateRating: The average rating of the recipe.nutrition: Nutritional information, such as calories, protein, fats, etc.
Note that keywords should not duplicate values from the recipeCategory or recipeCuisine fields.
This core set of schema markup will make your site more visible to search engines, enhancing its appeal in search results. For more detailed guidance, refer to the official Google documentation, or connect with the experts at Murre Agency. We’ll help make your website more attractive and visible to search engines, ensuring maximum user engagement!
How schema markup affects a website
Display in google snippets
Microdata allows your pages to shine in search results through what’s called “rich snippets.” These can include star ratings, prices, images, recipe preparation times, and even product carousels! Such a format not only decorates your search results but also offers a chance to attract more attention among other results.
Imagine you’re searching for the best place for dinner, and several pages with descriptions appear in the search results. But only one of them has a rich snippet with a 5-star rating, an appealing photo, and a note stating that dinner is served until 11:00 PM. The user is almost certain to choose that page because the information seems more complete and trustworthy. This is the power of schema markup!
Importance for user experience
Schema markup is not just a tool for search engine optimization but also a tool for enhancing the user experience. Imagine a user sees a product they like without the need to click on the website, because the snippet already provides all the necessary details: price, availability, and even a photo. This creates the impression that the website cares about the user’s comfort and is ready to provide information even before they click.
Instead of wasting time endlessly navigating between pages, the user can quickly jump to the section they need or find a specific product. For example, microdata allows you to add breadcrumbs, which show where a specific section of the website is located, or highlight the most popular product categories.
Increasing Trust
Rich snippets help build trust in your brand. For example, if your website has many positive reviews, microdata allows you to display those ratings directly in search results. The user sees that others have already rated your work or product, creating an impression of reliability and a positive experience. When your site shows “5 stars” or “100+ reviews,” it stands out as a more attractive and trustworthy option.
Thus, microdata not only helps your site stand out in search results but also adds a sense of care to the user experience. It’s like an invitation: users are already interested in your website before they’ve even visited it. Microdata makes content more accessible, understandable, and user-friendly for everyone.
Enhancing content understanding for Search Engines
Schema markup acts as a translator between your website and search engines. It helps Google and other search engines not only see the text on your pages but also understand its context. Think of it as additional hints for crawlers, explaining what is important and how to interpret it. When you implement schema markup, your site becomes more comprehensible to search engines, boosting its chances of appearing in top search results.
For example, if your website contains contact information, simply labeling it as “Contact” or “Address” may not always be clear to crawlers. However, using Schema.org schema markup, you can explicitly define elements such as “this is the office address,” “this is the contact phone number,” or “this is the map location.” This enables search engines to quickly identify and process critical details about your business, often displaying them in a dedicated section of the search results.
Boosting relevance and visibility
Schema markup also improves the relevance of your content. It allows search engines to better match your content with user queries. Imagine a library without categories—books scattered randomly across shelves. Schema markup organizes this “library,” helping search engines understand which “categories” apply to your website. For instance, recipe articles on your site could be displayed in search results with detailed information such as cooking time, ingredients, and nutritional values, immediately addressing user needs.
Improving interaction with voice assistants
Voice search continues to grow annually, and schema markup plays a crucial role here. Voice assistants like Siri, Alexa, and Google Assistant rely on structured data to provide accurate answers to user queries. The better your content is structured, the more likely your site will be featured as a response to voice search queries.
To help voice assistants highlight specific sections for spoken answers, you can use the Speakable attribute. It allows you to specify parts of text, such as headlines or brief descriptions, to be read aloud by assistants. For example, you could tag the introductory sentences of a news article or the core description of a service. This improves accessibility and increases the likelihood of your site being selected for voice search results.
Here’s an example of using Speakable with Microdata:
<div itemscope itemtype="https://schema.org/NewsArticle">
<h1 itemprop="headline">Tech News: The Future is Here</h1>
<div itemprop="speakable">
<p itemprop="text">Artificial intelligence is rapidly transforming every aspect of our lives.</p>
</div>
</div>Schema markup in SEO serves as a signal to search engines, showcasing that your website is optimized, well-structured, and ready to meet user needs. It’s a powerful tool for creating a strong first impression and building credibility. Those who effectively implement schema markup always stay one step ahead in search rankings, making it an essential component of a modern SEO strategy.
Schema markup mistakes that can harm and lead to penalties
Schema markup is a powerful tool that can elevate your website to the top positions in search results. However, incorrect implementation can lead to severe problems. Let’s explore the most common mistakes webmasters make and how they can impact your site.
Content and schema markup mismatch
One of the most critical and frequent errors is when schema markup does not align with the actual content on the page. For instance, if you use schema markup to display product reviews and add high ratings that don’t actually exist, this can harm your site significantly. Search engines are constantly improving their algorithms and can detect such “embellished” information as manipulation. At best, Google might stop displaying rich snippets for your site. At worst, your entire site’s ranking could suffer due to penalties.
Keyword stuffing in schema markup
Some webmasters try to “enhance” schema markup by overloading structured data with keywords. For example, adding phrases like “best,” “top,” or “cheapest” in product names or descriptions to improve visibility can backfire. Search engines consider this practice as spam, which might result in reduced visibility or even the exclusion of your pages from search results.
Duplicate schema markup
Another common mistake is duplicating schema markup on a single page, which confuses search engine bots. For example, if the same information—such as product ratings—is marked up multiple times in different sections, Google’s algorithms might interpret this as an attempt to manipulate snippets. This issue is particularly relevant for e-commerce websites where reviews, ratings, and prices often appear from various sources on the same page. Duplicate markup can lead to incorrect data display or even complete disregard of the structured data.
Misuse of schema types
Each schema type has a specific purpose. Using the wrong type, such as applying LocalBusiness markup to a blog in an attempt to boost local SEO, will not only fail to achieve the desired result but might also cause issues. Misusing schema types disrupts data logic, and search engines might ignore the markup or even lower the page ranking due to the inconsistency.
Using outdated standards
Keeping up with schema markup standards is essential, as new specifications are regularly introduced. For instance, the previously popular Data Vocabulary standard is no longer supported by Google. Using outdated standards can result in search engines ignoring your structured data. Ensure your site uses up-to-date formats, such as Schema.org in JSON-LD or Microdata.
Possible penalties for schema markup errors
If schema markup is used manipulatively or contains numerous errors, your site may face penalties, including:
- Lower rankings: Search engines may demote your overall site ranking, reducing its visibility in search results.
- Loss of rich snippets: Google may stop displaying rich snippets for your site. This can be critical for businesses that rely heavily on enhanced search result visuals, such as e-commerce sites with reviews or star ratings.
- Deindexing: In extreme cases, pages with manipulative schema markup may be excluded from the index, drastically reducing traffic.
How to avoid common mistakes
To prevent these errors, always follow these guidelines:
- Ensure schema markup aligns with the actual content on the page.
- Use schema markup only to display accurate and reliable information.
- Avoid keyword stuffing in structured data.
- Stay updated on schema markup standards.
- Validate your schema markup using tools like Google’s Rich Results Test.
Schema markup can be a valuable ally in achieving online success, but only when implemented correctly and with adherence to the latest standards. Proper use of schema markup ensures your site remains competitive while avoiding costly penalties.
How to check schema markup
Validating schema markup is a crucial step to ensure your structured data is implemented correctly, improving your website’s visibility and performance in search engine results. Below are the most effective tools and methods for verifying schema markup, helping you avoid errors and make your site more appealing to both users and search engines.
Google Rich Results Test
This tool, developed by Google, is designed to test whether your web pages support rich results. It provides feedback on the presence or absence of elements such as reviews, ratings, recipes, and other rich components that can appear in search snippets. The tool also highlights errors or missing attributes, making it easier to resolve issues quickly.
How to use:
- Go to the Google Rich Results Test.
- Enter your page URL or paste your code.
- The tool will analyze your page and display which rich snippets are supported and whether there are any errors.
Schema Markup Validator
This tool, provided by Schema.org, is perfect for validating your schema markup code. It offers a detailed analysis of the structure of your schema markup, checking whether it complies with Schema.org standards. The validator also highlights warnings and errors, helping you fine-tune your structured data.
How to use:
- Visit the Schema Markup Validator.
- Input your HTML code or URL.
- The tool will display the complete structure of your schema markup, including attributes and their values, along with any detected issues.
Google Search Console
Google Search Console allows you to monitor the effectiveness of your schema markup and its impact on your website’s visibility. It provides detailed reports on the structured data Google recognizes on your site, indicating which rich snippets are appearing in search results and flagging any display issues.
How to use:
- Add your website to Google Search Console.
- Navigate to the Enhancements section.
- Review the structured data reports. If Google detects issues, such as missing fields or deviations from standards, you’ll receive a notification with detailed explanations.
Tracking schema markup performance
To evaluate how effectively your schema markup is working, leverage the capabilities of Google Search Console. Monitor metrics such as CTR (click-through rate) and overall site visibility after implementing schema markup. This will help you identify which types of structured data provide the most value and how they impact user interactions with your website.
By regularly analyzing these insights, you can not only avoid common mistakes but also manage your structured data effectively, strengthening your site’s position in search results. This proactive approach ensures continuous improvement and maximizes the benefits of schema markup in your SEO strategy.