Schema markup is a standardized way to label your page content so search engines know exactly what it means. By adding structured data you can unlock rich search results like review stars event details and recipe cards that boost visibility and click through rates.
What Is Schema Markup Simple Guide to Structured Data for SEO

Have you ever noticed how some search results show extra details like star ratings cooking times or event dates right on the results page? That extra information comes from something called schema markup. Schema is a way to label your content so that search engines know exactly what it means.
Instead of hoping Google figures out that a paragraph describes a recipe or a product review you explicitly mark that content using a shared vocabulary. With proper schema markup your pages can earn special displays in search results drawing attention and encouraging clicks.
Definition of Schema
Schema is structured data added to HTML pages to provide search engines with context. It uses a standardized vocabulary from schema.org When you apply schema markup you wrap key pieces of information-like a product name or an event date-in tags that tell search engines “this is a product” or “this is an event.” Search engines read that markup and use it to generate rich search result features.
Why Schema Matters
Rich search results often take up more screen space. For example a product snippet with ratings and price stands out compared to a plain link. That extra attention can lead to higher click through rates.
Improved Click Through Rates
When users see star ratings or images next to your result they are more inclined to click. In many cases schema results in visual elements that catch the eye.
Clearer Context for Search Engines
Search engines rely on machine learning to interpret plain text. By adding schema you give them a ready defined structure. Instead of guessing Google instantly knows that a section of content is a recipe or a review.
How Schema Works

When you implement schema you insert code into your HTML. That code follows a specific format so search engines can parse it. Most of the time you will use JSON-LD format which is easy to add and does not interfere with visible content. Once Google bots crawl your page they detect the schema script and store it. Then when someone searches Google decides whether to display special features based on that markup.
Major Types of Schema with Examples
Local Business Schema

Mark up business name address phone number opening hours and reviews. Search engines may then display your business in the local pack or show a knowledge panel with your hours and contact info.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Green Leaf Cafe",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Elm Street",
"addressLocality": "Greenville",
"addressRegion": "NC",
"postalCode": "27834",
"addressCountry": "US"
},
"telephone": "+1 252 555 0123",
"openingHours": "Mo Sa 08:00 20:00",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "87"
}
}
</script>
Product and Review Schema

Ecommerce sites can tag product details like price availability brand and aggregated review ratings. If implemented correctly search results may show star ratings and price information.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Organic Lavender Soap",
"image": "https://example.com/images/lavender_soap.jpg",
"description": "Handmade lavender scented soap made with organic ingredients",
"sku": "OS-LAV-001",
"brand": {
"@type": "Brand",
"name": "PureEssence Apothecary"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/organic-lavender-soap",
"priceCurrency": "USD",
"price": "8.99",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "203"
}
}
</script>
Recipe Schema

Food blogs can define ingredients cooking time calories and user ratings. That often triggers a recipe card with prep times and a thumbnail image.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Classic Chocolate Chip Cookies",
"author": {
"@type": "Person",
"name": "Jamie Baker"
},
"datePublished": "2025-04-12",
"recipeYield": "24 cookies",
"prepTime": "PT15M",
"cookTime": "PT10M",
"totalTime": "PT25M",
"recipeIngredient": [
"2 cups all purpose flour",
"1 teaspoon baking soda",
"1 teaspoon salt",
"1 cup unsalted butter",
"3/4 cup granulated sugar",
"3/4 cup packed brown sugar",
"1 teaspoon vanilla extract",
"2 large eggs",
"2 cups semisweet chocolate chips"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"text": "Preheat oven to 375 degrees F."
},
{
"@type": "HowToStep",
"text": "Combine dry ingredients in a bowl."
},
{
"@type": "HowToStep",
"text": "Beat butter sugars and vanilla until creamy."
},
{
"@type": "HowToStep",
"text": "Add eggs one at a time mixing well after each."
},
{
"@type": "HowToStep",
"text": "Gradually beat in flour mixture then stir in chocolate chips."
},
{
"@type": "HowToStep",
"text": "Drop by rounded tablespoon onto ungreased baking sheets."
},
{
"@type": "HowToStep",
"text": "Bake 9 to 11 minutes or until golden brown."
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "152"
},
"nutrition": {
"@type": "NutritionInformation",
"calories": "200 calories"
}
}
</script>
Event Schema

Organizers can mark start date end date venue ticket price and performer details. Events may appear in search with date and location information.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Summer Jazz Festival",
"startDate": "2025-07-15T18:00",
"endDate": "2025-07-15T22:00",
"location": {
"@type": "Place",
"name": "Riverside Park",
"address": {
"@type": "PostalAddress",
"streetAddress": "456 River Drive",
"addressLocality": "Lakeside",
"addressRegion": "CA",
"postalCode": "92040",
"addressCountry": "US"
}
},
"image": "https://example.com/images/jazz_festival.jpg",
"description": "An evening of live jazz performances featuring local and national artists",
"offers": {
"@type": "Offer",
"url": "https://example.com/tickets",
"price": "25.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2025-05-01T12:00"
},
"performer": {
"@type": "MusicGroup",
"name": "The Blue Notes"
}
}
</script>
Article Schema

