Companion audit to the SF Launch Playbook. Covers traditional SEO, GEO (LLM answer surfaces — Perplexity, ChatGPT Search, Gemini, Claude) and AEO (Google featured snippets, voice search). Every issue maps to a 90-day fix on the playbook page.
Roughly where eatcookjoy-uae.com was 6 months ago before the relaunch took it to 63/100. Same fix list. Same 12-week glide path. Below: scorecard by dimension, then page-level audit.
| URL | Title / H1 | Schema | Issues | Score |
|---|---|---|---|---|
| / | Brand homepage · "EatCookJoy" | Organization only | Missing Service · LocalBusiness · WebSite SearchAction | 38 |
| /sf | Regional landing · "EatCookJoy SF" | None | No LocalBusiness · no hreflang · no city signals · meta too short | 24 |
| /services | Service catalog | Service partial | No price ranges · no AggregateOffer · missing alt text on icons | 31 |
| /ecj-chefs | Chef directory | None | No Person schema per chef · no Review schema · sparse bios | 22 |
| /ecj-faqs | FAQ page | FAQPage ✓ | Only 7 Q&As · no Speakable · no nested HowTo | 48 |
| /chef-profile | Individual chef profile | None | No Person · no Review · no breadcrumb · noindex would be safer until built out | 18 |
| /blog | Blog hub | Blog partial | 3 posts · no Article schema · no author bylines · missing related links | 29 |
| /blog/personal-chef-vs-private-chef | Cost / comparison post | Article ✓ | No FAQ block · no TOC · no internal links to /sf or /services | 44 |
| Average page health | 32 | |||
| # | Fix | Impact | Effort | Owner | Due (wk) |
|---|---|---|---|---|---|
| 1 | Publish /robots.txt with sitemap reference | High | 15 min | Eng | 1 |
| 2 | Generate /sitemap.xml (auto on every deploy) | High | 1 hr | Eng | 1 |
| 3 | Add canonical tags on every page | High | 2 hr | Eng | 1 |
| 4 | Add hreflang en-US ↔ en-AE for /sf ↔ UAE | High | 2 hr | Eng | 1 |
| 5 | Inject LocalBusiness JSON-LD on /sf + neighborhood pages | High | 4 hr | Eng | 2 |
| 6 | Inject Service JSON-LD on /services + each tier | High | 3 hr | Eng | 2 |
| 7 | Inject FAQPage + Speakable JSON-LD on /ecj-faqs | High | 2 hr | Eng | 2 |
| 8 | Build 7 neighborhood pages (Pac Hts · Marina · Russian Hill · Nob Hill · Hayes Vly · Mission · SoMa) | High | 2 days | Content + Eng | 3 |
| 9 | Rewrite title/meta on /sf with "Private Chef San Francisco" | High | 1 hr | Content | 2 |
| 10 | Add Person + Review schema on /ecj-chefs and /chef-profile | Medium | 4 hr | Eng | 3 |
| 11 | Inline critical CSS · lazy-load below-fold images (LCP < 2s) | Medium | 1 day | Eng | 4 |
| 12 | Ship 3-post "Private Chef SF — cost / personal vs private / Sunday prep" cluster | High | 1 week | Content | 4 |
| 13 | Add Article + HowTo + FAQ block to every blog post | Medium | 2 days | Content + Eng | 5 |
| 14 | Publish "SF private-chef wallet-share study" — citable data | High (GEO) | 1 week | Content | 6 |
| 15 | Outreach: Eater SF · 7×7 · KQED · Bold Italic · Resy Local | High | ongoing | Growth | 7 |
| 16 | Port Recipe schema from UAE 16,848-recipe vault | High | 3 days | Eng | 8 |
| 17 | Submit to GBP · Bing Places · Apple Business Connect | Medium | 1 day | Growth | 9 |
| 18 | Quarterly LLM-citation audit (Perplexity / ChatGPT / Gemini) | Medium | ongoing | Growth | 12+ |
LLM answer engines pick brands they can confidently quote. The pattern is: structured schema + citable data + third-party links. Each of the three below is required for an LLM to recommend us.
| KPI | Today | Wk 4 | Wk 8 | Wk 12 |
|---|---|---|---|---|
| Composite SEO health | 30 | 45 | 58 | 70 |
| Indexed pages | 8 | 22 | 38 | 60+ |
| "private chef sf" SERP position | >100 | 75 | 40 | 15–25 |
| Branded organic clicks / wk | 40 | 95 | 180 | 350 |
| LLM citations (Perplexity / ChatGPT / Gemini) | 0 | 1 | 4 | 10+ |
| Referring domains (DR-weighted) | 47 | 58 | 75 | 95 |
| Estimated organic GMV contribution / mo | $0 | $2.5k | $11k | $28k |
Reported every Friday in a 1-pager. Same template as the UAE Marketing Audit 2026 (63/100) that lives at /eatcookjoy-playbook-marketing-2026/ ↗.