Case study 01

The contractor who owned his city offline and nowhere online.

A residential replacement company in a Midwest metro of 420,000. Twenty-two years in business, no presence in any AI answer about roofing in its own city.

Outcome

Twelve months after launch.

Three figures from the engagement, each traced to the client's own reporting rather than ours.

01 CLIENT CITATION LOG
31 of 48

AI citation coverage

Of the 48 replacement queries tracked at audit, the site is now the cited source in 31 across AI Overviews and ChatGPT. At audit it was cited in two.

02 CLIENT CRM EXPORT
+64%

Organic booked jobs

Booked replacement jobs attributed to organic search, comparing the twelve months after launch with the twelve months before it.

03 CLIENT REPORTING
-$4,100/mo

Paid spend removed

Lead-generation ad spend the owner cut once organic volume held for two consecutive quarters. Total call volume did not drop.

FIGURES APPROVED IN WRITING BY THE CLIENT. COMPANY NAME WITHHELD UNDER A CONFIDENTIALITY AGREEMENT.

The situation

The company sold roughly 180 replacements a year, almost all of it from referral and repeat work. The website was nine years old, five pages, one combined services page, and no structured data anywhere on it. When a homeowner in the metro asked an AI assistant who replaces roofs locally, three competitors came back by name and this company did not.

What the audit found

The crawl returned 41 URLs, 12 of which were indexed duplicates of the same service copy with a city name swapped in. Eleven pages competed for the same replacement query, so none of them ranked. The conversion teardown found the phone number was an image on mobile, which meant three years of tapping had done nothing.

What we did about it

One page per service, one page per suburb that the matrix said was worth the build, and a schema model that connects the two. The replacement cost question, the one every homeowner asks first, got its own page with the answer in the first sentence, priced by roof size and material, updated quarterly.

Where it landed

Citation coverage moved first, inside ten weeks. Booked work followed about a quarter later, which matches what we see elsewhere. The owner cut the ad budget in month eight and the calendar held.

Before and after

The site before, and the site now.

Same company, same market, same crew. Different structure.

Before At audit

Nine-year-old brochure

INDEXED PAGES41, 12 DUPLICATE
SERVICE PAGESONE, COMBINED
SCHEMANONE
AI CITATIONS2 OF 48
MOBILE LCP6.1s
After Twelve months after launch

Answer set for the metro

INDEXED PAGES38, ZERO DUPLICATE
SERVICE PAGESSIX, SEPARATE
SCHEMAEVERY PAGE
AI CITATIONS31 OF 48
MOBILE LCP0.9s

FIGURES SUPPLIED BY THE CLIENT AND APPROVED IN WRITING. COMPANY NAME WITHHELD UNDER A CONFIDENTIALITY AGREEMENT.

What shipped

Three phases, five months end to end.

01 / DISCOVER

Paid Discovery

Full crawl, a 48-query tracking set, the matrix across six services and nineteen suburbs, and a page-by-page rebuild plan.

02 / BUILD

Rebuild, 38 pages

Six service pages, nineteen service-area pages, a replacement-cost guide, and the schema connecting all of it.

03 / LAUNCH

Launch and verification

Redirect map for the twelve duplicates, indexing submission, llms.txt, and a post-launch crawl of every page.

Questions

Questions about this engagement.

Why is the company not named?+

The engagement includes a confidentiality agreement. The client is happy to have the numbers published and not the name, and we will not trade one for the other.

How were the citations counted?+

A fixed set of 48 queries agreed at audit, checked monthly on AI Overviews and ChatGPT, recorded as whether the client's page is the cited source. Coverage, not ranking.

Would this work in a smaller market?+

Usually better. Fewer competitors have publishable answers, so the questions are cheaper to win.

Want this run on your market?

$2,500, and you find out what is winnable.