TL;DR :
You know those Google results with ⭐️ star ratings, 📦 product prices, or ❓expandable FAQs?
They’re not ads — they’re Rich Results, poweredæ by something invisible:
Schema markup.
This guide breaks down:
What schema markup is — and why it’s essential for SEO & AI
How it powers Rich Results (stars, reviews, prices, FAQs…)
Which types to use (Product, Article, FAQ, Software, etc.)
How to implement it (manually, via CMS, or Tag Manager)
How it boosts visibility in ChatGPT, Perplexity, Claude
Quick Dictionary — Know the Basics1. What Is Schema Markup?🔎 Why it exists2. Schema Markup vs Rich Results — What’s the Difference?3. Core Schema Types You Should Know (and How to Use Them)4. Schema Markup Toolkit — How to Implement, Generate, and Validate Structured Data5. Schema Best Practices & SEO Guidelines✅ Best Practices to Follow⚠️ Common Mistakes to Avoid6. Schema for AI & LLM Search (ChatGPT, Perplexity, Claude)🧠 Why Schema Helps With AI VisibilityExamples Where Schema Makes a DifferenceBest Practices for AI Readability🛠 Bonus: Track Your Brand Mentions in LLMs7. Final Checklist & Action Plan
If you don’t like to read, here is the video :
I’m sure you’ve already come across this on Google:
🟡 Product listings with star ratings
📦 Pages showing price, stock info, and delivery dates, recipes...

