Schema Markup 101
What It Is · Why It Matters · How to Use It
The hidden language that tells Google and AI exactly what your business is, what it offers, and why it belongs in search results — explained in plain English.
Any business that wants to be found and understood online
Schema markup matters for every type of business with a website — not just large brands. If you show up in search results, you need schema.
Your site's machine-readable business communication layer
Schema markup is structured code added to your website that helps search engines and AI tools understand what your content means — not just what it says. Think of it as digital infrastructure: organized, machine-readable data that tells Google, AI assistants, and voice search exactly who you are and what you do.
It uses a format called JSON-LD and a vocabulary from Schema.org — a shared standard backed by Google, Microsoft, Yahoo, and Yandex. It lives in your page's HTML code, completely invisible to visitors, and speaks only to machines.
Google's Official Position
Schema markup is not a direct ranking factor. Google has repeatedly stated it helps search engines better understand content — and that it may improve visibility, eligibility for rich results, click-through rates, and contextual understanding.
Schema also does not replace good SEO. It works best alongside strong website structure, quality content, technical SEO, local SEO, accessibility, and performance optimization.
Think of It As
Digital infrastructure for your brand
Schema is your business data, organized for machines. It's how modern search engines and AI systems build a verified, trustworthy picture of who you are — before a single human reads your page.
Simple Analogy
Your page vs. what Google reads
Your page says "Dr. Sarah Williams, 9am–5pm, 555-0100." Schema tells Google: this is a medical practice, this is the doctor's name, these are the hours, this is the phone — structured facts, no guessing required.
AI & LLM Discoverability
Increasingly critical for AI search
Schema is now a key signal for AI-generated search summaries, LLM interpretation, entity understanding, knowledge graph connections, voice search, and AI assistants like Siri, Alexa, and Google Assistant.
When AI tools crawl your site, structured data is far more reliable than inferred plain text — and the difference shows up directly in how accurately your business gets described.
How schema markup may support your online presence
Schema doesn't change your ranking directly — but it gives search engines and AI systems a much clearer, more trustworthy picture of your business. Here's what that can mean in practice.
Search Result Example: Without Schema vs. With Schema
Without Schema
Riverside Dental Studio
www.riversidedental.com
Welcome to Riverside Dental Studio. We offer a wide range of dental services for the whole family. Contact us today to schedule your appointment...
Generic listing — no extra detail, no ratings, no structure
With Schema
Riverside Dental Studio
www.riversidedental.com
Family dental care in Springfield, IL. Accepting new patients.
★★★★★ 4.9 (142 reviews)
Mon–Fri: 9am–5pm · (555) 010-0100
Richer listing — schema makes this eligible to appear this way; Google decides what to show
Without Schema
Search engines make their best guess
Search engines infer your business type, services, and location from plain text. This may result in generic listings, missed eligibility for enhanced features, and AI tools that describe your business inconsistently.
With Schema
Search engines work with verified facts
Your business type, services, hours, location, and credentials are communicated as structured, machine-readable data — helping search engines and AI present a more complete, accurate picture of your business.
Rich Result Eligibility
May support enhanced listing formats
Valid schema may make your listing eligible for enhanced formats like star ratings, FAQ dropdowns, and event details. Google ultimately decides whether to display them — schema is the eligibility requirement, not a guarantee.
AI Search & Voice
Structured data AI tools can actually use
AI-generated search summaries, LLMs, voice assistants, and knowledge graph systems all rely on structured data to describe businesses accurately. Schema is the foundation that makes your business machine-readable in these contexts.
Important: Healthcare, Legal & Regulated Industries
If your business operates in healthcare, wellness, legal services, or other regulated industries, schema implementation requires extra care. Potential compliance issues include:
- Improper medical schema — Using schema types that make clinical claims or imply diagnostic capabilities can create regulatory concerns under FTC, FDA, or HIPAA guidelines.
- Review schema accuracy — Marking up reviews that are inaccurate, incentivized without disclosure, or that make unsubstantiated health claims may violate FTC rules and Google's policies.
- Inaccurate structured claims — Schema that overstates credentials, certifications, or treatment outcomes can create legal liability. Always have regulated-industry schema reviewed for compliance before publishing.
Common schema types & when to use them
Schema.org has 800+ types — you only need the ones relevant to your business. Here are the most impactful:
LocalBusiness
Name, address, phone, hours, and business type. Always use the most specific subtype — "Dentist" not "LocalBusiness."
→ Homepage, Contact pageFAQPage
Marks up Q&A content. Eligible for expandable dropdowns in Google and feeds directly into AI Overview answer systems.
→ FAQ pages, Service pagesService
Describes each specific offering — name, description, provider, area served, and price range. One block per service page.
→ Each individual service pageOrganization + sameAs
Links your website to Google Business, Facebook, and LinkedIn — the entity trust signal AI systems rely on most.
→ Homepage (sitewide)AggregateRating
Marks up your average rating and review count. Enables star ratings to appear visually in Google search results.
→ Homepage, Review pagesArticle / BlogPosting
Identifies blog posts with author, publish date, and headline. Improves indexing accuracy and AI content attribution.
→ All blog postsPerson
For team members, authors, and professionals. Links credentials and social profiles to your content for E-E-A-T signals.
→ About, Team, Author pagesEvent
Marks up events with date, time, and location. Eligible for Google event rich results and calendar integrations.
→ Event listing pagesProduct / Offer
Marks up products with price, availability, and SKU. Enables shopping rich results and product knowledge panels.
→ Product pagesWhy schema type specificity matters — and how to choose correctly
Schema.org works like a family tree. Every type has a parent (more general) and may have children (more specific). The more specific you go, the more Google understands about your business — and the more features become available to you.
Reason 01
Unlocks different data properties
Each schema type has its own set of available properties. A Dentist type lets you add medicalSpecialty and availableService — properties that simply don't exist on a generic LocalBusiness block. More specific type = more data slots = more signals Google can use.
Reason 02
Changes rich result eligibility
Some enhanced search features are only available to specific schema types. Restaurant schema may support reservation and menu features. Event schema may support date/time display. A generic LocalBusiness doesn't qualify for those child-type features — even if the content is identical.
Reason 03
Affects knowledge graph placement
Google's knowledge graph categorizes businesses by type. A Dentist gets placed within Google's understanding of healthcare providers in your area. An Organization gets placed nowhere specific — which matters significantly for AI search and voice queries.
Reason 04
Types can be stacked
You can declare multiple types simultaneously. Many businesses benefit from pairing a specific subtype with LocalBusiness to get both the subtype's specific properties AND the full local business data set — hours, address, phone, service area — all in one block.
Example: Stacking Types
Generic — Weak
"@type": "LocalBusiness",
"name": "Smile Dental Studio"
}
Google knows it's a business. That's it.
Specific + Stacked — Strong
"@type": ["Dentist", "LocalBusiness"],
"name": "Smile Dental Studio",
"medicalSpecialty": "Dentistry",
"priceRange": "$$"
}
Google knows the specialty, the category, and the price range — properties that don't exist on LocalBusiness alone.
Common Business Types — Generic vs. Specific
| Business | Too Generic | Use This Instead |
|---|---|---|
| Dental practice | LocalBusiness |
Dentist |
| Law firm / attorney | Organization |
LegalService or Attorney |
| Restaurant | LocalBusiness |
Restaurant |
| Coffee shop | LocalBusiness |
CafeOrCoffeeShop |
| Doctor / physician | LocalBusiness |
Physician |
| Plumber | LocalBusiness |
Plumber |
| Electrician | LocalBusiness |
Electrician |
| HVAC company | LocalBusiness |
HVACBusiness |
| Roofer | LocalBusiness |
RoofingContractor |
| Accountant | LocalBusiness |
AccountingService |
| Insurance agency | LocalBusiness |
InsuranceAgency |
| Hair salon | LocalBusiness |
HairSalon |
| Gym / fitness studio | LocalBusiness |
HealthClub |
| Veterinarian | LocalBusiness |
VeterinaryCare |
| Real estate agency | Organization |
RealEstateAgent |
| Marketing / consulting agency | Organization |
ProfessionalService |
| Nonprofit organization | Organization |
NGO |
The Practical Rule
Go to schema.org and search your business type. Look at what properties are available for that specific type vs. its parent. If the child type has properties that describe your business better — use it, and stack it with LocalBusiness to keep all your local data.
If you can't find a specific type that fits, a thorough LocalBusiness block with all properties completed is still far more useful than a bare Organization.
Where schema lives on your page — and how to get it there
Knowing what schema to write is only half the job. Knowing exactly where to place it and how to deploy it — across different platforms and page types — is what makes it actually work.
Where on the Page Does Schema Go?
Inside the
tagPlacing JSON-LD inside your page's section is Google's recommended approach. It's parsed early, before the page body loads, and reduces any risk of rendering issues.
Best for: sitewide schema (Organization, LocalBusiness), page-level schema added via theme or plugin.
Before the closing tag
Google also accepts JSON-LD placed at the bottom of the page body. This is common when adding schema via page builder code modules (like Divi), since builders often inject content into the body rather than the head.
Best for: page-specific schema added via Divi Code Modules, Webflow embeds, or Squarespace code injection.
Important: Google does not require schema to be in the . Either location works — what matters is that the JSON-LD is valid, present on the page when Google crawls it, and accurately reflects the visible content.
Sitewide vs. Per-Page Schema
Sitewide Schema
Some schema types describe your business as a whole and should appear on every page — typically added once to your theme's header so it loads globally.
- Organization — your brand identity
- LocalBusiness — your location & hours
- WebSite — site-level info & search
Per-Page Schema
Other schema types are specific to the content of one page and should only appear on that page — not sitewide.
- Service — on each service page only
- FAQPage — only where Q&A exists
- Article — on each blog post only
- Event — on each event page only
How to Deploy on Your Platform
Every platform handles schema deployment differently. Here's exactly where to add it on the most common platforms:
WordPress
Sitewide schema — Go to Appearance → Theme File Editor → header.php and paste your JSON-LD block before the closing tag. Alternatively, use a plugin like WPCode (free) to inject code into the header sitewide without editing theme files directly.
Per-page schema — In Divi, add a Full Width Code module to the page and paste your JSON-LD there. For non-Divi pages, use WPCode's "Insert on Specific Page" feature, or add it directly in the page's custom header code field (if your theme supports it).
Plugin-assisted — Schema Pro, Rank Math, or Yoast handle some types via their UI. Use these for types they support, then add custom JSON-LD for types they don't cover.
Shopify
Sitewide schema — Go to Online Store → Themes → Edit Code → theme.liquid. Add your JSON-LD before the closing tag.
Per-page schema — Edit the specific template file for that page type (e.g., page.liquid or product.liquid) and add the JSON-LD block.
⚠ Shopify auto-generates some schema (especially Product schema) that cannot be easily overridden. Editing Liquid templates requires developer access and may be affected by theme updates.
Squarespace
Sitewide schema — Go to Website → Pages → scroll to the bottom and click Website Tools → Code Injection → Header. Paste your JSON-LD here and it will appear on every page.
Per-page schema — Open the page, click the gear icon → Advanced → Page Header Code Injection. Paste your JSON-LD here.
⚠ Code injection requires a Business plan or higher. Squarespace's architecture limits how deeply schema can be customized — complex strategies may hit platform restrictions.
Wix
Sitewide schema — In the Wix Editor, go to Settings → Custom Code → Add Code → Head. Paste your JSON-LD and set it to load on All Pages.
Per-page schema — In Settings → Custom Code, set the code to load on a Specific Page only and select the target page.
⚠ Custom code requires a paid Wix plan. Wix also auto-generates some structured data — check for conflicts using Google's Rich Results Test after adding custom schema.
Webflow
Sitewide schema — Go to Project Settings → Custom Code → Head Code. Paste your JSON-LD here and it will appear on every page sitewide.
Per-page schema — Open the page in the Designer → Page Settings (gear icon) → Custom Code → Inside
tag. Paste your JSON-LD here for that page only.Inline on canvas — Drag an Embed element onto the page and paste your JSON-LD directly. This is the most visual approach and works well for per-section schema.
✓ Webflow gives solid control over schema placement. No significant platform-level restrictions on JSON-LD customization.
Common Deployment Mistakes to Avoid
Adding sitewide schema per page
Pasting your Organization or LocalBusiness schema into every individual page via a code module creates duplicate blocks. Add these once — in your theme header or via your plugin's global settings.
Schema that doesn't match visible content
Every claim in your schema must be verifiable from what's visible on that page. If your FAQPage schema references questions that aren't on the page, or your review schema shows ratings not displayed to users, Google may flag it as a policy violation.
Forgetting to validate after deployment
Always run your page through Google's Rich Results Test immediately after adding or editing schema. A missing comma, unclosed bracket, or wrong property name creates a silent failure that won't be obvious until you test it.
Using the same schema on every page type
Your homepage, service pages, blog posts, and FAQ pages each need different schema types. A single generic block applied to all pages misses the per-page specificity that makes schema valuable.
Conflicting schema from multiple sources
If your SEO plugin, your theme, and a custom code block are all generating Organization schema, Google sees three competing sources for the same type. Audit with the Rich Results Test and ensure each type appears only once per page.
Never updating schema after changes
Schema isn't set-it-and-forget-it. When your hours, address, services, or staff change — your schema needs to change too. Stale schema causes search engines and AI tools to present outdated information to potential customers.
Step-by-step implementation guide
The gold standard is JSON-LD — a code block placed in your page's
section. It doesn't affect anything your visitors see.Identify Which Pages Need Schema
Start with your homepage (Organization + LocalBusiness), then service pages (Service), blog posts (Article), and FAQ content (FAQPage). Prioritize highest impact pages first.
Choose the Most Specific Schema Type
A dental office uses "Dentist," not "LocalBusiness." A law firm uses "LegalService," not "Organization." More specific types unlock more features and give Google higher-confidence data.
Write or Generate Your JSON-LD
Use a free generator tool (like Merkle's Schema Generator), your SEO plugin's advanced settings, or write it manually. Wrap it in a tag.
Add It to Your Pages
WordPress: Schema Pro plugin or add to your theme's header.php · Webflow: Custom embed component · Squarespace: Code injection · Shopify: Edit theme Liquid templates
Validate Every Schema Block
Run your URL through Google's Rich Results Test AND Schema.org Validator. Fix all errors. Both are free and take under a minute. Invalid schema does nothing.
Monitor in Google Search Console
Check the Enhancements section in Search Console monthly. Google flags schema errors found during crawling and shows which pages are eligible for rich results.
Copy-and-use schema templates
Two of the highest-impact schema blocks for any business website. Customize with your real information and paste into your page HTML.
Example 1 — FAQ Schema
Example 2 — Organization with sameAs
Your schema implementation checklist
Check off each item as you complete it — these are the schema foundations every business website should have.
Tools to build, test & monitor schema
These tools cover every stage — from generating schema to validating it across every major search engine.
| Tool | What It Does | Cost |
|---|---|---|
| Google Rich Results Testsearch.google.com/test/rich-results | Tests whether your page meets Google's eligibility requirements for rich results. Shows all schema errors and missing required properties. | Free |
| Schema.org Validatorvalidator.schema.org | Validates JSON-LD against Schema.org specifications. More thorough than Google's tool — useful for catching structural issues Google's test may miss. | Free |
| Google Search ConsoleEnhancements section | Shows schema errors across your entire site after Google crawls it. Essential for ongoing monitoring — catches errors that develop after plugin updates or page edits. | Free |
| Bing Webmaster Toolsbing.com/webmasters | Validates and monitors structured data for Bing and Microsoft search products, including Copilot. Important for full search engine coverage beyond Google. | Free |
| TechnicalSEO.com Schema Generatortechnicalseo.com/tools/schema-markup-generator | Generates clean JSON-LD for common schema types by filling out a simple form. One of the most comprehensive free generators available — great for non-developers. | Free |
| Schema Pro (WordPress)wpschema.com | Adds a wide range of schema types beyond what Yoast covers. GUI-based — no coding required. Useful for WordPress sites that need service and local schema at scale. | Paid |
| Screaming Frog SEO Spiderscreamingfrog.co.uk | Crawls your entire site and extracts all structured data. Best for auditing schema across large sites or identifying where schema is missing entirely. | Paid |
Frequently asked questions
- AI-generated search summaries (Google AI Overviews, Perplexity, etc.)
- LLM interpretation of your business type and offerings
- Entity understanding and knowledge graph connections
- Voice search results via Google Assistant, Siri, and Alexa
- AI assistant responses to "near me" and service-specific queries
Dentist, LegalService, or Restaurant) is one of the highest-value schema implementations for businesses with a physical location or defined service area.
- WordPress: Use a plugin like Schema Pro or WPCode, or add JSON-LD directly to your theme's header.php. Divi users can add it via a Code Module.
- Shopify: Edit your theme's Liquid templates, or use an app from the Shopify App Store.
- Squarespace: Use Code Injection in Page Settings to add JSON-LD to individual pages.
- Wix: Use the Wix SEO settings or add custom code via Wix's Developer Tools (requires a paid plan).
- Webflow: Add via Custom Code in page settings or as an Embed component on the canvas.
- Google Rich Results Test (search.google.com/test/rich-results) — Tests eligibility and shows all errors on a given page.
- Schema.org Validator (validator.schema.org) — Validates your JSON-LD against Schema.org specs. Catches issues Google's test may miss.
- Google Search Console Enhancements — Monitors your entire site after Google crawls it and flags errors that develop over time.
- Improper medical schema — Using schema types or descriptions that make clinical claims, imply diagnostic capabilities, or overstate credentials can raise concerns under FTC, FDA, or HIPAA guidelines.
- Inaccurate review schema — Marking up reviews that are incentivized without disclosure, fabricated, or that make unsubstantiated health claims may violate FTC rules and Google's policies.
- Overstated credentials or claims — Schema that inflates certifications, treatment outcomes, or professional qualifications can create legal liability separate from any SEO consequence.
AggregateRating or Review schema on content that doesn't reflect genuine reviews — or manipulating ratings to appear higher than they are — can result in a manual action that removes your rich result eligibility entirely. Accuracy in review schema is both an ethical and a technical requirement.
sameAs. (3) Change your business type from the generic default to the most specific subtype available. These close the most common gaps immediately. Then work through the full implementation checklist on this page.



