FirstInChatFirstInChatGuides

Schema markup for med spas: a copy-and-paste guide

By the FirstInChat team

Schema markup sounds technical. For a med spa it is a short block of code that tells search engines — and any tool that reads the open web — the plain facts about your clinic: name, address, phone, hours, and the treatments you actually offer.

You paste it once. Machines can read it without guessing from messy website text.

This guide is for owners and whoever updates your site. It uses clients / guests voice (not "patients," unless your regulated wording requires otherwise). It is not medical advice and makes no clinical outcome claims. Check your state advertising rules for medical / aesthetic services before you publish claims about results, reviews, or treatments. We are not giving legal advice.

Honest product note: FirstInChat's free audit today is a website readiness check plus a Google Gemini snapshot from built-in knowledge only (ungrounded: no live search; may be out of date; not AI Overviews or AI Mode). Grounded Gemini + Google Search comes later, with no date. We do not claim ChatGPT or Perplexity product results. Nobody can promise that any AI assistant will name your clinic.

Dental twin: Dentist schema markup. For the wider med spa budget question, see AI search vs local SEO for med spas.

What schema markup is (for a non-technical owner)

Schema is a shared vocabulary (schema.org) that websites use to label facts. The usual format on a page is JSON-LD: a small script tag that holds those facts in a structured list.

You still need a clear website. Schema does not replace good treatment pages, a tidy Google Business Profile, or real reviews. It reduces ambiguity when a tool tries to understand who you are and where you practice.

Think of it like writing your business card in a format computers already know how to file.

Why it helps machines understand your clinic

When someone asks an AI assistant for a med spa in your city, the system has to pull from sources it can parse. Clean, consistent facts (same name, same phone, same address across your site and listings) make you easier to identify.

Schema is one way to state those facts in a format machines already know how to parse.

Honest limit: nobody can promise that adding schema will make any AI assistant name your clinic. FirstInChat does not claim product coverage of ChatGPT, Perplexity, or Google AI Overviews. Schema is a control you own. Being named in an AI answer is not.

LocalBusiness / MedicalBusiness — pick one honest type

Med spas sit near both LocalBusiness and medical-leaning types such as MedicalBusiness (and related types on schema.org). In plain words:

If a medical director or licensed injector is part of how guests choose you, say so accurately on the visible site first — then mirror those facts in schema. Do not invent titles. Not legal advice.

Name, address, phone, opening hours (NAP)

Wrong hours in schema are worse than no schema. Update both places when you change them. NAP must stay consistent across your website, Google profile, and major listings.

Treatments / services you actually offer

List services you truly offer (for example neuromodulator consults, laser hair removal, Hydrafacial). Use plain service names — no clinical outcome promises in the labels.

If you name packages or memberships, only list ones that are live. Wrong service lists create angry guests and advertising risk. Check your state advertising rules. We are not giving legal advice.

sameAs links

Point to official profiles you control: Google Business Profile, Instagram, Facebook, or a directory listing you manage. Same URLs everywhere help machines connect the dots.

Ratings and reviews — what not to mark up

Do not invent aggregate ratings in schema. Do not mark up reviews you cannot back up on the page. If you are unsure, leave review fields out.

Fake or mismatched review markup is a common way to get ignored — or worse. For how reviews show up for humans and machines, see Do Google reviews affect AI search for med spas?.

Get your free AI visibility audit

A free website readiness check, plus a Google Gemini snapshot from its built-in knowledge only. No live web search, so it may be out of date. It is not Google AI Overviews or AI Mode. You get a readiness score and your top 3 fixes. No card.

Get my free audit

Copy-and-paste example (fictional clinic — EXAMPLE DATA)

