Kyle Schmitz runs KS Masonry Restoration in Cleveland. Twenty years in the trade, licensed and insured, does clean work — the kind of masonry guy every homeowner wishes they could find. When we first talked, his website was a Google Sites template. It wasn’t ugly — brick hero, round shop-seal logo, a paragraph explaining the services. It just wasn’t doing anything for him.
The site was live. It just wasn’t producing anything. Kyle was getting 3–5 calls a week — almost all of them from word-of-mouth, none of them from Google.
The problem wasn’t Kyle
When a small business calls me with a “website not getting calls” problem, the temptation is to blame the marketing. Fix the SEO. Buy some Google Ads. Post on Facebook.
None of that was going to fix Kyle’s situation. His problem was structural. The site itself was invisible to Google’s local pack, invisible to AI search tools, and offered nobody a reason to call even if they did land on it.
What the old site was actually missing
- · Zero structured data (schema markup) — Google couldn’t categorize the business
- · No dedicated pages for the cities Kyle serves (Cleveland, Lakewood, Rocky River, etc.)
- · No content answering the questions people search (“how much does tuckpointing cost”)
- · No gallery of actual project photos — masonry is a visual sale, and the template hero shot wasn’t doing that work
- · No reviews on the site (all Kyle’s Google reviews lived in a widget Google’s crawler couldn’t read)
- · No chatbot or after-hours lead capture
- · Personal Gmail-style email address on every page
What we actually changed
The rebuild focused on the six things that mattered most for a local contractor. No fluff, no vanity features.
1. Real per-city landing pages
When someone searches “masonry restoration Lakewood OH,” Google wants to send them to a page ABOUT Lakewood. Kyle had one homepage that mentioned a dozen cities in a run-on sentence. We built dedicated pages for every neighborhood he actually drives to — unique content per city, real photos, neighborhood-specific context.
2. Schema markup on every page
Schema is the invisible layer of code that tells Google “this is a masonry contractor, here’s the phone number, here’s the service area, here’s the star rating.” It’s what turns a plain search result into a rich card with stars and hours. Kyle had zero. We added LocalBusiness, Service, Review, AggregateRating, FAQPage, and BreadcrumbList schema across every page.
3. Reviews rendered as real HTML content
Kyle had strong Google reviews. But they lived inside a third-party embed widget — a JavaScript iframe that Google’s crawler can’t read, and AI search tools skip entirely. His reputation was invisible to the systems that matter. We pulled the reviews into real HTML with Review and AggregateRating schema, so Google now attaches his star rating directly to search results.
4. FAQ content on every service page
This is the AEO play. ChatGPT, Perplexity, and Google’s AI Overview lift their answers from question-and-answer content on real pages. If your site doesn’t have plain-English answers to “how much does chimney repair cost in Cleveland” or “what’s the difference between tuckpointing and repointing,” the AI cites your competitor. We wrote 20+ FAQs across the service pages with FAQPage schema, so the AI has something to quote.
5. AI chatbot for after-hours capture
60%+ of home service leads come outside business hours. Someone Googles at 9pm, lands on your site, and either leaves or fills out a form that sits in a Gmail inbox until Monday. We added a chatbot that qualifies the lead in real time, gathers project details, and drops a formatted lead notification into Kyle’s phone the moment they hit send. He can text back from the truck.
6. Custom domain email + real photography
Two small things with an outsized impact. Kyle’s emails now go out from info@ksmasonryrestoration.com instead of a personal Gmail. And every service page features photos of Kyle’s actual work — because masonry is a visual sale and stock photos from Shutterstock don’t sell jobs.
The Result
Same guy. Same craftsmanship. Same reviews. Same market. Different website doing the heavy lifting.
Kyle didn’t start doing better masonry. He didn’t magically get more reviews. He didn’t start posting on TikTok. The reputation was already there. The site just needed to actually put it in front of the people Googling for it.
“We went from 3–5 calls a week to 3–5 calls a day. Getting calls from areas we wanted to be in but never used to.”
Kyle Schmitz — Owner, KS Masonry Restoration
What this means for you
If you’re a contractor with a good reputation and a website that isn’t producing calls, it’s probably not because your marketing is bad. It’s probably because your website is structurally invisible to the tools your customers use to find you.
The fix isn’t a new logo or a cleaner color palette. It’s:
- ✓ Dedicated pages for every city you actually serve
- ✓ Schema markup so Google can categorize you
- ✓ Reviews rendered as real HTML, not a JS widget
- ✓ FAQ content that AI search tools can quote
- ✓ After-hours lead capture (chatbot or qualified form)
- ✓ Real photos of your work, not stock imagery
Kyle’s not the only client who’s seen this. Same playbook, same result — new business Jordan at Infinity Caulking sold his first job from the site within 2–3 months of launch. Keith at Designer Concrete has calls flowing in before we’ve even wired up his Google Business Profile.
You already have the reputation. Your site should be doing the work of putting it in front of people. Ours isn’t magic — it’s just the actual fundamentals, done properly.