Schema Markup for Medspas: What Search Engines Can Use
Med spa schema markup guidance with a five-part truth map, valid JSON-LD examples, validator evidence, and current Google eligibility limits for clinics.
Reviewed by Abdullah Wasim. Our team analyzed current Google Search Central, Schema.org, Bing Webmaster, HHS, and search-result sources on August 6, 2026.
We built the five-layer truth map and 40-control release checklist as original editorial tools, not Google or Bing ranking factors.
We tested both fictional example.com JSON-LD samples in the Schema Markup Validator and Google Rich Results Test. A passing test does not verify a clinic, guarantee indexing, or promise a search feature.
This is marketing education, not clinical, legal, privacy, advertising, security, or compliance advice. The featured artwork was generated for TheClinify with OpenAI ImageGen and contains no clinic, patient, or vendor assets.

- Use the most specific truthful clinic type, not the type that sounds most impressive.
- Treat visible clinic facts as the source of truth; JSON-LD should mirror them, not expand them.
- Test all Schema.org vocabulary in the Schema Markup Validator, then check Google feature eligibility in the Rich Results Test.
- Do not expect self-serving review stars, FAQ rich results, local rankings, or AI citations from valid markup alone.
What is med spa schema markup?
Med spa schema markup is structured data that labels a clinic's public facts in a machine-readable format. JSON-LD is the script format most teams use because Google lists it as recommended. The code belongs on the page it describes and must agree with what a visitor can see.
Schema reduces ambiguity. It can identify a business, physical location, article, breadcrumb trail, or other supported entity. Google's general structured data guidelines require relevant, current, visible information and warn that valid markup can still be ineligible when it is misleading or incomplete.
This guide supports the med spa website optimization service. The broader AI search checklist for medspas covers Google's separate guidance that there is no special AI schema.
Which schema type should a medspa use?
Choose the most specific type that the real operation can support. Google tells publishers to use the most specific applicable LocalBusiness subtype and to describe each physical location as its own LocalBusiness. If more than one type is genuinely accurate, Google accepts an array of types rather than the unsupported additionalType property.
A medspa is not one uniform business category. For example, some clinics operate for medical purposes under licensed healthcare oversight. Others are day spas or beauty and wellness businesses. Schema.org defines MedicalBusiness as a business for medical purposes, while MedicalClinic describes a facility devoted to diagnosis or healthcare. Use either only when the clinic's real role and visible page support it.
The type does not grant a license, credential, or regulatory status. Schema.org's health and medical vocabulary is web publishing markup, not clinical data exchange. Ask the clinic owner and qualified counsel to confirm the public description when the business model sits between medical and nonmedical services.
| Candidate type | Use it when | Do not use it to imply |
|---|---|---|
| MedicalBusiness | The business genuinely operates for medical purposes and the website says so. | A license, specialty, clinical outcome, or physician ownership that is not documented. |
| MedicalClinic | The location is accurately described as a healthcare facility devoted to diagnosis or care. | That every aesthetic studio or wellness business is a medical facility. |
| DaySpa | The location primarily provides day-spa services and that is how the business presents itself. | Medical oversight or clinical services. |
| HealthAndBeautyBusiness | The operation fits the broader health and beauty category, but no narrower subtype is accurate. | A medical role. |
| LocalBusiness | A physical local business is clear, but a narrower supported subtype remains uncertain. | Extra specificity the clinic cannot verify. |
| Organization | The entity is the parent brand or publisher rather than one public-facing location. | Location facts for several branches collapsed into one address. |
How should clinic facts become JSON-LD?
The Clinic Schema Truth Map is a five-layer release control for identity, location, services and people, page purpose, and validation. The visible page is the first publication surface. Structured data mirrors that approved record, and the validator checks the code after the factual review is complete.
The map below prevents a common failure: syntactically valid code that describes stale hours, the wrong branch, an absent provider, or a review that users cannot see. A green validator result cannot detect every quality problem. Google says automated tests catch technical errors, while relevance and visibility still require human review.
- 01
Identity
- Source of truth
- Approved business name, operating model, and canonical website.
- Markup output
- One stable Organization or LocalBusiness entity with an accurate type and URL.
- Release blocker
- Keyword-stuffed name, invented medical status, or duplicate entity IDs.
- 02
Location
- Source of truth
- Current address, phone, hours, map coordinates, and location page.
- Markup output
- One location node per physical branch with matching public facts.
- Release blocker
- Shared address across branches, old hours, or a virtual office presented as a clinic.
- 03
Offer and people
- Source of truth
- Current service menu, provider roles, approved bios, and booking routes.
- Markup output
- Only supported services and people, linked to the clinic entity where useful.
- Release blocker
- Unverified credentials, absent treatment, or provider assigned to the wrong location.
- 04
Page purpose
- Source of truth
- The page H1, main content, canonical URL, and visible navigation.
- Markup output
- BlogPosting, BreadcrumbList, or another type that matches the page's main job.
- Release blocker
- Markup for content hidden from visitors or unrelated to the page.
- 05
Validation
- Source of truth
- Live HTML, Schema.org vocabulary, Google feature rules, and search-console reports.
- Markup output
- Valid syntax, supported properties, eligible feature checks, and saved evidence.
- Release blocker
- Treating a green test as proof of indexing, ranking, or a rich result.
This is a publishing control, not a ranking score. A layer passes only when the visible evidence, structured record, and live-page test agree.
What belongs in the core clinic record?
Start with the facts a visitor needs to identify and reach one location: name, canonical URL, image, phone, postal address, hours, and coordinates when verified. Google's LocalBusiness documentation lists name and address as required for its local business feature and recommends additional properties that improve the record.
Give the entity a stable @id that does not change with a redesign. Use the same identifier when an article, provider page, or service record refers back to the clinic. For a multi-location group, each branch needs a separate location page and a separate entity. The parent brand can remain an Organization.
The sample below is deliberately fictional. Every example.com URL, phone number, address, hour, image, and coordinate must be replaced with the clinic's approved public record. Delete any property the clinic cannot verify instead of leaving a plausible placeholder in production.
This example demonstrates valid structure, not a default type for every medspa. Confirm the business category before copying it.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "MedicalBusiness",
"@id": "https://example.com/#clinic",
"name": "Example Aesthetic Clinic",
"url": "https://example.com/",
"image": "https://example.com/images/clinic-exterior.jpg",
"telephone": "+1-512-555-0100",
"priceRange": "$$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example Avenue",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 30.2672,
"longitude": -97.7431
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"https://schema.org/Monday",
"https://schema.org/Tuesday",
"https://schema.org/Wednesday",
"https://schema.org/Thursday",
"https://schema.org/Friday"
],
"opens": "09:00",
"closes": "17:00"
}
]
}
</script>Test the completed record in the Schema Markup Validator and the Google Rich Results Test. A passing result does not verify the clinic facts.
Which markup belongs on each clinic page?
Match the main schema type to the page's main job. The homepage or primary location page can establish the business entity. A branch page describes one location. A provider page can identify a real person, while an editorial guide can use BlogPosting and its visible breadcrumb trail can use BreadcrumbList.
Service is a Schema.org type, but Google does not list a general Service rich result. Use it only when it helps describe visible service information in a maintainable graph. Do not add unsupported types simply to make the graph larger. Google's guidance says the main type should reflect the page's main focus.
Structured data does not replace the service explanation, provider context, consultation path, or limitations. The med spa website optimization checklist covers those surrounding controls.
| Page | Primary markup candidate | Visible evidence required | Google feature note |
|---|---|---|---|
| Homepage or main location | Most accurate LocalBusiness subtype plus Organization fields | Name, category, address, phone, hours, image, and canonical URL. | Local business eligibility depends on supported properties and policies. |
| Additional location | A separate LocalBusiness entity | Unique branch address, phone, hours, page URL, and services where they differ. | Do not collapse several branches into one location node. |
| Provider profile | Person, or Physician only when accurate | Real name, role, credentials, bio, location, and services. | Markup cannot establish a credential that the page does not prove. |
| Treatment or service page | WebPage and optional Service | Specific service, provider context, location, consultation route, and limits. | There is no general Google Service rich result. |
| Blog article | BlogPosting | Headline, dates, byline, article image, and body content. | Google says Article markup can clarify the headline, image, dates, and author. |
| Visible breadcrumb trail | BreadcrumbList | A real hierarchy that helps users move through the site. | Google may use breadcrumb markup to categorize a result. |
How do BlogPosting and BreadcrumbList work together?
A clinic article can use BlogPosting for the editorial item and BreadcrumbList for its place in the site. Google's Article documentation recommends author, date, headline, and representative image properties. Its breadcrumb guide requires ordered ListItem entries.
Keep the visible byline and dates aligned with the JSON-LD. If the author is an organization, say so on the page. Do not invent a clinician reviewer, certification, or author profile to satisfy a plugin warning. Truthful Organization authorship is better than a fabricated Person entity.
This second sample uses a small @graph so the article can reference the clinic publisher. It also uses three image aspect ratios, which Google recommends for best Article image coverage. The names and URLs remain fictional placeholders.
Use this pattern only for a visible article with a real byline, dates, image, canonical page, and breadcrumb trail.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "MedicalBusiness",
"@id": "https://example.com/#clinic",
"name": "Example Aesthetic Clinic",
"url": "https://example.com/"
},
{
"@type": "BlogPosting",
"@id": "https://example.com/blog/skin-consultation-guide#article",
"headline": "What to Ask During a Skin Consultation",
"datePublished": "2026-08-01T09:00:00-05:00",
"dateModified": "2026-08-06T09:00:00-05:00",
"image": [
"https://example.com/images/consultation-guide-16x9.jpg",
"https://example.com/images/consultation-guide-4x3.jpg",
"https://example.com/images/consultation-guide-1x1.jpg"
],
"author": {
"@type": "Organization",
"name": "Example Aesthetic Clinic",
"url": "https://example.com/about"
},
"publisher": {
"@id": "https://example.com/#clinic"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/blog/skin-consultation-guide"
}
},
{
"@type": "BreadcrumbList",
"@id": "https://example.com/blog/skin-consultation-guide#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://example.com/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "Skin Consultation Guide"
}
]
}
]
}
</script>Keep dateModified honest. A design rebuild or automated timestamp should not pretend that the article received a substantive editorial update.
Which schema mistakes create the most risk?
Do not add AggregateRating to the clinic's own site expecting stars. Google's current review snippet rules make LocalBusiness and Organization pages ineligible for self-serving review stars, including reviews embedded through a third-party widget. Visible testimonials may still help people, but the markup does not create that Google feature.
Do not promise FAQ dropdowns. Google's Search documentation updates record that FAQ rich results stopped appearing on May 7, 2026, and the feature documentation was removed in June. Visible FAQs can still answer real questions, and Schema.org FAQPage remains a vocabulary type, but adding it for a Google rich-result promise is outdated advice.
Keep patient data out of public markup. HHS guidance explains that protected health information can include identifying information tied to a person's health, care, or payment. JSON-LD on a public page is public website content, so do not place patient names, treatment histories, appointment details, or private records in it. Ask privacy counsel about the clinic's specific duties.
| Mistake | Why it fails | Safer action |
|---|---|---|
| Adding every possible type | The graph becomes harder to verify and can drift from the page. | Use the smallest set that accurately describes the main page content. |
| Copying review totals from Google or Facebook | Google bars self-serving Organization and LocalBusiness review stars. | Show lawful, approved social proof visibly without promising review markup eligibility. |
| Marking hidden or absent FAQs | Google requires marked content to be visible, and its FAQ rich result is retired. | Publish useful visible questions only when readers need them. |
| Using MedicalClinic for prestige | The type can misrepresent a spa or wellness business as a healthcare facility. | Choose the type that matches the real operation and public description. |
| Publishing patient details in JSON-LD | The code is public and can expose identifying health information. | Keep the record limited to approved business, location, service, article, and provider facts. |
| Leaving generator placeholders | Plausible sample facts can become false production claims. | Use an owner-approved fact sheet and block launch until every placeholder is removed. |
How should a medspa validate schema markup?
Use two tests because they answer different questions. The Schema Markup Validator checks Schema.org vocabulary across all extracted items. Google's Rich Results Test checks which supported Google search features the code may qualify for. A type can be valid Schema.org markup without producing a Google rich result. Test code before release, then test the public URL after deployment. Fix syntax and critical property errors, but review warnings in context rather than adding facts that do not apply. Save the result, test date, page URL, and code version so the clinic can compare the next update. The evidence below comes from the two fictional examples in this article, tested on August 6, 2026. It proves that the samples parse in the named tools on that date. It does not prove that the example.com records are real, that Google indexed a page, or that any search feature will appear.
Bing also processes Schema.org JSON-LD and says its crawlers compare annotated data with the surrounding page. After launch, use Bing URL Inspection's markup card and Google Search Console URL Inspection on the real canonical. The validator is the start of release evidence, not the end.