❓ Blog posts with expandable FAQs right in the search result...
These aren’t paid ads.
They’re rich results, powered by something invisible to users… but crucial for SEO:
Schema markup.
If you’re not using it, your content is just “text” to search engines.
But with it? You make your content understandable, classifiable, and indexable — not just by Google, but by ChatGPT, Perplexity, and Claude.
In this guide, I’ll show you:
- What schema markup is
- How it powers rich results
- How to implement it (with examples)
- And how it can boost your visibility in both search and AI
Let’s demystify schema — and make your content stand out. But before we dive in :
Quick Dictionary — Know the Basics
Schema markup
→ A semantic vocabulary added to your HTML to help search engines understand and classify your content.
Structured data
→ A standardized way to describe your content to machines (e.g. “this is a product”, “this is a review”).
Semantic vocabulary
→ A system that gives meaning to your content. It lets machines interpret not just words, but context.
Rich results
→ Enhanced search results (stars, prices, FAQs, etc.) triggered by structured data. Also called rich snippets or enriched results.
Search results
→ The classic blue-link outputs in a SERP (title, URL, meta description). Rich results enhance these.
Schema.org
→ The official site where all structured data types and rules are defined. Supported by Google, Bing, Yahoo, and Yandex.
1. What Is Schema Markup?
Schema markup is a piece of code you add to your website that tells search engines what your content actually means — not just what it says.
Instead of just seeing:
“John’s Pizza — Thin crust, fast delivery in NYC”
With schema, Google knows:
“This is a LocalBusiness. It’s a restaurant. It has reviews. It’s open until 10 PM. It serves pizza.”
🔎 Why it exists
Search engines are getting smarter, but they’re still machines. They need structure to process information properly.
Schema markup uses a shared vocabulary defined by Schema.org to make content machine-readable. It works like metadata — but with far more semantic depth.
A human vs machine example
Without schema | With schema |
“Marie Dupont wrote this review on 3 April” | "@type": "Review", "author": "Marie Dupont", "datePublished": "2025-04-03" |
“We host webinars every Tuesday” | "@type": "Event", "startDate": "2025-05-21T18:00" |
Where schema markup lives
Most commonly, schema is added in JSON-LD format, placed in the <head> of your page (or injected via your CMS or via Google Tag Manager for example). It’s invisible to users but fully crawlable by bots.
Example:
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "What Is Schema Markup?", "author": { "@type": "Person", "name": "Antoine Payre" }, "datePublished": "2025-05-13" } </script>
2. Schema Markup vs Rich Results — What’s the Difference?
One of the biggest misconceptions in SEO is confusing schema markup with rich results.
Let’s set it straight:
⚙️ Schema markup = the code
It’s the invisible layer of structured data you add to your site — using JSON-LD, Microdata or RDFa.
It describes what’s on your page in a way machines can understand.
Rich results = the outcome (if you’re lucky)
Rich results (also called rich snippets or enriched results) are enhanced listings that appear in Google’s search results if your schema markup is valid and Google decides to use it.
Real-world examples
Use Case | Schema Markup | Possible Rich Result |
Blog article | Article | Author + date in SERP |
Product page | Product + Review | Star ratings, price, stock |
FAQ section | FAQPage | Expandable Q&A blocks |
Event listing | Event | Date, time, location |
Important to remember
- Schema markup is required for rich results — but doesn’t guarantee them.
- Google decides what it shows in the SERP, based on quality, trust, and relevance.
- Using schema correctly boosts your eligibility and trust signals.
3. Core Schema Types You Should Know (and How to Use Them)
Structured data isn’t one-size-fits-all.
Each page type should use the schema that matches the content’s intent and format.
Here are the most impactful schema types for SEO, rich results, and AI visibility — with the key properties you should include.
Article – For Blog Posts, Guides, News
Best for: blog posts, case studies, how-to content, interviews, news updates.
Minimum required:
- @type: "Article" or "BlogPosting"
- headline
- datePublished
- author
Recommended for SEO:
- image
- publisher (with logo)
- dateModified
- mainEntityOfPage
- articleSection
- keywords
Sample block (just add your own infos) :
{ "@context": "https://schema.org", "@type": "Article", "headline": "[ARTICLE TITLE]", "description": "[SHORT META DESCRIPTION]", "datePublished": "[YYYY-MM-DD]", "author": { "@type": "Person", "name": "[AUTHOR NAME]" }, "image": "[URL_TO_FEATURE_IMAGE]", "publisher": { "@type": "Organization", "name": "[COMPANY NAME]", "logo": { "@type": "ImageObject", "url": "[URL_TO_LOGO]" } } }
Use cases:
SEO blog, content hubs, tutorials, thought leadership.
FAQPage – For Pages With Clear Q&A Blocks
Best for: FAQ sections, onboarding support, product feature explanations.
Required:
- @type: "FAQPage"
- mainEntity array with Q&A pairs
Optional (but recommended):
- Linkable @id for internal linking
- Embed in visible HTML content (Google requires that)
Sample block:
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "[QUESTION 1]", "acceptedAnswer": { "@type": "Answer", "text": "[ANSWER 1]" } }, { "@type": "Question", "name": "[QUESTION 2]", "acceptedAnswer": { "@type": "Answer", "text": "[ANSWER 2]" } } ] }
Review + AggregateRating – To Display Star Ratings
Used for: customer feedback, product reviews, comparison articles.
Important: You must mark up real, visible content. Don’t invent stars — Google audits structured data.
Required:
- @type: "Review" or use as sub-object in Product, SoftwareApplication
- reviewRating
- author
Aggregate rating block:
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.7", "reviewCount": "84" }
Be careful, AggregateRating block doesn't work with all the schemas, it doesn't work for Article or Blog Posting for example.
If you have a SaaS and wan to display rating stars while have a great schema Markup, use this :
SoftwareApplication – Ideal for SaaS, Tools & Comparison Pages
This is the go-to schema type for SaaS platforms that want star ratings in Google.
It works especially well in product landing pages, blog comparison posts, or directories.
Minimum required:
- @type: "SoftwareApplication"
- name
- operatingSystem (use "Web" if it’s a web app)
- applicationCategory
Recommended (for rich results):
- aggregateRating
- offers (price)
- url
- image
- review
- publisher
Full example:
{ "@context": "https://schema.org", "@type": "SoftwareApplication", "name": "[APP NAME]", "operatingSystem": "Web", "applicationCategory": "[CATEGORY e.g. BusinessApplication]", "url": "[PRODUCT PAGE URL]", "image": "[URL_TO_PRODUCT_IMAGE]", "publisher": { "@type": "Organization", "name": "[COMPANY NAME]" }, "offers": { "@type": "Offer", "price": "[PRICE]", "priceCurrency": "[CURRENCY e.g. USD]" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "[AVERAGE RATING e.g. 4.8]", "reviewCount": "[NUMBER OF REVIEWS]" }, "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "[REVIEWER NAME]" }, "reviewBody": "[REVIEW TEXT]", "reviewRating": { "@type": "Rating", "ratingValue": "[RATING e.g. 5]" } } ] }
Product – For Ecommerce or Landing Pages
Best for: DTC brands, product detail pages, downloadable assets.
Minimum required:
- name, image, description
- offers (with price, currency, availability)
Recommended:
- brand
- sku
- aggregateRating
- review
Example :
{ "@context": "https://schema.org", "@type": "Product", "name": "[PRODUCT NAME]", "image": "[URL_TO_IMAGE]", "description": "[SHORT PRODUCT DESCRIPTION]", "brand": { "@type": "Brand", "name": "[BRAND NAME]" }, "offers": { "@type": "Offer", "price": "[PRICE]", "priceCurrency": "[CURRENCY]", "availability": "https://schema.org/[InStock/OutOfStock/PreOrder]" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "[RATING]", "reviewCount": "[REVIEW COUNT]" } }
Organization – For Homepage / About Page
Use this on your root domain or about page to help Google understand your entity.
Key fields:
- name
- url
- logo
- sameAs (links to social accounts)
- contactPoint (for support or sales)
Template :
{ "@context": "https://schema.org", "@type": "Organization", "name": "[COMPANY NAME]", "url": "[HOMEPAGE URL]", "logo": "[URL_TO_LOGO]", "sameAs": [ "[LINKEDIN URL]", "[TWITTER URL]", "[INSTAGRAM URL]" ], "contactPoint": { "@type": "ContactPoint", "telephone": "[SUPPORT PHONE]", "contactType": "Customer Support" } }
Can You Combine Schema Types? Yes — and Here’s How (Nested vs Parallel)
A common question:
Can you use multiple schema types on a single page?
Absolutely. And you should — as long as each type reflects visible, meaningful content.
🔁 Option 1: Multiple Parallel Schema Blocks
You can add separate <script type="application/ld+json"> blocks on the same page.
Example:
- One for the Organization
- One for a FAQPage
- One for a Product or SoftwareApplication
This is clean, modular, and easy to manage.
🧩 Option 2: Nested Schema — When Your Services Live Inside Your Business
Sometimes, it’s more relevant to embed one schema type inside another.
For example: you’re a Webflow agency (Organization) that also offers a website creation suite (SoftwareApplication).
You can use a nested structure like this :
{ "@context": "https://schema.org", "@type": "Organization", "name": "WebNova", "url": "https://www.webnova.agency", "logo": "https://www.webnova.agency/logo.webp", "sameAs": [ "https://linkedin.com/company/webnova", "https://instagram.com/webnova.agency" ], "address": { "@type": "PostalAddress", "streetAddress": "Innovation Street 12", "addressLocality": "Lisbon", "postalCode": "1000-001", "addressCountry": "PT" }, "description": "WebNova is a Webflow agency crafting high-performance websites for scale-ups.", "founder": { "@type": "Person", "name": "Alex Ribeiro" }, "foundingDate": "2020", "department": { "@type": "SoftwareApplication", "name": "WebNova SiteBuilder", "url": "https://www.webnova.agency/sitebuilder", "description": "A custom-built Webflow setup for launching beautiful, fast-loading websites without code.", "applicationCategory": "Web Application", "operatingSystem": "All", "offers": { "@type": "Offer", "price": "On request", "priceCurrency": "EUR" }, "screenshot": "https://www.webnova.agency/assets/sitebuilder-ui.webp", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "reviewCount": "27" } } }
4. Schema Markup Toolkit — How to Implement, Generate, and Validate Structured Data
You’ve got the theory and the templates.
Now let’s make it work — across your CMS, pages, and use cases.
🛠️ How to Implement Schema Markup
You can add schema markup to your site in a few different ways:
✅ Manual (recommended for full control)
- Paste the JSON-LD script directly into the <head> or just before </body> of your HTML page
- Works on any static or dynamic site
✅ CMS-based
- Webflow: use the custom code block in page settings or embed component

