diff --git a/docs/validation/2026-08-15-cameron-park-family-dentistry/findings.md b/docs/validation/2026-08-15-cameron-park-family-dentistry/findings.md new file mode 100644 index 0000000..9cc432e --- /dev/null +++ b/docs/validation/2026-08-15-cameron-park-family-dentistry/findings.md @@ -0,0 +1,147 @@ +# Audit Findings — Cameron Park Family Dentistry + +**Generated:** 2026-08-15 13:51 UTC +**Sources checked:** google_business_profile, apple_maps, website +**Rating:** 4.9 | **Reviews:** 133 + +## Severity Summary + +| Severity | Count | +|----------|-------| +| 🟥 Immediate | 3 | +| 🟧 High | 0 | +| 🟨 Medium | 4 | +| 🟩 Enhancement | 2 | +| **Total** | **9** | + +## Findings + +### Finding #1: Phone number inconsistent across 1 surface(s) + +- **Severity:** 🟥 Immediate +- **Category:** Digital Identity +- **Recommendation:** Standardize phone format across all directories. GBP is authoritative. +- **Evidence:** ```json +{ + "google": "(530) 677-0272", + "apple": "+1 (530) 677-0272", + "website": "6560355451" +} +``` + +### Finding #2: Address inconsistent across 1 surface(s) + +- **Severity:** 🟥 Immediate +- **Category:** Digital Identity +- **Recommendation:** Standardize exact address format. GBP address is authoritative. +- **Evidence:** ```json +{ + "google": "4058 Flying C Rd #9, Cameron Park, CA 95682", + "apple": "4058 Flying C Rd, Ste 9, Cameron Park, CA 95682" +} +``` + +### Finding #3: Hours mismatch on 5 day(s) — GBP is authoritative + +- **Severity:** 🟥 Immediate +- **Category:** Google Business +- **Recommendation:** Correct hours on non-GBP surfaces to match GBP. Mismatched hours cause customer complaints and trust loss. +- **Evidence:** ```json +[ + { + "day": "monday", + "google": "8 AM-5 PM", + "apple_maps": "8:00 AM-5:00 PM" + }, + { + "day": "tuesday", + "google": "8 AM-5 PM", + "apple_maps": "8:00 AM-5:00 PM" + }, + { + "day": "wednesday", + "google": "8 AM-5 PM", + "apple_maps": "8:00 AM-5:00 PM" + }, + { + "day": "thursday", + "google": "8 AM-5 PM", + "apple_maps": "8:00 AM-5:00 PM" + }, + { + "day": "friday", + "google": "8 AM-3 PM", + "apple_maps": "8:1800 AM-3:00 PM" + } +] +``` + +### Finding #4: Review count varies by 120 across surfaces + +- **Severity:** 🟨 Medium +- **Category:** Reviews +- **Recommendation:** Large review count gaps suggest some surfaces have stale or merged data. Verify listing ownership. +- **Evidence:** ```json +{ + "google": 133, + "apple": 13 +} +``` + +### Finding #5: Cannot determine review recency — no dates available in samples + +- **Severity:** 🟨 Medium +- **Category:** Reviews +- **Recommendation:** Review date data is not available from current surfaces. Monitor via GBP dashboard directly. +- **Evidence:** ```json +{ + "sources_with_dates": [] +} +``` + +### Finding #6: Category varies across surfaces: dentist, health care + +- **Severity:** 🟨 Medium +- **Category:** Digital Identity +- **Recommendation:** Align primary category across all directories. GBP primary category is the ranking driver. +- **Evidence:** ```json +{ + "google": "dentist", + "apple": "health care" +} +``` + +### Finding #7: JSON-LD present but no LocalBusiness/BeautySalon type + +- **Severity:** 🟨 Medium +- **Category:** Technical SEO +- **Recommendation:** Ensure schema includes LocalBusiness or BeautySalon @type for local search relevance. +- **Evidence:** ```json +{ + "url": "https://cameronparkfamilydentistry.com/", + "has_jsonld": true, + "has_local_business": false +} +``` + +### Finding #8: Only 0% of sample reviews mention specific services or practitioners + +- **Severity:** 🟩 Enhancement +- **Category:** Reviews +- **Recommendation:** Encourage detailed reviews mentioning services and staff. Specific reviews rank higher and convert better. +- **Evidence:** ```json +{ + "sample_size": 3, + "specific_count": 0 +} +``` + +### Finding #9: Price level not set on GBP or Apple Maps + +- **Severity:** 🟩 Enhancement +- **Category:** Content +- **Recommendation:** Set price level ($–$$$$) on GBP. Helps users self-select and improves relevance. + +## Failed Surfaces + +- ❌ `bing_places` — no data returned