I've built or rebuilt enough sites at this point to start noticing patterns. Three of those projects — Pinnacle Air Control, IGo Green Enterprises, and Velare Remodeling — are public case studies, and they cover three different starting states across three different industries.
The patterns that worked across all three are worth pulling out, because they look very different from what most agencies sell.
The three projects, briefly
Pinnacle Air Control — HVAC in South Hill, Washington. WordPress template site, average Google rank ~70, one new client every three months. Rebuilt as a custom Next.js site. Four months later: rank 18.6 average, 9.4 in a recent week, page-one rankings, AI Overview citation, over a dozen new clients in the first three months post-launch.
IGo Green Enterprises — Glass installation in Seattle. A dated website, no Google Business Profile, no socials. Rebuilt from scratch. Landed a $20,000 inbound job within weeks of launch.
Velare Remodeling and Restoration — General contractor in Bonney Lake. Minimal online presence. Two months from project kickoff to landing clients from the site.
Three industries, three starting states. Same playbook ran through all of them.
Pattern 1: Clear pricing — even when it's a range
Every page that mentions a service mentions what it costs, even if just a range. "Custom websites starting at $2,000." "HVAC repair calls $150–$500." "Kitchen remodel starting at $40k."
Most agencies recommend hiding price. The conventional wisdom is that price ranges scare customers off before they ever call. The data doesn't support that. Customers who don't see a price also don't call, because they assume the answer is "more than they want to pay." Showing the range pre-qualifies leads — the people who reach out are people who can afford the work.
For service businesses specifically, transparency about pricing is also a credibility signal. Sites that hide pricing read as sales-funnels. Sites that show pricing read as honest businesses.
Pattern 2: Real photos, not stock
This is the single most consistent thing across all three projects. Pinnacle's site uses real photos of their crew at job sites. IGo Green's site uses real installed glass in real Seattle homes. Velare's site uses real before-and-after remodels.
None of them use stock imagery. Anywhere. On any page.
The cost of using real photos is logistical — coordinating to get the photos taken, organizing what you have, sometimes pausing a build for a week to wait on a photographer. The cost of using stock photos is invisible but real: every visitor who notices the imagery is stock loses a quantum of trust. For service businesses, trust is the conversion.
Pattern 3: Fast load times
All three sites hit Lighthouse Performance scores in the 90s on mobile. None of them feel slow on a 4G connection in a parking lot.
The way to get there isn't exotic: Next.js server-rendered pages, WebP/AVIF images sized for the actual container, lazy-loading below the fold, two font families maximum, deferred third-party scripts. Standard performance discipline.
What's notable is how rare this is. Most service-business sites built with WordPress page builders score in the 40–60 range on mobile. The competitive moat is just doing the boring engineering work that nobody else does.
Pattern 4: FAQPage schema with real customer questions
All three sites have FAQ sections on every commercial page, wrapped in FAQPage schema. The questions aren't made-up SEO questions — they're real things customers ask before calling.
For HVAC: "what's the cost of a service call," "do you offer emergency repairs," "what areas do you serve." For glass installation: "do you do residential AND commercial," "how long does a typical install take." For remodeling: "what's the typical timeline for a kitchen remodel," "do you handle permits."
The schema makes the answers extractable by Google and by AI assistants. The questions answer real visitor doubts. Both purposes get served by the same content.
Pattern 5: Local landing pages, but only for cities you actually serve
This one took me a while to learn. Early on I was building location pages for every city in a contractor's service area, even cities they barely worked in. The thin pages hurt overall authority more than they helped ranking in those cities.
The corrected pattern: full, substantive location pages only for the cities where the business has done real work and can talk specifically about the market. For Pinnacle, that meant South Hill, Puyallup, Bonney Lake, Sumner. For IGo Green, Seattle. For Velare, Bonney Lake (with Lake Tapps and Sumner mentioned naturally).
Other cities get mentioned in the service-area section without their own dedicated pages.
Pattern 6: Boring infrastructure, done correctly
Schema.org markup. NAP consistency. Proper redirects on rebuilds. Page speed. Mobile-first design. Server-rendered HTML. None of this is exciting. None of it is what agencies pitch in their decks.
But this is the work that consistently produces rank improvements and conversion improvements, across every industry, on every project.
The reason most service businesses don't see results from their websites isn't that they're missing some clever growth hack. It's that the boring infrastructure work hasn't been done. The unsexy fundamentals are 80% of the lift.
What I'd do differently now if I were starting these projects fresh
Three things I'd change with hindsight:
Start with FAQ content first. The FAQ schema is so high-leverage that I'd start every project with a 30-minute interview asking "what questions do you answer on the phone every week," then write those answers first. Everything else flows from there.
Be ruthless about the service-area scope. Less is more. Three substantive location pages beat ten thin ones, every time.
Build the photo library before the build. Or pause the build to build the photo library. Real photos take longer to gather than I always estimate, and the build can't fully ship without them.
The pattern that surprised me most
The strongest performance lever across all three projects wasn't a clever SEO move or a structural insight. It was cadence. Pinnacle's continued ranking growth past month four is because we kept publishing monthly articles, kept updating GBP photos, kept generating reviews. The sites that stay on top of their markets are the sites that keep moving.
Most service-business sites get built, launched, and then go silent for two years. That silence is what kills the rankings, not the original build quality. The launch is the start, not the finish.
The "keep moving" work — schema upkeep, monthly articles, GBP posts, review velocity — is what I run as SEO & AEO optimization.
