◣ Web Dev Journey
000%
03 ← Work
Client Work Hair Salon

HairSocietySalon

A Houston Galleria salon with elite stylists and a Vagaro booking link — invisible to local search. Built a site that gets them found for balayage, extensions, and bridal before a competitor does.

2026 · Live site ↗ · SvelteKit· Local SEO· Schema.org· AEO

Hair Society Salon sits in the Houston Galleria corridor — one of the most competitive zip codes for premium beauty services in Texas. Their work is exceptional: Bellami extensions, dimensional color, editorial styling. Discovery was Instagram, TikTok, and the occasional referral. Bookings happened through a Vagaro link in the bio.

The problem is that Instagram reach is algorithmic and rented. Anyone searching "balayage Houston," "hair extensions Houston Galleria," or "bridal hair Houston" wasn't finding them — those searches were going to salons with optimised websites, map pack listings, and FAQPage schema answering the pre-booking questions Hair Society's front desk fields daily.

The build covered full entity-schema architecture for a HairSalon (Schema.org), a services page with a section for each category — color, extensions, bridal, and blowouts — structured in entity → attribute → answer format, FAQPage schema targeting real pre-booking questions, and Google Business Profile alignment down to matching service names and hours. Lighthouse still scores 100 for SEO and Best Practices, with mobile Performance at 94.

Since launch (April 15 – October 2, 2026), Search Console shows 844 organic clicks and 32.6K impressions across 2,111 distinct search queries — and clicks have held steady at 144–160 every full month since May. Most of that visibility isn't people who already know the salon: 84% of impressions come from searches that don't include its name, like 'hair salons near me' (average position 5.8), 'hair salon near me' (4.7), and 'hair salon galleria houston' (4.9). On the Google Business Profile side, the salon has seen 11,305 profile views, 2,168 search appearances, and 1,090 calls, direction requests, and bookings — none of it from ads.

  • 01 HairSalon schema with full sameAs entity graph (Instagram, TikTok, Facebook)
  • 02 Services page with sections for color, balayage, extensions, bridal, and blowouts
  • 03 FAQPage schema targeting pre-booking queries ("how long does balayage take", "do you do extensions consultations")
  • 04 Mobile Lighthouse: SEO 100, Best Practices 100, Performance 94
  • 05 GBP sync — service names, pricing tiers, and hours match schema exactly
  • 06 Vagaro booking integration preserved with search-discoverable entry points
SvelteKitLocal SEOSchema.orgAEOCore Web VitalsGBP
844 Organic clicks Google Search Console, launch to Oct 2, 2026 (5.5 months) — zero ad spend
32.6K Impressions Google Search Console, same window — times the site appeared in Google results
2,111 Search queries Distinct searches the site has appeared for — a broad footprint for a single-location salon
84% Non-branded Share of impressions from searches that don't include the salon's name — new customers, not existing ones
150+ Clicks / month Every full month since May 2026 (144–160) — consistent, not a one-off spike
11,305 GBP profile views Google Business Profile · appearing for "hair salon," "hair salons near me," and "beauty salons" across Search and Maps
1,090 Zero-ad interactions Calls, directions, and bookings from the Google Business Profile — no ad spend
100 Lighthouse SEO Mobile, October 2026 — meta, schema, and site structure all green

Want results like this?

Get in touch and let's talk about what the same approach looks like for your business.

Request free audit →