| Gate | Tool or review | Pass evidence | What it cannot prove |
|---|---|---|---|
| Vocabulary | Schema Markup Validator | Expected types and properties parse without errors. | Google feature support, factual accuracy, indexing, or ranking. |
| Google feature eligibility | Rich Results Test | Supported items are valid or carry understood warnings. | That a rich result will appear. |
| Visible-content match | Human page comparison | Every marked fact is current, relevant, and visible on the page. | Search-engine selection. |
| Live rendering | View source, crawler fetch, and URL Inspection | The final canonical serves the intended JSON-LD without access blocks. | Future rankings, clicks, leads, or bookings. |
| Ongoing health | Search Console and Bing Webmaster reports | No new unparsable or markup issues after recrawl. | That no business fact has changed outside the website. |
How should a clinic deploy and maintain the markup?
For example, a WordPress site may generate schema through its theme, SEO plugin, local plugin, page builder, and custom code. Check every source before adding another block. In a server-rendered application, generate JSON-LD from the same record that renders the page. Either approach can work; the release fails when two systems publish conflicting entities.
Recheck markup whenever a location, phone number, opening hour, provider, service, article date, canonical, or image changes. The medspa redesign checklist covers migration controls that protect structured data during a relaunch.
Download the 40-control medspa schema release checklist for page-by-page ownership and evidence. The checklist is a project-control method created for this guide. It is not a search-engine metric, prediction, or guarantee.
What should a medspa do next?
Start with one high-value canonical: the homepage or a true location page. Confirm the clinic type, record the public facts, publish the smallest accurate entity, and run both validators. Then expand only where a provider, article, breadcrumb, or service page has enough visible content to support its own record.
Last verified August 6, 2026. The editorial policy explains source review, contact for corrections, and update dates. The About page identifies the publisher and its scope.
FAQ
Does every medspa need MedicalClinic schema?
No. Use MedicalClinic only when the operation and visible website accurately describe a healthcare facility devoted to diagnosis or care. A medical-purpose practice may fit MedicalBusiness, while a nonmedical spa may fit DaySpa or HealthAndBeautyBusiness. When uncertain, use a broader truthful type and confirm the business description.
Does schema markup improve medspa rankings?
Google says structured data can help it understand a page and can make supported content eligible for rich results, but it does not guarantee display or ranking. Local results still depend on several systems and real-world signals. Treat valid markup as technical clarity, not a ranking promise.
Can a medspa use review schema for its Google reviews?
Do not expect self-serving review stars. Google says LocalBusiness and Organization pages controlled by the reviewed entity are ineligible for the review star feature, including third-party review widgets. Keep visible testimonials truthful and properly approved, but do not present AggregateRating markup as a shortcut to stars.
Should a medspa add FAQPage schema?
Only if the page has useful, visible FAQs and the team has a non-Google reason to maintain the vocabulary. Google stopped showing FAQ rich results on May 7, 2026. FAQPage markup should not be sold as a way to earn Google dropdowns or guaranteed AI citations.
Is your clinic schema accurate on the live site?
The free Clinic Pulse Check reviews your canonical pages, visible clinic facts, JSON-LD, internal links, and booking path, then identifies three fixes worth testing first.
Book a Clinic Pulse Check