Hair Salon Schema: Copy-Paste JSON-LD Example
A client looking for a haircut may ask who is open Saturday or where to book. Your salon page should answer those questions in visible text. This code labels the same facts for software that reads structured data.
Choose the right business type
Use HairSalon for a salon focused on hair services. A barbershop can use BarberShop instead. Keep the name and hours exactly as they appear on your site and business profiles. See the schema.org HairSalon definition for the type and its inherited fields.
Copy-paste HairSalon JSON-LD
Copy the complete block into your homepage’s <head>. Change every example value, including the service and hours. Remove fields that do not apply.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HairSalon",
"name": "Example Scissors Hair Salon",
"url": "https://example.com/hair-salon-schema-example/",
"telephone": "+1-217-555-0101",
"description": "Haircuts, color and styling by appointment.",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"https://schema.org/Tuesday",
"https://schema.org/Wednesday",
"https://schema.org/Thursday",
"https://schema.org/Friday",
"https://schema.org/Saturday"
],
"opens": "09:00",
"closes": "18:00"
}
],
"makesOffer": {
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Haircut"
}
}
}
</script>
What each field does
@contexttells readers that the property names come from schema.org.@typesays this is aHairSalon, a specific kind of local business.nameis the business name customers see.urlis its official website page.telephoneis the public number, including country and area code.descriptionbriefly names what the business really does. Keep it consistent with visible page copy.addressgroups the street, city, state, ZIP and country underPostalAddress. Use a real customer-facing location, not a mailing address that people cannot visit.openingHoursSpecificationgives local opening and closing times for the listed days. Closed days are left out. Change the schedule to your actual regular hours.makesOffernames one example service customers can ask about. Replace it with a service you actually provide, or remove the whole field.
One detail to check for HairSalon
If color takes a consultation, say so on your booking page. Do not use schema to promise an appointment slot that your calendar has not confirmed.
A salon that closes Mondays should omit Monday from opening hours, as this example does. Do not list a full-day schedule when appointment hours differ from walk-in hours.
How to add it to your site
Add the code once on the homepage or the matching location page. Put it in the page’s head section when the platform allows it. Keep your visible name, contact details and hours in sync with the code.
- WordPress: Use a trusted header code plugin or your theme’s head-code setting. Paste the entire script into the homepage head. If an SEO plugin already outputs HairSalon data, edit that data instead of creating a conflicting duplicate.
- Squarespace: Open Settings → Advanced → Code Injection and paste the block in Header. If you have multiple locations, use page-level injection where available so this location’s details appear on its own page.
- Wix: Open Settings → Custom Code, add the block to Head, and set it to the relevant page. Publish the site after saving.
- Shopify: In Online Store → Themes → Edit code, add the block to
theme.liquidinside<head>. For a single physical location, restrict it to the homepage so product pages do not all claim to be the location page. - GoDaddy Website Builder: Use its custom HTML or head-code setting if your plan exposes one. Some versions only offer a body HTML section; check the published source to make sure the JSON-LD script is present. If your plan does not allow custom code, ask support or your site editor about head injection.
Test the published page
- Paste the live page URL into Schema Markup Validator. Confirm it detects
HairSalonand that each property contains your real details. - Run the same URL through Google Rich Results Test. It checks Google-supported rich result features; a valid schema type may show no eligible rich result. That does not mean the JSON-LD is invalid.
- View page source and search for
application/ld+json. Make sure the script appears once for this location, without leftover fictional values or mismatched hours.
Valid markup helps machines read facts on a page. It does not guarantee a Google feature or a recommendation from an AI assistant.
Want a second set of eyes?
Run the free site check to see whether your homepage exposes its business details. If you want us to write the schema and customer FAQ, check your listings, and compare AI answers before and after, the AI Visibility Kit is $149.
Run the free checkAsk about the Kit