Schema markup generator for hair salons

Hair salons should use the HairSalon type, not plain LocalBusiness. Fill in the form and I’ll build valid JSON-LD you can paste into your site.

Your details

One or two factual sentences. The same words as your homepage intro work well.
International format: +1-403-…
A real photo of you, your team or your space.
Comma-separated, e.g. Mo-Fr 09:00-17:00, Sa 10:00-14:00
Optional. A symbol range like $ or a short text range.
Comma-separated cities or regions.
The services you are known for. (knowsAbout)
How clients pay. (paymentAccepted)
Languages your stylists speak. (knowsLanguage)
One URL per line: Google Business Profile, LinkedIn, Instagram, directories.

HairSalon JSON-LD

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "HairSalon",
  "@id": "https://victoriaparkhair.example/#business",
  "name": "Victoria Park Hair Studio",
  "description": "A Calgary hair salon offering cuts, colour and extensions in the Victoria Park area.",
  "url": "https://victoriaparkhair.example/",
  "telephone": "+1-403-555-0142",
  "email": "hello@victoriaparkhair.example",
  "image": "https://victoriaparkhair.example/images/photo.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Example Street SW",
    "addressLocality": "Calgary",
    "addressRegion": "AB",
    "postalCode": "T2P 1J9",
    "addressCountry": "CA"
  },
  "openingHours": [
    "Mo-Fr 09:00-17:00"
  ],
  "priceRange": "$",
  "areaServed": [
    "Calgary",
    "Airdrie",
    "Cochrane",
    "Okotoks"
  ],
  "knowsAbout": [
    "Balayage",
    "Colour correction",
    "Precision cuts",
    "Hair extensions"
  ],
  "paymentAccepted": "Credit card, Debit, Apple Pay",
  "knowsLanguage": [
    "English",
    "Vietnamese"
  ],
  "sameAs": [
    "https://www.instagram.com/victoriaparkhairstudio",
    "https://www.linkedin.com/company/victoriaparkhairstudio"
  ]
}
</script>

Paste this into your page’s head, then test it with Google’s Rich Results Test and validator.schema.org. The example values are made up: replace every one.

Want this added to your salon’s website?

Send me your site and I’ll check your current structured data and send back corrected JSON-LD for it. Free.

No newsletter. Just what you asked for, from me. Privacy

The properties that matter for hair salons

Type: HairSalon. Every property below is a real schema.org property.

Key schema properties for hair salons
PropertyWhy it matters
openingHoursClients book around work. Accurate hours, including late evenings, matter.
knowsAboutBalayage and colour correction are specific searches. Naming them helps AI tools recommend you for the right service.
priceRangePrice is a key question for salons. A simple range sets expectations.
addressA full address, including any suite number, helps clients find you.
sameAsInstagram is often your real portfolio. Link it, along with your booking profile if you have one.

Common mistakes

  • Using BeautySalon for a hair-only salon. HairSalon is more specific and says exactly what you do.

  • Putting a booking platform URL in the url field. Use your own website; link booking from it.

  • Marking up client testimonials as review stars. Google won’t show self-serving review stars for a LocalBusiness.

How to add it to your site

  1. Replace every example value in the form with your own details. They should match your Google Business Profile exactly.
  2. Copy the code and paste it into your page’s <head>. Most site builders have a custom code field. On a hand-built site, it goes in the template.
  3. Test the live page with Google’s Rich Results Test and validator.schema.org, and fix anything they flag.
  4. Add the same facts to the visible page. Structured data should describe what visitors can see. My website checklist for hair salons covers the rest.
FAQ

Schema for hair salons: questions

  1. Use HairSalon if hair is your main service. BeautySalon suits places that focus on nails, lashes or skin. Both are LocalBusiness subtypes.

  2. You can describe stylists on a team page. The business markup only needs the salon itself.

  3. Not as a price list. priceRange gives a general sense. A clear services page with prices is what people actually read.

Keep reading

Let’s begin

Let’s build something you’re proud to share.

Let’s Talk