The clinic below is made up for teaching. Replace every value before you publish. This is EXAMPLE DATA, not a real office. The example uses MedicalBusiness; your clinic may correctly use LocalBusiness or another schema.org type after you confirm it — keep one honest primary type.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MedicalBusiness",
  "name": "Harbor Glow Med Spa (EXAMPLE)",
  "url": "https://www.example-harbor-glow.com/",
  "telephone": "+1-555-010-4400",
  "image": "https://www.example-harbor-glow.com/images/clinic.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "400 Harbor Avenue",
    "addressLocality": "Seattle",
    "addressRegion": "WA",
    "postalCode": "98101",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 47.6062,
    "longitude": -122.3321
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "10:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "15:00"
    }
  ],
  "sameAs": [
    "https://maps.google.com/?cid=EXAMPLE",
    "https://www.instagram.com/example-harbor-glow"
  ],
  "priceRange": "$$",
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Aesthetic services",
    "itemListElement": [
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Neuromodulator consult" } },
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Laser hair removal" } },
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Hydrafacial" } }
    ]
  }
}
</script>

Paste this in the <head> of your homepage (or a site-wide header injection). One clean block is better than three conflicting copies on different templates.

Where to paste it

If your site already outputs LocalBusiness or MedicalBusiness schema, edit that block instead of adding a second one.

How to test it

Both tools are free and public. Use your real homepage URL when you re-test after go-live.

FAQ schema for your Client Questions page

If you keep a page of real guest questions and short factual answers, you can add FAQPage schema on that page only. Each question and answer in the markup must match the visible text.

Do not mark up medical advice or clinical outcome claims you would not stand behind in writing. Link that page from your main menu so humans and crawlers both find it.

Full how-to: The Client Questions Page for Med Spas.

Never put client names, treatment chart details, or other private health information in schema, FAQs, or any public form.

A 20-minute monthly check

Once a month (or after any redesign):

If you'd rather have the monthly fix list drafted for you, Autopilot ($99/mo) is the done-for-you path, and Monitor ($49/mo) is the DIY path. Also available: Pro, $199/mo, for up to 3 locations or more support. Plans coming soon. No card. No checkout.

What schema will not do

Treat it as hygiene: clear facts, one source of truth, easy for machines to quote correctly. For the wider checklist of what you control, see How to get your med spa recommended by AI assistants. To spot-check visibility yourself, see How to check if AI mentions your med spa.

Frequently asked questions

Do I need a developer to add schema markup for my med spa? Often no. On WordPress, Wix, and Squarespace you can paste JSON-LD into a header or custom-code box. Have a developer help if you already have conflicting LocalBusiness or MedicalBusiness markup or a custom theme.

Should a med spa mark up star ratings in schema? Only if the rating is accurate, visible on the page, and you can stand behind how it was calculated. If you are unsure, leave ratings out. Invented review markup is a common mistake.

Which schema type should a med spa use — LocalBusiness or MedicalBusiness? Pick one primary type that fits how your clinic is organized and that matches facts guests already see on your site and Google profile. Confirm the current type on schema.org before you publish. Keep NAP identical everywhere. Prefer one clean block over two conflicting ones.

Will schema make ChatGPT or Perplexity name my med spa? Nobody can promise that. Schema makes your facts easier for machines to parse. FirstInChat does not claim product coverage of those assistants.

Can I invent treatments or credentials in schema for my med spa? No. Only mark up services, credentials, and hours that are true and visible on the page. Invented fields create trust and advertising risk. Not legal advice.

What does the free FirstInChat audit check today for med spas? Website readiness plus a Google Gemini built-in-knowledge snapshot that is ungrounded — no live search, may be out of date, not AI Overviews or AI Mode. It does not promise rankings or results.

Next step

Paste one accurate JSON-LD block (one honest primary type), test it with the Rich Results Test, confirm NAP matches Google, then run the free audit.

Get your free AI visibility audit

A free website readiness check, plus a Google Gemini snapshot from its built-in knowledge only. No live web search, so it may be out of date. It is not Google AI Overviews or AI Mode. You get a readiness score and your top 3 fixes. No card.

Get my free audit

Questions: firstinchat@proton.me.

Related: AI search vs local SEO for med spas · How to check if AI mentions your med spa · Do Google reviews affect AI search for med spas? · How to get your med spa recommended by AI assistants · Client Questions page for med spas · Med spa free audit landing · Dental: Dentist schema markup