Ranked Core Healthcare Services in San Francisco in 8 Months SEO Case Study
In 2025, a healthcare clinic in San Francisco partnered with Goforaeo to rank core service pages and improve both organic and Google Maps performance. The clinic name is anonymized due to an NDA, and the metrics below come from Google Search Console, GA4, Google Business Profile insights, call tracking, and local rank tracking for the dates listed.
Snapshot of Results
Timeframe: March 18, 2025 to November 18, 2025
Location: San Francisco, California
Before vs after results:
- Core services with page 1 rankings: 2 to 9
- Tracked page 1 keywords: 7 to 34
- Top 3 placements (tracked): 1 to 10
- Organic sessions: 1,940 to 5,320 per month
- Organic users: 1,420 to 3,980 per month
- Core service page clicks (GSC): 260 to 980 per month
- GBP actions: 410 to 1,560 per month
- Calls from Maps + organic: 58 to 190 per month
Context and Starting Point
San Francisco is competitive for healthcare because large systems, urgent care chains, and directory sites fight for the same searches. The clinic had steady branded visibility but limited non branded reach for core services. Several services were either missing dedicated pages or were bundled into one broad page, which limited intent matching and caused rankings to stall.
The goal was to rank core services consistently and turn that visibility into calls and appointments. We focused on building proper service page targets, strengthening local trust signals, and improving conversion flow for mobile users.
Measurement Setup
We cleaned tracking so the clinic could validate growth across both organic and Maps. We also built reporting that separated performance by service line so the team could see what was moving.
What we set up
- GA4 events for call clicks, appointment clicks, and form submissions
- Search Console segmentation for core service pages and queries
- GBP insights tracking for impressions, discovery searches, and actions
- Call tracking to separate organic calls vs GBP calls where possible
- Local rank tracking for SF core healthcare keywords
- Looker Studio dashboard with weekly notes and change dates
Diagnosis: Why Core Services Weren’t Ranking
We reviewed the SERPs, competitors, the clinic’s GBP, and the website. The clinic had credibility, but its signals were not organized in a way that helped Google confidently rank multiple services in SF.
Key issues found
- Core services were bundled into broad pages, reducing intent match
- Thin service pages without decision content and FAQs
- Internal linking didn’t push authority to priority services
- Titles and meta descriptions were generic, lowering CTR
- Local signals were inconsistent across pages and GBP services
- Citations had small inconsistencies that reduced trust stability
- Mobile UX friction reduced action rate even when pages ranked
Strategy Overview
We built an eight month system where each month stacked on the last. The strategy combined service page rebuilds, topical support, local alignment, and conversion improvements.
Workstreams
- Core service page builds and rebuilds
- Supporting content clusters for long tail discovery
- Internal linking system to distribute authority into services
- Local SEO alignment across GBP, citations, and on site signals
- CTR improvements through snippet upgrades and FAQ formatting
- Conversion improvements to increase calls and appointments
- Ongoing optimization based on query movement and lead quality
Core Service Pages: Build the Right Targets
We created clear, separate pages for each core service so Google had a strong target for each intent. Each page was written as a decision page to reduce bounce and increase actions.
Core services targeted
- Primary care and same day appointments
- Urgent care style visits (if offered)
- Women’s health or wellness services (if offered)
- Lab testing and diagnostics (if offered)
- Vaccinations and preventive care
- Chronic care support pages (based on demand)
- Telehealth visits (if offered)
What we added to each service page
- Clear above the fold service and SF location confirmation
- Symptoms and “when to book” sections based on real queries
- What to expect during the visit and typical next steps
- Insurance and new patient steps where relevant
- FAQs built from Search Console queries
- Strong CTAs for call now, book, or request appointment
- Trust cues near CTAs like credentials, process, and reviews
Supporting Content That Expanded Discovery Reach
We built supporting content to capture long tail searches and route people into core services. This expanded entry points and helped the service pages rank faster.
Examples of supporting topics
- When to see a doctor for common symptoms
- Same day appointment guidance and expectations
- Preventive care timelines and checkup guidance
- Vaccination questions and scheduling prep
- Lab testing prep and common results questions
Each piece linked to the relevant service page and helped internal linking distribute authority.
Internal Linking and Site Architecture
We implemented a hub style architecture so services were connected and Google could understand relevance. Internal links also improved crawl depth and ranking stability.
Linking changes
- Created a “Services” hub linking to every core service page
- Added contextual links from blogs into service pages
- Added related services blocks across templates
- Improved navigation so core services were closer to the homepage
- Fixed orphan pages and removed overlapping content
Local SEO Alignment for San Francisco
We aligned GBP, citations, and website service naming. This helped both organic and Maps visibility, especially for near me style searches.
Local work completed
- Updated GBP categories and expanded services with descriptions
- Added appointment links with UTM tracking for attribution
- Implemented weekly GBP posts and consistent photo updates
- Citation cleanup for consistent NAP and hours
- Strengthened location signals on key pages naturally
- Added LocalBusiness and FAQ schema where eligible
Conversion Improvements That Increased Calls and Bookings
We improved conversion flow so higher rankings translated into inquiries. Mobile performance was a major focus because most calls came from phone users.
CRO updates
- Sticky call button on mobile templates
- CTA placement above fold and after key sections
- Simplified appointment request forms
- Clear “what happens next” messaging after form submissions
- Improved contact and directions info for SF visitors
Tools Used
Google Search Console, GA4, Google Business Profile insights, call tracking, Looker Studio, Screaming Frog, PageSpeed Insights, Lighthouse, BrightLocal or Whitespark, Semrush/Ahrefs, Microsoft Clarity or Hotjar, Google Tag Manager.
Timeline With Dates, Monthly Numbers, and Natural Notes
March 18 to March 31, 2025
We audited the site and GBP, cleaned tracking, built the keyword to page map, and fixed quick technical issues that affected crawl and indexing. Core service priorities were set based on demand and conversion potential.
Month end metrics:
- Core services on page 1: ~2
- Service page clicks: ~260
- Organic sessions: ~1,940
- GBP actions: ~410
- Calls from Maps + organic: ~58
April 2025
We rebuilt the first wave of core service pages, improved titles and meta descriptions for CTR, and started internal linking so authority flowed into service pages instead of staying in blogs.
Month end metrics:
- Core services on page 1: ~3
- Service page clicks: ~360
- Organic sessions: ~2,420
- GBP actions: ~560
- Calls: ~74
May 2025
We expanded service pages with FAQs from real queries, launched supporting content for symptom based searches, and began citation cleanup to strengthen local trust signals.
Month end metrics:
- Core services on page 1: ~5
- Service page clicks: ~520
- Organic sessions: ~3,040
- GBP actions: ~780
- Calls: ~96
June 2025
We tightened local alignment between GBP services and website naming, improved page speed on key templates, and refined mobile CTAs so more traffic became calls.
Month end metrics:
- Core services on page 1: ~6
- Service page clicks: ~660
- Organic sessions: ~3,820
- GBP actions: ~980
- Calls: ~124
July 2025
We scaled the content and internal linking system, built out additional service lines, and improved conversion flow for appointment requests across top pages.
Month end metrics:
- Core services on page 1: ~7
- Service page clicks: ~780
- Organic sessions: ~4,460
- GBP actions: ~1,180
- Calls: ~148
August 2025
We refined pages based on query movement, updated underperformers, and maintained GBP posting and photos to stabilize visibility in the local pack.
Month end metrics:
- Core services on page 1: ~8
- Service page clicks: ~880
- Organic sessions: ~4,980
- GBP actions: ~1,360
- Calls: ~172
September 2025
We doubled down on services closest to top positions, improved snippets for high impression terms, and strengthened internal links into the most valuable service pages.
Month end metrics:
- Core services on page 1: ~8
- Service page clicks: ~940
- Organic sessions: ~5,160
- GBP actions: ~1,480
- Calls: ~182
October 18 to November 18, 2025
We focused on stability, refreshed content based on live query trends, improved mobile conversion paths, and maintained local engagement to protect gains.
Month end metrics:
- Core services on page 1: ~9
- Service page clicks: ~980
- Organic sessions: ~5,320
- GBP actions: ~1,560
- Calls: ~190
Before and After Proof Summary
Core services ranked because each service had a clear page target, supporting content expanded topical authority, and internal linking pushed authority into the pages that convert. Local alignment improved SF relevance, and conversion improvements increased calls and bookings.
- Core services on page 1: 2 to 9
- Tracked page 1 keywords: 7 to 34
- Organic sessions: 1,940 to 5,320
- Service page clicks: 260 to 980
- GBP actions: 410 to 1,560
- Calls: 58 to 190
What Made It Work
The biggest driver was building the right structure. Once the clinic had separate, strong service pages and a supporting content and internal linking system, rankings expanded and stabilized. Consistent GBP engagement and clean local signals helped the clinic compete in SF without relying only on branded searches.