- WordPress: use plugins like Rank Math, Yoast, or Schema & Structured Data for WP
- Shopify / Notion / Ghost: inject via custom code if allowed, or use apps/plugins
✅ Google Tag Manager
- Create a Custom HTML tag
- Trigger it only on relevant pages (e.g., “Page URL contains /blog/”)
- Safer if you can’t access the source code directly
How to Test and Validate Schema Markup
Even if your code looks right, Google needs to recognize it and consider it valid.
Here are the best tools to validate:
🔍 Google Rich Results Test
- Checks whether your page is eligible for rich results
- Tells you if your schema passes Google’s standards
🧩 Schema.org Validator
- Community-maintained
- More flexible with formats beyond JSON-LD
🔍 Google Search Console
- Go to Enhancements
- See if Google has detected and indexed your structured data
- Fix warnings/errors directly from the dashboard
Best Schema Markup Generators
If you don’t want to code manually, these tools are your best allies:
🛠️ Google Markup Helper
- Google’s own tool (basic but beginner-friendly)
- You highlight page elements, and it generates the JSON-LD for you
🛠️ Schema.dev
- More developer-friendly
- Real-time validation and snippet editing
After implementation:
- Check Indexing → Pages to ensure schema pages are crawled
- Look under Enhancements for specific rich result reports (Articles, FAQs, Products, etc.)
- Set up email alerts for new errors or drop in eligible pages
5. Schema Best Practices & SEO Guidelines
Adding schema markup isn’t just about passing a validator.
To get rich results and build trust with AI-driven engines, your implementation needs to follow a few essential rules
✅ Best Practices to Follow
1. Keep it aligned with visible content
Schema should reflect what’s actually on the page.
If your product has 4.2 stars on the page, your aggregateRating should show 4.2 — not 5.
If there’s no FAQ block, don’t use FAQPage. Google may penalize inauthentic markup.
2. Use JSON-LD whenever possible
Google officially recommends it.
It’s cleaner, more flexible, and easier to update dynamically.
3. Be specific with types
Instead of just "Thing" or "CreativeWork", use:
- "SoftwareApplication"
- "BlogPosting"
- "LocalBusiness"
→ Specific types improve both SERP interpretation and AI parsing.
4. Leverage nested entities
Use nested objects (author, review, publisher, offers) to create richer context.
It builds semantic depth — which helps large language models “understand” your content’s credibility.
5. Always validate your code before publishing
Use Google’s Rich Results Test and Schema.org Validator to ensure your markup is clean, complete, and compliant.
⚠️ Common Mistakes to Avoid
Using irrelevant schema types
Example: tagging a pricing page as Article, or adding FAQPage without actual Q&A sections.
Skipping required fields
Even one missing property can break your eligibility for rich results. Start with the essentials, then enrich.
Using multiple conflicting types
Avoid adding both Product and SoftwareApplication on the same page unless they’re tightly scoped and separated (Google may get confused).
Next up: Let’s look ahead.
Structured data isn’t just about Google — it’s the foundation for AI-driven visibility.
6. Schema for AI & LLM Search (ChatGPT, Perplexity, Claude)
Search isn’t just Google anymore.
Tools like ChatGPT, Perplexity, and Claude are changing how people discover content.
They don’t crawl like Googlebot — they summarize, cite, and rank based on what they understand from your content and metadata.
That’s where schema markup gives you a serious edge.
🧠 Why Schema Helps With AI Visibility
LLMs need structure to:
- Understand the type of your content (product, article, review…)
- Identify the authority behind it (author, publisher, brand)
- Extract specific facts (ratings, dates, categories)
When your schema is clean and complete, you make it easier for AI models to:
- Summarize your content correctly
- Cite your brand or URL as a trusted source
- Prefer your page over less-structured competitors
Examples Where Schema Makes a Difference
Article
Gets pulled into summaries for questions
FAQPage
Surfaces in direct Q&A responses
SoftwareApplication with rating
Boosts product recommendation results
Review with real author
Adds credibility to comparisons or alternatives
Organization
Reinforces authority in brand-level responses
Best Practices for AI Readability
- Use nested schema for context: author, publisher, brand, review
- Avoid ambiguity: use specific schema types and real-world values
- Keep structured data up to date: especially ratings, dates, and offers
- Combine schema with clear HTML content: AI still reads the full page, not just your JSON-LD
🛠 Bonus: Track Your Brand Mentions in LLMs
If you’re investing in schema, it’s worth knowing whether you’re actually being cited.
You can try tools like: zeroclick.app
- check if your brand appears in LLM responses (ChatGPT, Perplexity, Claude)
- Monitor increases in branded searches (Google Search Console)
- Compare visibility vs competitors based on real user prompts
Structured data is now more than SEO.
It’s a visibility layer for AI-powered search.
7. Final Checklist & Action Plan
You’ve made it through.
Now let’s make sure you actually implement — without missing anything important.
Here’s your schema markup launch checklist 👇
Step-by-Step Checklist
Understand the Basics
- You know the difference between schema markup and rich results
- You understand how schema helps Google and AI models interpret your content
Choose the Right Schema Type
- For blog posts → Article or BlogPosting
- For product/tools pages → SoftwareApplication or Product
- For Q&A content → FAQPage
- For testimonials → Review + AggregateRating
- For your homepage → Organization
Implement the Markup
- Use JSON-LD format (recommended)
- Add it manually, via CMS plugin, or through Google Tag Manager
- Keep schema aligned with visible content on the page
Validate & Monitor
- Run your page through Google Rich Results Test
- Double-check with Schema.org Validator
- Monitor enhancements in Google Search Console
Boost AI Visibility
- Use nested objects for context (e.g., author, publisher, review)
- Keep your data fresh (ratings, dates, prices)
- Track your brand’s presence in LLMs like ChatGPT, Claude, Perplexity
Schema markup isn’t just technical SEO.
It’s the foundation for discoverability in search and AI.
Done right, it gives your content context, credibility, and visibility — exactly where it matters.
Author : Antoine Payre - Co-founder of Zeroclick.app