News sites and blogs tag headline author publication date and featured image. Google can present a carousel of top stories or article snippets.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "5 Simple Ways to Boost Gut Health Naturally",
"description": "Discover practical tips and easy lifestyle changes to improve gut health and digestion",
"author": {
"@type": "Person",
"name": "Avery Sanders"
},
"datePublished": "2025-06-01",
"image": "https://example.com/images/gut_health.jpg",
"publisher": {
"@type": "Organization",
"name": "Wellness Today",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/images/logo_wellness_today.png"
}
}
}
</script>
FAQ Page Schema

Pages can offer frequently asked questions returning an expandable list under your link in search results.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is the best way to prevent mold in my home?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Keep indoor humidity below 50 percent use exhaust fans in kitchens and bathrooms and fix leaks promptly."
}
},
{
"@type": "Question",
"name": "How often should I have my HVAC system inspected?",
"acceptedAnswer": {
"@type": "Answer",
"text": "It is recommended to have your HVAC system checked every six months for optimal performance and longevity."
}
}
]
}
</script>
How To Schema

How to pages can break tutorials into numbered steps appearing in search results as a step by step guide.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Change a Flat Tire",
"description": "Step by step guide to safely change a flat tire using simple tools",
"image": [
"https://example.com/images/flat_tire_step1.jpg",
"https://example.com/images/flat_tire_step2.jpg"
],
"totalTime": "PT30M",
"supply": [
{
"@type": "HowToSupply",
"name": "Jack"
},
{
"@type": "HowToSupply",
"name": "Lug wrench"
}
],
"tool": {
"@type": "HowToTool",
"name": "Flashlight"
},
"step": [
{
"@type": "HowToStep",
"url": "https://example.com/flat_tire#step1",
"name": "Find a safe location",
"text": "Pull over to a flat stable area away from traffic."
},
{
"@type": "HowToStep",
"url": "https://example.com/flat_tire#step2",
"name": "Loosen lug nuts",
"text": "Use the lug wrench to loosen each lug nut one turn only do not remove."
},
{
"@type": "HowToStep",
"url": "https://example.com/flat_tire#step3",
"name": "Jack up the vehicle",
"text": "Position the jack under the frame and raise the car until the tire is off the ground."
},
{
"@type": "HowToStep",
"url": "https://example.com/flat_tire#step4",
"name": "Remove the flat tire and install the spare",
"text": "Finish removing lug nuts then swap in the spare tire."
}
]
}
</script>
Video Object

Video schema includes thumbnail URL dura*tion upload date and description often showing a video thumbnail in search results.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Meditation for Beginners",
"description": "A ten minute guided meditation session perfect for first timers",
"thumbnailUrl": "https://example.com/images/meditation_thumbnail.jpg",
"uploadDate": "2025-05-10",
"duration": "PT10M",
"contentUrl": "https://example.com/videos/guided_meditation.mp4",
"embedUrl": "https://example.com/embed/guided_meditation"
}
</script>
Image Object Schema

Image schema can specify a caption and photographer credit helping search engines display images more accurately.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ImageObject",
"contentUrl": "https://example.com/images/sunset_landscape.jpg",
"caption": "Sunset over the lake",
"author": {
"@type": "Person",
"name": "Jordan Lee"
},
"photographDate": "2025-06-05"
}
</script>
Person Schema

Person schema helps identify individuals related to content such as authors or speakers.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Maria Torres",
"jobTitle": "Graphic Designer",
"worksFor": {
"@type": "Organization",
"name": "Creative Minds Studio"
},
"sameAs": [
"https://www.linkedin.com/in/mariatorres",
"https://twitter.com/mariatorres"
]
}
</script>
Organization Schema

Organization schema defines companies institutions or brands including name logo contact information and social links.
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Tech Solutions Inc",
"url": "https://techsolutions.example.com",
"logo": "https://techsolutions.example.com/images/logo.png",
"contactPoint": [
{
"@type": "ContactPoint",
"telephone": "+1 800 555 0199",
"contactType": "Customer Service",
"areaServed": "US"
}
]
}
</script>
Best Practices for Schema Markup
Stick to schema.org vocabulary always use official definitions
Use JSON-LD whenever possible to keep code separate from visible content
Validate your markup with Google’s Rich Results Test or Schema Markup Validator whenever you make changes
- Keep markup consistent with visible content to avoid mismatched information
- Focus on user value only mark up content that is visible and useful to visitors
Common Mistakes to Avoid

Copying examples without customizing replace every field so it matches your page content
Adding irrelevant or hidden markup do not mark up content users cannot see or that is not accurate
Ignoring nested requirements some types require nested objects such as an Address inside LocalBusiness
Neglecting to update schema when you change page content update schemas for any modified details
Conclusion
Schema markup is a direct line of communication with search engines giving them context about your content. By implementing schema correctly you can improve visibility earn rich search results and drive more organic traffic. From local businesses to recipes to FAQ pages each schema type serves a specific purpose. Start with JSON-LD snippets for the types that match your content validate them with testing tools and watch how your pages begin to stand out in search results.