Skip to content
Searchpedia SEO field notes Callum Bennett Callum

Local desk

San Francisco SEO

I used to think San Francisco SEO was just about a Google My Business listing – until I saw a client drop three map spots because of a single NAP inconsistency.

Beginner3 min readUpdated 2026-07-27Notes by Callum Bennett

Start here

  • Claim and fully optimise your Google Business Profile with accurate name, category, hours, attributes, and quality photos.
  • Audit your NAP across every directory (GBP, Yelp, Apple Maps, Bing, industry sites) and fix all inconsistencies.
  • Build a unique, content-rich landing page for each neighbourhood you serve.
  • Manage your reviews actively: respond to every review and aim for recent, high-quality customer feedback.
  • Implement LocalBusiness structured data on your site, including areaServed for service-area businesses.

Plain-English take

If you run a business in San Francisco, local SEO is the difference between being found on Maps and being invisible. I have optimised for bakeries in the Mission, law firms in SoMa, and plumbers in the Marina, and the pattern is always the same: get your [Google My Business](/google-my-business/) right first. Use the exact business name, pick the most precise primary category, fill out hours and attributes, and add high-quality photos. Then audit your NAP across every directory via [Citation SEO](/citation-seo/). I once saw a chiropractor drop from the local pack because Yelp had "Suite 200" while his site said "Ste 200". That mismatch cost him calls for two months before I caught it. San Francisco has dozens of neighbourhoods, and Google uses those as ranking signals. A single generic page for "San Francisco dentist" will not rank for "dentist in the Castro". You need a dedicated page per area with unique content, local photos, and testimonials from that neighbourhood, supported by solid [Local SEO](/local-seo/) practices. Do not write thin pages. Each one must serve a real user looking for a service in that specific district. That is the core of San Francisco SEO: fix the fundamentals, then scale neighbourhood presence.

When it actually matters

San Francisco SEO matters most when your revenue depends on people searching while they are already out. A neighbourhood coffee shop, a locksmith, a moving company – these businesses live or die by Google Maps visibility. I track ranking data via a [Local SEO Audit](/local-seo-audit/) for a few clients in SF, and the difference between position 1 and 3 in the local pack can mean 60% fewer calls. That is a direct revenue hit. It also matters if you serve multiple neighbourhoods. A single generic page for "San Francisco plumber" will not appear when someone searches "emergency plumber Marina". You need a page for each district with its own content, testimonials, and citations – a key item on any [Local SEO Checklist](/local-seo-checklist/). I have seen a client in the Castro rank on page one for "Castro handyman" only after creating a dedicated page. Another scenario: you are a service-area business like a cleaning company. If you do not define your service area correctly in your [Business Profile](/business-profile/), Google may not show you for searches outside your street address. I have also learned that this matters more on mobile. Over 60% of local searches on mobile lead to a call or visit within 24 hours, so if your site is slow or your GBP is incomplete, you lose that window. In a city with thousands of businesses, reviews are a tiebreaker. A client with 4.8 stars and 100 reviews consistently outranks a competitor with 4.5 stars and 30, even though the competitor had been in business longer. The algorithm weights recent, high-quality reviews. So San Francisco SEO matters as soon as you have any competitor who is actively managing their reviews.

What I got wrong

I have made several mistakes in San Francisco SEO. First, I underestimated how strict Google is about NAP consistency. I left "Street" on GBP but used "St" on Yelp. Google treated them as separate locations, splitting the citation signal. It took me months to find and fix all inconsistencies. Second, I created thin neighbourhood pages. I wrote a 200-word page for "Marina dentist" with generic filler. It ranked for exactly nothing. The winning pages have unique content: local events, photos, staff details, specific services for that area. Third, I ignored the impact of Core Web Vitals on local ranking. A client's site had a 6-second LCP. After compressing images and removing a heavy slider, the site loaded in 2 seconds and the local pack position improved from 4 to 2 within three weeks. I also failed to implement LocalBusiness schema correctly. I used the wrong '@type' and omitted the 'areaServed' property. Once I fixed it, the business became eligible for more local search features. Finally, I once advised a client to use a virtual office address in SF for GBP because he lived in Oakland. Google removed the listing after a verification video. Service-area businesses must hide their address if they do not serve customers at that location. Learn from my mistakes.

Next step

Quick answers

Do I need a physical address in San Francisco to rank in the local pack?

Not necessarily. Service-area businesses can hide their address and define a service area. But you must verify with video that you operate in that area. Without a real SF presence, Google will eventually remove the listing. For ranking, proximity still matters, but a hidden address with a wide service area can work if you have strong reviews and citations.

How many neighbourhood pages should I create?

One per district you actively serve. Do not create pages for neighbourhoods where you have no customers or cannot provide service. Start with the most searched ones: Mission, SoMa, Castro, Marina, North Beach. Each page must be unique. I usually audit search volume first. If 'Mission dentist' gets 500 searches a month and you have 10 clients there, make a page. But avoid creating pages for every zip code – that looks spammy.

Can I use the same phone number on multiple neighbourhood pages?

No. Google expects a unique local phone number for each location or service area. Using the same number across pages can confuse the citation signal. For a single-location business serving multiple neighbourhoods, use the main number on all pages but make sure the address and GBP are consistent. For multi-location, each location needs its own number and profile.

Sources

Primary documentation is linked directly. Anything commercial is marked nofollow.

Notes from Callum Bennett.