Local Business Websites
Build It, Price It, Sell It — and Hand It Off Clean
I built rjstreecare.com for a tree service client while working alongside him cutting trees during the day. No agency, no proposal deck, no $10K retainer — just a fast, clean site that actually converts. This guide is everything I learned doing it: what local businesses actually need from a website, the tech stack that won't fall apart in six months, how to price it, and how to get your first client when you don't have a portfolio yet.
Preface
Local businesses get scammed constantly when it comes to websites. Agencies charge $5,000–$15,000 for a five-page site that takes three months to deliver, breaks the moment the client wants to change a phone number, and ranks nowhere on Google because nobody thought about SEO beyond putting the business name in the title tag.
The business owner doesn't know any better. They paid a lot of money so they assume it's good. Meanwhile their competitor who built something on Squarespace in a weekend is getting more calls because their Google Business Profile is complete and they have 40 reviews.
This guide is for developers who want to build local business sites as a service — and for business owners who want to understand what they're buying. The actual requirements are simpler than the industry wants you to believe.
1. Who Actually Needs a Website (And Who Wastes Money)
Not every local business needs a custom-built website right now. A Google Business Profile with real photos and 20+ reviews will outperform a website for a lot of service businesses in a lot of markets. Start there. If they don't have a GBP yet, that's the first conversation — not the website.
A website becomes essential when: the business needs to explain something complex (pricing tiers, service areas, multi-step processes), when customers research before calling (contractors, healthcare, legal), when they need to take payments or bookings online, or when they want to rank for more than just their brand name.
Who benefits most from a real website:
- 1.Tree service, landscaping, pressure washing, pool care — anything where customers search by service + city
- 2.Contractors, plumbers, electricians, HVAC — trust-heavy trades where credentials and before/afters matter
- 3.Dentists, chiropractors, therapists, vets — research-intensive, booking-focused
- 4.Restaurants and bakeries — menu, hours, photos, and Google Maps integration
- 5.Any business in a city with real search volume for their service
A solo barber in a small town who survives on referrals and Instagram does not need a $3,500 website. Talk to them honestly. Clients who don't actually need what you're selling become bad clients fast.
2. What Makes a Local Site Actually Work
A local business website has one job: convince someone to call, book, or walk in. Everything else is noise. The sites that perform are boring by design — clear headline, clear service list, clear contact information, real photos, and some signal of credibility (years in business, insurance, reviews).
What actually drives conversions:
- 1.Phone number above the fold, on every page. Put it in the nav. Put it in the hero. Don't make them scroll to find it.
- 2.Real photos, not stock. Stock photos of smiling white people in hard hats destroy trust instantly. One real job site photo is worth a hundred stock images.
- 3.Specific service areas. "Serving Dillsboro, Versailles, Batesville, Milan, Sunman, and surrounding Ripley County" ranks for all of those towns. "Serving Indiana" ranks for none of them.
- 4.Social proof near the CTA. "22 years experience. Fully insured." directly above the contact form closes more leads than any design element.
- 5.Speed. A slow site loses mobile users before they read a word. Target under 3 seconds on mobile. Most local competitors are over 8.
The local business website isn't trying to win a design award. It's trying to be the most useful result when someone Googles "tree removal near me" at 7pm on a Sunday after a storm.
3. The Tech Stack That Won't Break in a Year
You have two real options for local business sites: static HTML or a lightweight framework. Both work. The wrong answer is WordPress unless you plan to maintain it for them, because most local business owners won't update plugins and they'll call you when it breaks.
Static HTML (what I use for most local sites):
- —Zero build step. Open files in any editor, push to GitHub, Vercel or Netlify deploys automatically.
- —Hosting is free on Vercel/Netlify for static sites. Domain is $10-15/year at Porkbun. Total recurring cost for the client: $15/year.
- —Loads instantly. No React hydration, no framework overhead, nothing to update.
- —Easy to hand off. A client who knows nothing about tech can understand "this is just a folder of files."
Next.js (when they need more):
- —Use when they need a blog, dynamic content, a booking form with backend, or an admin panel for content updates.
- —Still deploys free on Vercel. More complex, but scales further.
- —TypeScript + Tailwind + Supabase (if they need auth or a database) is the full stack you need for anything a local business would ever want.
For contact forms:
- —Resend (email API) is free for low volume. Wire the contact form to send emails directly. No third-party form service needed.
- —Zoho Mail is free for custom email addresses (info@yourbusiness.com). Beats Gmail for credibility. Set it up for the client and give them the app — most will never need web access.
Avoid: WordPress (maintenance burden), Wix (locked-in, slow, hard to migrate), GoDaddy website builder (terrible SEO, overpriced). These are fine for clients who want to DIY. Not for anything you're billing $2,500+ to build.
4. What Goes on Every Page
Most local business sites need five pages. Sometimes fewer. Here's the exact structure that works:
Home page
- —Hero: business name, one-line service description, phone number, primary CTA button
- —Services summary (3-6 cards, each linking to the services page)
- —Social proof strip: years in business, insurance status, number of jobs completed
- —Service area (specific towns, not just "Indiana")
- —Gallery section (real photos)
- —Contact section with form + phone + email
Services page
- —One section per service. Explain what it is, who needs it, and what to expect.
- —This is where keyword coverage lives. "Stump grinding Dillsboro Indiana" belongs here, not on the home page.
About page
- —The owner's story. How long they've been doing it, why, what sets them apart.
- —Credentials, certifications, insurance. Specifics build trust.
Gallery
- —Before/afters where possible. Real job sites. Equipment on site.
- —Alt text every image with descriptive keywords.
Contact page
- —Phone number, email, Google Maps embed, service area list, contact form.
- —Keep the form short: name, phone, email, message. Each extra field drops completion rate.
That's it. Don't add a blog unless the client will actually write for it. A blog with zero posts or three posts from 2023 hurts more than having no blog. Build what you can maintain.
5. Contact Forms, Maps, and Getting Found on Google
The basics of local SEO are straightforward. Most local competitors ignore them entirely — which is your client's advantage.
Contact form wiring:
- 1.Use Resend, Nodemailer, or a simple API route to email submissions to the owner. Test it with a real submission before you hand off.
- 2.Set Reply-To to the customer's email so the owner can reply directly from their inbox.
- 3.Send a confirmation email to the customer so they know the form worked.
Google Maps embed:
- 1.Go to maps.google.com, search for the business, click Share, copy the embed code. Free, no API key needed for a basic embed.
- 2.Service area businesses (no storefront) can embed a map of their general area instead.
Basic SEO checklist:
- —Every page has a unique title tag. Format: "Service + City — Business Name"
- —Meta description under 160 characters on every page
- —H1 on every page that includes the primary keyword
- —NAP (Name, Address, Phone) consistent and matching GBP
- —Schema markup: LocalBusiness JSON-LD in the head of every page
- —Images compressed (WebP preferred, under 200KB each)
- —Submit sitemap.xml to Google Search Console after launch
A single relevant inbound link — from the local Chamber of Commerce, a local news site, or a neighboring business — is worth more than 50 directory submissions. Focus on that once the site is live.
6. Google Business Profile — Do This Before the Website
I will say this as clearly as I can: for most local service businesses, a complete Google Business Profile with real photos and 20+ genuine reviews will drive more calls than a $5,000 website with no GBP. Do the GBP first. Do it as part of the engagement. Make it non-optional.
GBP setup checklist:
- 1.Go to business.google.com and claim or create the listing
- 2.Business type matters: service area business (no storefront) vs. storefront. Select correctly — you can hide the address for service businesses.
- 3.Category selection is your most important SEO decision here. Be specific: "Tree service" not "Home services"
- 4.Add every city in the service area. Be specific with towns, not just county.
- 5.Upload at least 10 real photos. Exterior, work in progress, completed jobs, equipment. Google rewards active GBPs.
- 6.Verify via USPS postcard (standard) or video verification (faster, newer option)
- 7.Hours, website link, phone number — all must match the website exactly
After verification — the review strategy:
20 real reviews from real customers is the threshold where the listing starts winning the local pack. The fastest path: every time they finish a job and the customer is happy, the owner texts them the GBP review link right there on-site. No email, no delay. The moment is now, the phone is in their hand.
Include the GBP setup as a deliverable in your contract. Clients don't always know it exists. When their site launches and their GBP is set up and their first five reviews are in, they will tell everyone they know who built their site.
7. Getting Your First Client (Without a Portfolio)
Everyone who's ever tried to break into web development hits the same wall: clients want a portfolio, and you can't build a portfolio without clients. Here's how to break out of it.
The demo site method:
Pick a local business type you want to target — dentist, bakery, contractor, tree service. Build a demo site for a fictional version of that business. Make it look real. Deploy it on a live URL. Now you have a portfolio piece you can show any business in that vertical.
When you approach a real bakery, you're not showing them a GitHub repo or a screenshot — you're showing them a live site that looks exactly like what they'd get. That demo converts better than any proposal.
The existing relationship method:
You already know local business owners. Your dentist, your barber, the restaurant you go to, the contractor who did your parents' roof. Look at their current website (if they have one) and ask yourself honestly: could you build something better? You almost certainly could. Reach out. Offer to build them something better for free or cheap as your first project, in exchange for being able to use it as a portfolio piece.
What to say:
"Hey [name], I noticed your website is pretty outdated — I build sites for local businesses and I'd love to redesign yours. I'm building out my portfolio so I'm taking on a few projects at a reduced rate. Would you want to see what I can put together?"
Most local business owners with bad sites already know they have bad sites. You're not selling them something they don't want. You're solving a problem they think about every time a competitor gets a call they should have gotten.
8. Pricing Your Work
Pricing a local business website is one part cost estimation and three parts market positioning. Charge too little and clients don't trust the work. Charge too much and you lose deals you could've won. Here's how to think about it.
Baseline pricing by vertical:
- —Tree service, landscaping, contractors, tradespeople: $1,800–$3,500
- —Restaurant, bakery, small retail: $1,500–$3,000
- —Doctor, dentist, therapist, vet: $3,500–$7,000+
- —Full-service build including branding, SEO setup, GBP, email: add $500–$1,000
Recurring maintenance:
Offer a monthly maintenance package: $50–$150/month depending on complexity. Includes hosting coordination, minor content updates (new photos, updated hours), and a quarterly performance check. This is almost pure margin once the site is live and gives you predictable income.
How to anchor the conversation:
Never start with a number. Start with questions. How many calls/leads do you get per week? What's the average job worth? A tree service doing $2,500 average jobs only needs your site to generate 2 extra jobs per year to justify a $3,500 build. Frame it that way. You're not selling a website — you're selling an asset that generates leads for years.
Don't discount heavily. A client who haggles you down to $800 for a site that would take you 40 hours becomes a client who thinks they can text you at 9pm about font colors. Charge what the work is worth. The clients who respect the price are almost always the clients who respect your time.
9. The Handoff — Clients Who Own Their Site
The goal of the handoff is a client who understands what they have, knows how to reach you if something breaks, and isn't dependent on you for things they should be able to do themselves.
What to hand off:
- 1.Domain access — the registrar login or transfer to their own account. They own their domain. Full stop.
- 2.GitHub repo access (or a zip of the code) — they shouldn't be locked into you. If you disappear, they should be able to hire someone else without starting over.
- 3.Vercel/Netlify access — or walk them through reconnecting if they ever need to.
- 4.Email credentials for their business email (Zoho, Google Workspace, etc.)
- 5.Google Business Profile manager access — add their personal Gmail as an owner, not just a manager
- 6.Google Search Console access — so they can see impressions, clicks, and indexing status
The handoff call:
Do a 30-minute screen share. Show them: how to add a photo to the gallery (if it's static, show them how to email you and you'll update it), how to check Google Search Console, how to respond to Google reviews, and your support contact info for anything that breaks.
A good handoff creates referrals. When the owner feels confident in what they have and something breaks and you fix it fast, they become your most effective sales force. Every contractor, dentist, or restaurant owner they know who has a bad site is a warm lead for you.
Epilogue
I built a tree service website while cutting trees. I was learning the business from the outside as a developer while experiencing it from the inside as labor. That combination is worth something — when you understand the actual day of a tree service owner (early start, job site to job site, answering calls while running a chainsaw), you build for them differently.
The best local business websites aren't built by people who understand web development in the abstract. They're built by people who spent twenty minutes talking to the business owner before touching a line of code and came away knowing what their customers actually need.
Ask more questions. Build less. When you do build, build for one person — the customer who finds the site at 7pm on a Sunday when something went wrong and they need someone who can show up.
Get new guides when they drop
No courses. No upsells. Just the real stuff — straight to your inbox, free forever.
No spam. Unsubscribe anytime.
