Field Notes
On-Page SEO for Local Businesses: What Actually Matters
Most on-page SEO advice is written for bloggers and software companies. A plumber in Mesa doesn't need a content strategy — they need the right words in the right places on about a dozen pages. This is the short list of what actually moves the needle for a local business site, in roughly the order worth fixing things, with examples you can copy today.
1. Title tags: the highest-leverage 60 characters on your site
The title tag is the blue link people see in Google. It tells Google what the page is about and tells a searcher why to click. Most local business sites get both jobs wrong, usually because the web designer left the defaults in.
A good local title tag has three parts: the service, the city, and the business name — in that order, because the left side carries the most weight and gets truncated last.
Before (a pattern you'll find on most local sites):
Home | Anderson Plumbing Services | Anderson Plumbing
After:
Plumber in Mesa, AZ — 24/7 Emergency Service | Anderson Plumbing Water Heater Repair & Installation in Mesa | Anderson Plumbing
Same idea for a dentist:
Before: Welcome | Ridgeview Dental After: Dentist in Boise, ID — Family & Cosmetic | Ridgeview Dental
Keep it around 50–60 characters so it doesn't get cut off, put one primary service per page (more on that below), and don't stuff — "Plumber Mesa Plumbing Mesa AZ Plumbers" reads like spam to humans, and Google frequently rewrites titles it doesn't trust.
Meta descriptions: your free ad copy
The meta description doesn't directly affect rankings — Google has said as much for years — but it heavily influences whether people click your result instead of the one above it. Treat it as ad copy: what you do, where, and one reason to pick you. Aim for roughly 150 characters.
Before: "We are a family owned business serving the valley since 1987 with a commitment to excellence..." After: "Licensed Mesa plumber. Same-day water heater repair, drain cleaning & emergency service. Upfront pricing — call for a free estimate."
2. Heading structure: one H1, then an outline
Headings are the outline of the page. Simple rules that cover 95% of cases:
- One H1 per page, and it should name the service and usually the city: "Water Heater Repair in Mesa, AZ." Not "Welcome" and not your logo.
- H2s for the main sections — the problems you fix, your process, pricing, service area, FAQs.
- Don't pick headings by font size. If a line looks too big, fix it with styling, not by demoting it to an H4. Search engines read the tags, not the appearance.
A quick self-test: read only your headings, top to bottom. If a stranger couldn't tell what the page offers and where, neither can Google.
3. Site architecture: one service, one page. One city, one page — carefully.
This is the single biggest structural win on most local sites. A page can realistically rank for one topic. If your entire offering lives on a single "Services" page with six bullet points, you're asking one page to compete against six dedicated pages from every competitor.
One service, one page. The dentist gets separate pages for cleanings & exams, implants, Invisalign, emergency dentistry. The plumber gets drain cleaning, water heaters, repiping, slab leaks. Each page gets its own title tag, H1, photos, FAQs, and a clear call to action. 300–600 words of genuinely useful, specific content beats 2,000 words of filler.
One city, one page — when you actually serve distinct cities. If you're based in Mesa but regularly work in Gilbert and Chandler, a page for each can earn rankings your homepage never will, because Google tends to favor pages that match the searcher's location and intent.
4. NAP consistency: boring, foundational
NAP is Name, Address, Phone. Google cross-references your website against your Google Business Profile, Yelp, Facebook, and dozens of data aggregators to decide whether you're a real, established business. Inconsistency ("Anderson Plumbing LLC" here, "Anderson Plumbing & Drain" there, an old phone number on Yelp) muddies that signal.
Do this once: pick a canonical format for your name, address, and phone number. Put it in your website footer on every page, match it exactly on your Google Business Profile, then fix the top listings (Google, Yelp, Facebook, Apple Maps, Bing, and your industry directories). It's tedious, one-time work, and it removes a silent handicap.
5. Internal linking: hand Google a map
Internal links tell search engines which pages matter and what they're about. Local sites usually under-link. Three habits:
- Link every service page from the homepage and the main navigation (a "Services" dropdown is fine). Pages buried three clicks deep tend to be treated as unimportant.
- Use descriptive anchor text. "Learn about our water heater repair in Mesa" beats "click here." The anchor text is a label Google reads.
- Cross-link related pages. The drain cleaning page should link to hydro jetting and sewer repair. City pages link to the services offered there, and vice versa.
6. Images: compress, resize, describe
Real photos of your team, trucks, and work outperform stock photos with visitors — and they're an SEO asset if you handle them right.
- Resize before uploading. A phone photo is often 4,000+ pixels wide and several megabytes; your page displays it at 800. Resize to roughly display size and compress (free tools like Squoosh work well; WebP format is smaller than JPEG).
- Name files descriptively:
water-heater-installation-mesa.jpg, notIMG_4382.jpg. - Write alt text that describes the image plainly: "Technician replacing a 50-gallon water heater in a Mesa garage." Alt text exists for screen readers first — write for a person who can't see the image, and the SEO benefit comes along for free. Don't stuff keywords into it.
7. Page speed and Core Web Vitals, in plain English
Google measures real-user experience with three numbers called Core Web Vitals. You don't need to memorize the acronyms; you need the plain-English versions:
| Metric | Plain English | Good target |
|---|---|---|
| LCP | How fast the main content appears | Under 2.5 seconds |
| INP | How quickly the page reacts when tapped | Under 200 ms |
| CLS | Whether things jump around while loading | Minimal shifting |
Speed is a lightweight ranking signal, but its real cost is human: slow pages lose callers before the page finishes loading, especially on a phone with a weak signal. For most local sites, three fixes deliver most of the gain: compress your images (usually the #1 offender), remove plugins and scripts you don't use (old chat widgets, sliders, tracking pixels), and use decent hosting. Test any page free at PageSpeed Insights — it names your specific problems.
8. LocalBusiness schema: introduce yourself in Google's language
Schema markup is a small block of code, invisible to visitors, that states plainly who you are: business type, address, hours, phone. It doesn't guarantee anything, but it removes ambiguity and can make you eligible for richer search listings. Here's a minimal, real example for the plumber from earlier — it goes in the page's HTML, and Google's Rich Results Test will validate it:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Anderson Plumbing",
"url": "https://andersonplumbingaz.com",
"telephone": "+1-480-555-0142",
"address": {
"@type": "PostalAddress",
"streetAddress": "1420 W Main St",
"addressLocality": "Mesa",
"addressRegion": "AZ",
"postalCode": "85201"
},
"openingHours": "Mo-Fr 07:00-18:00",
"areaServed": ["Mesa", "Gilbert", "Chandler"]
}
</script>
Use the most specific @type that fits (Plumber, Dentist, Electrician — falling back to LocalBusiness), and make sure every value matches your site and Google Business Profile exactly. Schema that contradicts the visible page is worse than none.
9. Mobile is the site
Google indexes the mobile version of your site — that's official policy, not opinion — and for emergency services most searches happen on a phone. Pull up your site on your own phone and check: Is the phone number a tap-to-call link (<a href="tel:+14805550142">)? Can you read the text without pinching? Do buttons work with a thumb? Is the thing a panicked customer needs — call now — visible without scrolling? If any answer is no, that's today's task.
The 5 most common mistakes
- The homepage that says nothing. "Welcome to our website. Quality you can trust." No service, no city, no reason to stay. Your homepage's first screen should state what you do, where, and how to reach you.
- One "Services" page for everything. Covered above — this is the most common structural cap on a local site's visibility.
- Doorway city pages. Twenty templated pages with the city name swapped. Risky and rarely effective.
- Titles left at defaults. "Home", "About", "Untitled" — the highest-value real estate on the site, blank.
- Multi-megabyte photos. A beautiful gallery that takes eight seconds to load on a phone is a beautiful reason to call your competitor.
None of this is clever. It's a finite list of unglamorous fixes — and that's precisely why it works: most of your competitors won't do it.
The 15-point checklist
Copy this, work through it page by page:
- Every page has a unique title tag: service + city + business name, ~50–60 characters.
- Every page has a meta description written like ad copy (~150 characters).
- Exactly one H1 per page, naming the service (and usually the city).
- Headings form a sensible outline you could skim and understand.
- Each major service has its own dedicated page.
- City pages exist only where you can say something true and specific about that city.
- Name, address, and phone are identical on your site, Google Business Profile, and major directories.
- NAP appears in the footer of every page.
- Every service page is reachable from the main navigation.
- Internal links use descriptive anchor text, not "click here."
- All images are resized and compressed; no file over ~300 KB without a reason.
- Every meaningful image has plain-English alt text.
- Your key pages pass PageSpeed Insights without red flags you can't explain.
- LocalBusiness (or more specific) schema is on the site and validates in the Rich Results Test.
- On a phone: tap-to-call number, readable text, and a visible call to action without scrolling.
You don't need to finish this in a weekend. A local site that honestly clears all fifteen points is ahead of most of its competitors — and everything on the list stays fixed once you fix it.
Want to know where your business actually stands?
Apply for a free visibility audit: your rankings, your AI-assistant mentions, and where competitors are ahead. Free, and yours to keep either way.