Schema Markup Guide: How to Add Structured Data
What Is Schema Markup?
Schema markup is a standardized vocabulary of tags (or microdata) that you can add to your HTML to help search engines understand the content on your web pages more effectively. Developed collaboratively by Google, Bing, Yahoo, and Yandex through the Schema.org initiative, schema markup provides a shared language that search engines use to interpret and display your content in richer, more informative ways within search results.
At its core, schema markup acts as a translator between your website content and search engine crawlers. While search engines have become remarkably sophisticated at understanding natural language, they still benefit enormously from explicit, structured signals about what your content represents. When you add schema markup to a page about a recipe, for example, you are telling search engines exactly which part is the cooking time, which part lists the ingredients, and what the nutritional information looks like.
The concept of structured data is not new. Microformats and RDFa existed before Schema.org was launched in 2011. However, the creation of a unified vocabulary supported by all major search engines was a watershed moment for the web. Today, Schema.org defines over 800 types and more than 1,400 properties, covering everything from creative works and events to medical entities and financial products.
Structured data does not change how your page looks to visitors. It is invisible code embedded in your HTML that only search engines and other machines read. The payoff comes in the form of enhanced search result appearances known as rich results (formerly called rich snippets). These can include star ratings, FAQ accordions, recipe cards, event details, product prices, and much more, all displayed directly in the search engine results page (SERP).
For website owners and SEO professionals, schema markup represents one of the most impactful yet underutilized optimization strategies available. According to various industry studies, fewer than one-third of websites use any form of structured data, which means implementing schema markup can give you a meaningful competitive advantage in search visibility.
Why Schema Matters for SEO
Understanding why schema markup matters requires looking at how search engines have evolved. Modern search is no longer just about matching keywords. Google and other engines are building a knowledge graph, a massive database of entities and their relationships. Schema markup feeds directly into this knowledge graph, helping search engines connect your content to the broader web of information.
Rich Results and Enhanced SERP Features
The most visible benefit of schema markup is the ability to trigger rich results. These enhanced listings take up more visual real estate on the SERP and provide users with immediately useful information. A standard search result shows a blue link, URL, and meta description. A rich result might show star ratings, price ranges, availability status, FAQ dropdowns, how-to steps, or event dates. This additional information makes your listing more eye-catching and informative, which directly impacts user behavior.
Google supports rich results for dozens of schema types, and the list continues to grow. Some of the most impactful rich result types include FAQ accordions that expand directly in search results, how-to steps with images, product listings with price and availability, review snippets with star ratings, recipe cards with cooking time and calories, event listings with dates and ticket information, and video thumbnails with duration and upload date.
Click-Through Rate Improvements
Multiple studies have demonstrated that rich results significantly improve click-through rates. Research from various SEO platforms suggests that pages with rich results can see CTR improvements ranging from 20% to over 60%, depending on the type of schema and the competitiveness of the query. FAQ schema, for instance, can dramatically increase the visual footprint of your listing, pushing competitors further down the page while giving users immediate answers that encourage them to click through for more detail.
Even when rich results do not directly increase clicks, they improve brand visibility and trust. A listing with star ratings and review counts signals credibility. A listing with FAQ schema demonstrates comprehensive coverage of a topic. These visual cues influence user perception before they ever visit your site.
Voice Search and AI Assistants
As voice search continues to grow through devices like Google Assistant, Alexa, and Siri, structured data becomes even more critical. Voice assistants need clear, structured information to provide spoken answers. When someone asks their smart speaker a question, the assistant pulls from structured data sources to formulate a response. Pages with well-implemented schema markup are more likely to be selected as the source for these voice answers.
The rise of AI-powered search experiences, such as Google's AI Overviews, further amplifies the importance of structured data. These systems rely on clearly defined entities and relationships to generate accurate summaries and recommendations. Schema markup helps ensure your content is correctly understood and attributed in these AI-generated responses.
Competitive Advantage
Despite the clear benefits, schema markup adoption remains relatively low across the web. Many businesses, especially small and medium-sized ones, have not yet implemented structured data on their sites. This creates an opportunity for those who do invest in schema markup to stand out in search results. In competitive niches where every ranking factor matters, structured data can be the differentiator that tips the scales in your favor.
If you want to quickly audit your current structured data implementation, try our SEO Audit Tool to identify gaps and opportunities across your site.
Types of Schema Markup
Schema.org defines hundreds of types, but only a subset are commonly used for SEO purposes and supported by search engines for rich results. Here are the most important schema types every website owner should know about.
Article Schema
Article schema (including subtypes like BlogPosting and NewsArticle) tells search engines that a page contains editorial content. It helps define the headline, author, publication date, and featured image. News publishers benefit particularly from NewsArticle schema, which can help content appear in Google News and Top Stories carousels. BlogPosting is ideal for blog content and can enhance how your articles appear in search results with proper attribution and date information.
FAQ Schema (FAQPage)
FAQ schema is one of the most popular types because of its dramatic visual impact in search results. When implemented correctly, it creates expandable question-and-answer accordions directly in the SERP. Each FAQ item takes up additional space, making your listing more prominent. This schema type is suitable for any page that contains a list of questions and answers about a specific topic.
HowTo Schema
HowTo schema is designed for instructional content that walks users through a process step by step. It can display individual steps, required tools, materials, estimated time, and images directly in search results. This schema type is particularly effective for tutorial content, DIY guides, recipes, and any content that follows a sequential process.
Product Schema
Product schema is essential for e-commerce websites. It allows you to specify product name, description, price, currency, availability, brand, SKU, and review ratings. When properly implemented, product schema can trigger rich results showing price, availability status, and star ratings directly in search results, which significantly influences purchase decisions.
LocalBusiness Schema
LocalBusiness schema helps brick-and-mortar businesses appear in local search results with enhanced information. It covers business name, address, phone number, opening hours, geographic coordinates, accepted payment methods, and price range. This schema type is critical for local SEO and can improve visibility in Google Maps and local pack results.
Breadcrumb Schema (BreadcrumbList)
Breadcrumb schema defines the navigational hierarchy of a page within a website. When implemented, search engines display the breadcrumb trail in search results instead of the raw URL, making it easier for users to understand where a page sits within your site structure. This improves both usability and click-through rates. You can generate breadcrumb markup quickly with our JSON-LD Breadcrumb Generator.
Organization Schema
Organization schema provides search engines with key information about your business entity, including name, logo, contact information, social media profiles, and founding details. This schema type feeds into Google's Knowledge Panel and helps establish your brand's presence in search results.
Review and AggregateRating Schema
Review schema allows you to mark up individual reviews, while AggregateRating summarizes multiple reviews into an overall rating. These schema types trigger the coveted star rating snippets in search results, which are among the most effective visual elements for improving CTR.
Event Schema
Event schema is used to mark up information about upcoming events, including concerts, conferences, workshops, and webinars. It covers event name, date, location, ticket availability, performer information, and pricing. Events with proper schema markup can appear in Google's event listings and knowledge panels.
Video Schema (VideoObject)
Video schema helps search engines understand and index video content on your pages. It specifies the video title, description, thumbnail URL, upload date, duration, and content URL. Proper video schema can trigger video rich results with thumbnails and duration badges, which significantly increase visibility for video content.
JSON-LD vs Microdata vs RDFa
There are three main formats for implementing schema markup: JSON-LD, Microdata, and RDFa. Each has its own syntax and approach, but they all serve the same purpose of communicating structured data to search engines.
JSON-LD (Recommended)
JSON-LD (JavaScript Object Notation for Linked Data) is the format recommended by Google and is the most widely used approach today. It uses a simple JSON syntax embedded within a script tag in your HTML. The key advantage of JSON-LD is that it is completely separate from your visible HTML markup. You can add, modify, or remove structured data without touching your page templates or content. This separation of concerns makes JSON-LD easier to implement, maintain, and debug.
JSON-LD blocks are typically placed in the head section of your HTML document, though they can appear anywhere in the body. They do not affect page rendering or performance in any meaningful way. The syntax is clean and readable, making it accessible even to those who are not deeply technical.
Microdata
Microdata embeds structured data directly into your HTML elements using special attributes like itemscope, itemtype, and itemprop. While this approach ties the structured data closely to the visible content (which can be seen as an advantage for accuracy), it also makes the markup more complex and harder to maintain. Changing your page layout or HTML structure can break your Microdata implementation, and the interleaved syntax can make your HTML harder to read.
RDFa
RDFa (Resource Description Framework in Attributes) is similar to Microdata in that it embeds structured data within HTML attributes. It uses properties like vocab, typeof, and property to annotate content. RDFa is more flexible than Microdata and supports multiple vocabularies simultaneously, but this flexibility comes with added complexity. It is less commonly used for SEO purposes today.
Which Format Should You Use?
For the vast majority of use cases, JSON-LD is the best choice. Google explicitly recommends it, it is the easiest to implement and maintain, and it keeps your structured data cleanly separated from your HTML. All the code examples in this guide use JSON-LD format. Our Schema Generator Tool produces clean JSON-LD code that you can copy and paste directly into your pages.
Generate Schema Markup Instantly
Use our free Schema Generator to create valid JSON-LD structured data for your website. Supports FAQ, Article, Product, LocalBusiness, and more.
Try Schema Generator →How to Add FAQ Schema
FAQ schema (FAQPage) is one of the easiest and most impactful schema types to implement. It is suitable for any page that contains a series of questions and answers. When Google recognizes valid FAQ schema, it can display expandable question-and-answer pairs directly in search results, dramatically increasing your listing's visual footprint.
To implement FAQ schema, you need to create a JSON-LD block that defines the page as an FAQPage type and lists each question-answer pair as a Question entity within the mainEntity property. Here is a complete example:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is schema markup?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Schema markup is a form of structured data that you add to your HTML to help search engines understand your content better. It uses a standardized vocabulary from Schema.org to define entities, properties, and relationships on your web pages."
}
},
{
"@type": "Question",
"name": "Does schema markup help SEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, schema markup helps SEO by enabling rich results in search, improving click-through rates, and helping search engines better understand your content. While it is not a direct ranking factor, the indirect benefits are significant."
}
},
{
"@type": "Question",
"name": "What is the best format for schema markup?",
"acceptedAnswer": {
"@type": "Answer",
"text": "JSON-LD is the recommended format for schema markup. Google explicitly recommends JSON-LD because it is easy to implement, maintain, and does not interfere with your HTML structure."
}
}
]
}
</script>
Each question must have a unique name property containing the question text, and each answer must have a text property containing the answer. The answer text can include HTML formatting for links and emphasis, but keep it concise and directly relevant to the question.
Important guidelines for FAQ schema: only use it on pages where the FAQ content is visible to users (do not hide it), ensure the questions and answers are genuinely helpful and not promotional, and avoid using FAQ schema on pages where the primary purpose is not informational. Google may take manual action against sites that misuse FAQ schema for manipulative purposes.
How to Add Article Schema
Article schema helps search engines understand editorial content on your website. There are several subtypes of Article schema, with BlogPosting and NewsArticle being the most commonly used. BlogPosting is appropriate for blog posts and informal articles, while NewsArticle is designed for timely news content from recognized publishers.
Article schema defines key properties like the headline, author, publication date, modification date, featured image, and publisher information. When properly implemented, it can help your content appear in Google News, Top Stories, and other article-specific SERP features. Here is a complete BlogPosting example:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Your Article Title Here",
"description": "A brief description of the article content.",
"image": "https://example.com/images/article-image.jpg",
"author": {
"@type": "Person",
"name": "Author Name",
"url": "https://example.com/author/name"
},
"publisher": {
"@type": "Organization",
"name": "Your Site Name",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"datePublished": "2026-03-28",
"dateModified": "2026-03-28",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/blog/your-article"
}
}
</script>
For NewsArticle schema, simply change the @type from BlogPosting to NewsArticle. NewsArticle has additional properties like dateline and print section that are relevant for news publishers. Both types inherit from the Article parent type and share most properties.
Key best practices for Article schema include ensuring the headline matches or closely reflects your visible page title, using a high-quality image that is at least 1200 pixels wide, providing accurate publication and modification dates, and including complete author and publisher information. The author should ideally link to an author page on your site, which helps establish E-E-A-T (Experience, Expertise, Authoritativeness, and Trustworthiness) signals.
You can preview how your article might appear in search results using our SERP Simulator to optimize your title and description before publishing.
How to Add Product Schema
Product schema is essential for any e-commerce website looking to maximize visibility in search results. It enables rich results that display product information like price, availability, ratings, and reviews directly in the SERP. These rich results can significantly influence purchase decisions by giving shoppers key information before they even click through to your site.
A comprehensive Product schema implementation includes the product name, description, image, brand, SKU, price, currency, availability, and aggregate ratings. Here is a detailed example for an e-commerce product page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Premium Wireless Headphones",
"description": "High-fidelity wireless headphones with active noise cancellation, 30-hour battery life, and premium comfort design.",
"image": [
"https://example.com/images/headphones-front.jpg",
"https://example.com/images/headphones-side.jpg"
],
"brand": {
"@type": "Brand",
"name": "AudioTech"
},
"sku": "AT-WH-2026",
"mpn": "AT2026PRO",
"offers": {
"@type": "Offer",
"url": "https://example.com/products/premium-wireless-headphones",
"priceCurrency": "USD",
"price": "199.99",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"seller": {
"@type": "Organization",
"name": "Example Store"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "1284",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Jane Smith"
},
"reviewBody": "Excellent sound quality and the noise cancellation is top-notch. Battery lasts all week with daily use."
}
]
}
</script>
For e-commerce sites with multiple product variants (sizes, colors, etc.), you can use the hasVariant property or create separate Offer entries for each variant. Ensure that prices and availability are always accurate and up to date, as Google may penalize sites that show misleading information in rich results.
Product schema works best when combined with other optimization strategies. Use our Meta Tag Generator to create optimized product page meta tags that complement your structured data.
How to Add LocalBusiness Schema
LocalBusiness schema is critical for any business with a physical location that serves customers in a specific geographic area. It provides search engines with detailed information about your business, including address, phone number, operating hours, and services offered. This schema type directly impacts your visibility in local search results, Google Maps, and the local pack (the map-based results that appear for location-based queries).
LocalBusiness has many subtypes for specific industries, including Restaurant, MedicalBusiness, LegalService, FinancialService, AutomotiveBusiness, and dozens more. Using the most specific subtype applicable to your business helps search engines categorize you more accurately. Here is a comprehensive example:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "The Garden Bistro",
"description": "Farm-to-table restaurant serving seasonal dishes with locally sourced ingredients.",
"image": "https://example.com/images/garden-bistro.jpg",
"url": "https://example.com",
"telephone": "+1-555-123-4567",
"email": "[email protected]",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Portland",
"addressRegion": "OR",
"postalCode": "97201",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "45.5155",
"longitude": "-122.6789"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "11:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday", "Sunday"],
"opens": "10:00",
"closes": "23:00"
}
],
"priceRange": "$$",
"servesCuisine": "American",
"acceptsReservations": "True",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "328"
}
}
</script>
For businesses with multiple locations, each location should have its own page with unique LocalBusiness schema. Ensure that the name, address, and phone number (NAP) in your schema exactly match your Google Business Profile and other directory listings, as consistency across the web is a key local SEO ranking factor.
LocalBusiness schema should be placed on your homepage and on each location-specific page. Include as many relevant properties as possible, including payment methods accepted, areas served, and any special attributes specific to your business type.