# Website Capture — Phoenix Salon + Spa **Date:** 2026-08-11 **Source:** phoenixcameronpark.com (rendered pages + static HTML) **Surface:** homepage, /services, /contact, /sitemap.xml, /robots.txt **Collector:** Leonard (Hermes Agent) **Format note:** Raw observation consistent with `raw/gbp-snapshots/TEMPLATE.md` status vocabulary. This is verification data, not analysis. --- ## 1. Identity (NAP) | Field | Value | Verification | |---|---|---| | Business name | Phoenix Salon + Spa | observed — footer/contact/schema agree | | Address | 3460 Robin Lane, Suite 4, Cameron Park, CA 95682 | observed — footer/contact/schema agree | | Phone | (530) 350-9197 | observed — footer/contact/schema agree | | Email | ashley@phoenixcameronpark.com | observed — footer/contact/schema agree | | Website | https://phoenixcameronpark.com | observed | | Price range | $$$ (schema field `priceRange`) | observed | **NAP consistency:** All three sources (footer, /contact page, JSON-LD schema) agree on address, phone, email. No internal conflict. Tier 1 (business-owned surface). ## 2. Hours **Business model context (owner insight, 2026-08-11):** Ashley runs primarily by appointment and never maintained a single unified hours-of-operation statement. The "hours conflict" is downstream of that: because no canonical hours existed, every surface (website, Yelp, GBP) filled the gap with its own guess. The fix is not to pick one source — it's to define the operating model once, then propagate it everywhere. | Day | Website + schema | Yelp (prior capture) | GROUND TRUTH (Ashley, owner, 2026-08-11) | Status | |---|---|---|---|---| | Mon–Fri | 9:00 AM – 7:00 PM | 9:00 AM – 7:00 PM | 9:00 AM – 6:00 PM | CONFLICT | | Saturday | 9:00 AM – 5:00 PM | 9:00 AM – 7:00 PM | 9:00 AM – 3:00 PM | CONFLICT | | Sunday | 9:00 AM – 5:00 PM | Closed | Closed | MATCH (Yelp) | **Note:** Website carries "By appointment only." Owner-stated Ground Truth (Ashley, direct, 2026-08-11) conflicts with the website/schema AND with Yelp on Mon–Sat. Operating model = appointment-driven; no canonical hours previously existed. Recommended machine-readable expression: open-hours **plus** `byAppointmentOnly` attribute, not hours-only. **Status:** LOCKED — owner-verified Ground Truth. All other sources (website, schema, Yelp) flagged as inaccurate/stale pending update. ## 3. Schema (JSON-LD) - **Type:** `BeautySalon` (schema.org) - **Present:** Yes — single valid block on homepage - **Fields present:** name, url, image, telephone, email, priceRange, address (full PostalAddress), openingHoursSpecification, sameAs (Instagram, Facebook) - **Hours in schema:** Mon–Fri 09:00–19:00; Sat–Sun 09:00–17:00 (matches /contact page) - **Google verification:** two `google-site-verification` meta tags - **Canonical:** present - **Assessment:** Well-formed and reasonably complete. Minor gap — no `geo` (lat/long), no `aggregateRating`. Tier 1 (observed on business-owned asset). ## 4. Platform / Technical - **Build:** React SPA (Lovable) — content is client-rendered. Static HTML carries only head + JSON-LD; body requires JS. Implication for crawlers: schema is in `` (good), but all page text needs JS execution. - **robots.txt:** present; allows all; declares sitemap - **sitemap.xml:** present; ~60 URLs; lastmod 2026-07-19 (recent) with some pages 2026-08-05 - **Booking:** exists (Book Your Appointment CTA); GBP prior report indicates Vagaro ## 5. Services & Pricing (from /services page, starting prices) - Haircut & Style — from $65 - Full Color — from $120 - Balayage / Highlights — from $180 - Extensions — Consultation - Phoenix Custom Facial — starting at $85 (most clients $115–160 with enhancements) - Phoenix Custom Spray Tan — Full Body $60 / Partial $35 / Buddy rate $50 each - Waxing Services — from $15 - Eyelash Extensions — from $150 (varies by artist) ## 6. Socials (sameAs in schema) - Instagram: instagram.com/phoenix.cameronpark - Facebook: facebook.com/PhoenixCameronPark - TikTok: present in footer (`follow` links include TikTok) --- ## Open items / status vocabulary - **Hours Saturday/Sunday:** LOCKED (owner Ground Truth: Mon–Fri 9–6, Sat 9–3, Sun closed). Website/schema/Yelp all carry conflicting hours — remediation signal. - **geo (lat/long) in schema:** NOT_PRESENT - **aggregateRating / reviewCount in schema:** NOT_PRESENT - **Full pricing tiers for waxing/lash menu:** NOT_OBSERVED (page links to sub-menus not fully captured) - **GBP hours:** NOT_OBSERVED this run (falls to separate GBP snapshot) — GBP should be updated to owner-stated hours - **Website hours:** CONFLICT with Ground Truth — needs update (Mon–Fri 9–6, Sat 9–3, Sun closed) *Generated by Leonard for the client-data-pss repository.*