Tucker Shively

I rebuilt an indoor environmental testing firm’s entire system. Now 85% more people find them.

The firm ran on five systems that could not see each other: a website on a hosted builder, a calendar, accounting software, a CRM connected to none of them, and an inbox where every lead stopped. I replaced them with one connected system. More people find the firm in Google, every one who gets in touch is counted, and every job lands in the CRM without anyone typing it.

Client
An indoor environmental testing firm, North Carolina (name withheld)
Their work
Indoor air, mold, asbestos, lead and water testing
My work
The website, search, lead tracking, job tracker and CRM automation, AI drafting, hosting and domain
Launched
July 14, 2026
Data
Google, analytics and the CRM through Oct 31, 2026
5 to 1
Systems
Website, calendar, books, CRM and inbox, now one record per job
+85%
Clicks from Google
116 to 215 in equal 30-day windows
100s
Leads recorded
Form sends and phone taps since launch, where the old site counted none
1,000+
Records in their CRM
Hundreds of thousands of dollars of history, kept current on its own

What the owner keeps

Built by me, handed over whole. If they ever walk away from me, nothing has to be rebuilt.

Theirs to keep

  • Every line of code behind the 43-page site, with no hosted site builder left to pay for
  • The domain, the Google Business Profile, analytics and every lead, in accounts the firm owns
  • Over a thousand records in their CRM and job tracker, exportable any time

Run without me

  • The office keeps working in its own job tracker, and the CRM fills itself from it
  • The owner reads, edits, approves and sends every report
  • The day’s plan is written and published before anyone arrives, from their own job records

The short version

Four things changed. Everything below is the detail.

1

One system instead of five

The request, the appointment, the work order, the invoice and the payment are now one job record in the job tracker, and that record feeds the CRM, the day’s plan and the report on its own. Before, each of those lived in a different program and nobody could see the whole.

2

Found 85% more often

A hand-built 43-page site with search markup, regional pages and plain-language service pages took Google clicks from 116 to 215 in equal 30-day windows. The firm’s own name went from position 16 to 8. Visits from AI assistants rose 3.3 times.

3

Every lead counted, every job recorded

Hundreds of form sends and phone taps since launch, where the old site could count none. Over a thousand records of jobs, quotes and requests in a CRM that filled itself from the firm’s history in under an hour and stays current within seconds, with no typing.

4

Writing that drafts itself

The day’s plan for each person is written and published before the day starts. Each job’s report goes from the field app to a checked first draft that the owner reviews, approves and sends. Both start from the job record instead of a blank page.

Before and after

Five systems that each held a piece of every job and none held the whole, against one system where the job, the customer, the schedule, the bill and the lead are one record.

 BeforeNow
WebsiteA site on a hosted builder: no form on the homepage, no local pages, weak signals to Google43 hand-built pages on my server, a page for every service, audience and region, search markup on every page
LeadsA form that sent an email, and nothing counted itEvery form send reaches the firm’s inbox and mine; every form send and phone tap is counted in analytics
ScheduleA calendar, separate from the jobRequests, appointments, work orders and invoices on one job record in the job tracker
Customer recordsA CRM that did not connect to the calendar, the books or the websiteThe CRM filled automatically from the job tracker: one deal per job, one record per service line, running totals on every customer and company
MoneyAccounting software, apart from the job recordsThe invoice and the payment belong to the job, so what was quoted, sold and paid is one record
Email and domainThe website, the email and the domain on different hostsOne domain on my nameservers, the site on my server, the mail moved with it, no records lost
ReportsWritten by hand from field notes for every jobDrafted by the system from the field app, checked number by number, approved and sent by the owner
The day’s planIn people’s heads and the calendarA brief for each person, written and published before the day starts
MarketingNo list to write toA live list of who bought what, who came back, and who got a quote and never said yes

The detail

Each part of the system, what it replaced, and what the numbers show. Open the ones you care about.

1

The website and search

A hand-built site that Google shows more often and people choose more often: 116 to 215 clicks.

Where the old site stood in May 2026

No way to count leads

Analytics was installed, but there was no tracking setup, no form on the homepage and no tracking on phone taps or form sends. In the 30 days before launch it recorded zero lead actions.

Weak signals to Google

The homepage had a 29-character title, three H1 headings and no structured data. Google had no machine-readable name, address, hours or service area for the business.

Hard to find by name

A search for “their own name” put the site at position 18 on average.

No local pages

The firm works across North Carolina, Upstate South Carolina and Southern Virginia, yet the site had no page for any city outside its own.

Visibility spent in the wrong place

The old water testing page was shown 7,547 times in 30 days for national laboratory searches, at position 50, and earned 3 clicks.

What I built

43 pages, by hand, on my server

One for every service, every audience (homeowners, builders, property managers, schools, realtors) and every program. No page builder, no plugins.

A search layer on every page

Unique titles and descriptions, LocalBusiness structured data with address, coordinates and hours, a share card and the firm’s real logo. A footer with the name, address and hours repeats the same facts on every page.

Six regional pages and a hub

Raleigh and the Research Triangle, Wilmington and the Cape Fear, Charlotte, Greenville and Upstate SC, Richmond VA, and Martinsville and Henry County VA.

Pages for searches the old site missed

Pricing, VOC testing, expert witness, and insurance and legal work.

Old addresses carried over

Permanent redirects from the old addresses, and the www address pointed to the bare domain, so years of links and rankings were kept.

Trust that holds up

Placeholder testimonials and unsupported claims removed, the certifications page rebuilt around the credentials the team actually holds, and all nine team bios on one page.

Weekly clicks from Google

Every bar is one week of clicks from Google search to the site. The old site averaged 28 a week. The new site has climbed since launch and set its record in the week of October 4.

Weekly clicks from Google, May 31 to October 31, 2026Old site weeks averaged 28 clicks. After the July 14 launch weekly clicks rose, peaking at 73 in the week of October 4. The last six weeks averaged about 48.204060800Week of May 31: 44 clicksMay 31Week of Jun 7: 18 clicksWeek of Jun 14: 35 clicksWeek of Jun 21: 30 clicksJun 21Week of Jun 28: 28 clicksWeek of Jul 5: 14 clicksWeek of Jul 12: 35 clicksJul 12Week of Jul 19: 43 clicksWeek of Jul 26: 29 clicksWeek of Aug 2: 37 clicksAug 2Week of Aug 9: 40 clicksWeek of Aug 16: 50 clicksWeek of Aug 23: 29 clicksAug 23Week of Aug 30: 35 clicksWeek of Sep 6: 40 clicksWeek of Sep 13: 53 clicksSep 13Week of Sep 20: 48 clicksWeek of Sep 27: 34 clicksWeek of Oct 4: 73 clicksOct 473Week of Oct 11: 48 clicksWeek of Oct 18: 41 clicksWeek of Oct 25: 44 clicksOct 25New site live, Jul 14Old site average: 28 a weekLast six weeks: about 48 a weekWeekly clicks from Google, May 31 to October 31, 2026Old site weeks averaged 28 clicks. After the July 14 launch weekly clicks rose, peaking at 73 in the week of October 4. The last six weeks averaged about 48.204060800Week of May 31: 44 clicksMay 31Week of Jun 7: 18 clicksWeek of Jun 14: 35 clicksWeek of Jun 21: 30 clicksWeek of Jun 28: 28 clicksWeek of Jul 5: 14 clicksWeek of Jul 12: 35 clicksJul 12Week of Jul 19: 43 clicksWeek of Jul 26: 29 clicksWeek of Aug 2: 37 clicksWeek of Aug 9: 40 clicksWeek of Aug 16: 50 clicksWeek of Aug 23: 29 clicksAug 23Week of Aug 30: 35 clicksWeek of Sep 6: 40 clicksWeek of Sep 13: 53 clicksWeek of Sep 20: 48 clicksWeek of Sep 27: 34 clicksWeek of Oct 4: 73 clicksOct 473Week of Oct 11: 48 clicksWeek of Oct 18: 41 clicksWeek of Oct 25: 44 clicksNew site live, Jul 14
Old siteNew siteWeekly average: 28 before, about 48 in the last six weeks

Clicks climbed, then kept climbing

Google showed the site 29% more often (22,650 to 29,233 times), but clicks grew nearly three times faster than that. People who saw the firm in Google were more likely to choose it, which is what better titles, descriptions and pages are for.

116
Old site, last 30 days
Jun 14 to Jul 13
156
New site, first 30 days
Jul 14 to Aug 12
215
New site, latest 30 days
Oct 2 to Oct 31

The last two weeks alone, October 18 to 31, brought 85 clicks against 39 in the old site’s last two weeks, up 118%.

The results side by side

MeasureOld siteNew siteChange
Clicks from Google116215+85%
Clicks to the website pages themselves (Business Profile link set aside)78139+78%
Click rate in Google0.51%0.74%+45%
Visits from the United States325573+76%
Engaged US visits165278+68%
Average US visit length2m 45s3m 21s+21%
Visits from AI assistants9303.3×
Form sends and phone taps recorded066from none
Website addresses earning a Google click1726+9

The brand and the homepage moved up

Search or pageOld siteNew site
“their own name”position 18.2, 2.8% click ratePosition 8.2, 7.2% click rate
“esg greensboro”1 click6 clicks, position 1
“their own name, with the city”Not in the data1 click, position 1
HomepagePosition 26.7, 47 clicksPosition 19.5, 59 clicks
Team pages5 clicks across the old team and bio pages23 clicks to the one Our Team page

Local service searches moved toward page one

SearchBeforeAfterClicks
mold testing (their city) nc15.86.92 to 5
air quality testing (their city) nc7.810.70 to 1
air quality testing near me6.01.20 to 0
air quality testing burlington nc21.08.40 to 0
asbestos testing (their city) nc6.76.82 to 1

Pages that did not exist before now bring visitors

The six regional pages and the hub were shown 4,182 times in the latest 30 days and earned 12 clicks: Raleigh 4, Wilmington 3, Richmond 3, Charlotte 1 and Greenville 1. The new expert witness and insurance and legal pages earned 7, VOC testing 6, builders and developers 3, and pricing 2. Lead testing went from 3 clicks to 9.

AI assistants send some of the best visitors

Visits from AI assistants grew from 9 to 30 between the two windows. Since launch ChatGPT alone sent 81 visits that produced 16 form sends and 9 phone taps, about 31 lead actions for every 100 visits. Clear pages with consistent facts about services, service area, hours and credentials are what these assistants read and repeat.

2

Leads: captured, routed and counted

Hundreds of form sends and phone taps since launch, each delivered to two inboxes and recorded by page, search and channel.

Both forms on the site post to an automation on my server that delivers each request to the firm’s office inbox and to me, so a lead never depends on one person’s mailbox. Tracking on every page records form sends and phone taps in analytics as lead events.

In the latest 30 days the site recorded 35 contact form sends and 31 phone taps. Since launch it has recorded 91 form sends and 89 phone taps, and 77 of those 89 phone taps came from phones, which is the mobile layout doing its job. Before, the number was unknown, because nothing counted it.

What that gives the firm: it can see which pages, which searches and which channels bring work, instead of guessing. ChatGPT, for example, turned out to send visitors who get in touch at the highest rate of any source.

3

The job, the schedule and the bill: one record

Where a calendar entry, an invoice in the accounting software and an inbox note used to describe the same job, the job tracker holds it once.

The firm’s work now runs through one job tracker: the request, the estimate, the appointment, the work order, the invoice and the payment are one job. Before, the appointment was in a calendar, the invoice was in the accounting software, and what the customer asked for was in someone’s inbox or head. Nothing linked them, so a question as simple as “what did we quote this customer last time” meant opening three programs.

The job tracker is where the work happens, and nobody at the firm had to change how they use it. That matters because the rest of the system reads from it: the CRM, the day’s plan and the report all start from the job record, so the office enters a job once and everything downstream knows about it.

4

The CRM that fills itself

Over a thousand records of jobs, quotes and requests, hundreds of thousands of dollars of history, loaded in under an hour and kept current within seconds, with no typing.

I built the automation inside their job tracker that copies every request, quote and finished job from the job tracker into the CRM within seconds:

One deal per job

It tracks the original request, the first quote, every revision and the final bill.

One service record per service line

So CRM knows who bought what, when, and for how much.

Lost quotes kept, with the reason

So customers who did not buy can be followed up.

Running totals on every customer and company

Job count, lifetime value, services bought, last mold, verification and healthy home dates.

On September 18, 2026 I loaded the firm’s whole history, every request, quote and job back to the first record, in under an hour with no failures. In August the CRM held one record, a test lead, and no deals. Now it holds:

Deals, one per jobHundreds
Service records, matching the job tracker to the dollarOver a thousand, worth hundreds of thousands of dollars
Customers who have boughtHundreds
Customers who bought more than onceNearly a hundred
Companies who have boughtOver a hundred, worth hundreds of thousands of dollars
Customers with a lost quote, ready for follow-upOver a hundred
Jobs where the service sold differed from the one asked forDozens

What the firm can do with it that it could not before

See the whole customer

One screen shows what a customer bought, when, for how much, what they were quoted, and what they turned down. That took a calendar, the accounting software and an inbox to piece together before.

Go back for the work it already quoted

Over a hundred customers with a lost quote or cancelled request are now a list, with the reason where one was recorded.

Market to its own history

Hundreds of buyers, nearly a hundred of them repeat buyers, sorted by service and date, so a re-test reminder or a review request goes to the right people at the right time.

Spot the sale that changed

Dozens of jobs where the service sold differed from the one asked for, which is where the office’s judgment adds revenue and where the intake could be sharper.

5

The day’s plan and the report, drafted by the system

The two pieces of writing that used to start from a blank page now start from the job record and end with a person’s approval.

The day’s plan writes itself

Every weekday at 5:10 a.m. Eastern a job on my server builds the day’s brief and publishes it to a private link: today’s work, what is coming and how to prepare, in a version for each person. The facts are built by code from the job records. The AI writes only the opening line and one “watch” line from numbers the code has already worked out, and a check refuses any draft that states a number or place on its own. It reads sample jobs today and the firm’s real jobs, at the same link, once their job tracker login is connected.

Report writing becomes report reviewing

The firm’s consultants write a report for every job. I built a report drafter for the firm to run as their own system: the field app sends the job, the drafter writes a first draft in the firm’s report structure, and a checker confirms every number matches the field data. The owner reads it, edits, approves and sends it from the firm’s own email, and the sent report is filed in that client’s folder in their file system. It never sends on its own. On a test job it wrote 64 numbers and invented none. It goes live once the firm supplies its report templates and it passes a test on 20 past jobs.

6

Email that follows up, and the list it writes to

A partner series, a homeowner follow-up and report delivery emails, written in the firm’s voice, with a real list behind them for the first time.

A three-email series introducing independent post-remediation verification to remediation partners, a homeowner follow-up, and report delivery emails in two versions, with and without a review call, are written and on-brand, ready for the owner’s approval.

What is new is that there is now something to send them to. Before, the firm had no list of who bought what or who turned a quote down. Now every email, review request and re-test reminder can be built from the CRM’s own history, and the lost quotes are the first list worth writing to.

7

Also in place

Hosting, the domain, the mail records, the measurement accounts and the groundwork.

  • The domain moved to my own nameservers with the firm’s email records carried over unchanged, and the site served over HTTPS from my server.
  • The search, analytics and tracking accounts set up, with every id recorded.
  • The firm’s real logo, favicons and share cards across the site.
  • The groundwork: a full site audit, keyword research with real search volumes, a local competitor review, an analytics review, and a marketing and systems plan for October 2026 to March 2027.
8

What the numbers do not say

I would rather the firm trust these figures than be impressed by them.

  • A month is a short window, and the old site’s last month was its weakest.Search Console holds the site’s data only from May 31, 2026, so there is no year-over-year comparison, and the old site’s last 30 days include the July 4 week. The shorter the window, the bigger the number: over the longest equal windows the data allows (44 days) the rise is 70%, over 30 days it is 85%, and over the last two weeks alone it is 118%. I chose a month because it is the shortest window that smooths out a single slow week. The step from the first 30 days after launch (156 clicks) to the latest 30 (215) is new site against new site, and shows the trend continuing.
  • Form sends are an upper bound.The form event fires when Send is pressed, before the server confirms delivery, so a failed send or a double press counts. Visits from my own test copies are left out of every figure here.
  • Not every click came from the website.76 of the 215 Google clicks came through the firm’s Google Business Profile in the map results, which is why the table also shows website-only clicks: 78 to 139.
  • Not everything moved up.“asbestos testing (their city) nc” held its position but clicks fell from 2 to 1, “air quality testing (their city) nc” slipped from position 8 to 11, and “air duct testing” slid from position 23 to 33.
  • Leads are counted; jobs booked from them are not yet tied back.The website counts who gets in touch. Which of those became a booked job is not yet linked, because web requests are still retyped into the job tracker by hand. That link is the next build.
  • Two parts read sample data today.The morning brief and the report drafter are built and tested, and switch to the firm’s real jobs once their job tracker login and report templates are in. I have not claimed hours saved or revenue added anywhere in this study, because I have not measured them yet; the lost quotes are the first place to measure.
  • Automated traffic is left out.A large share of all visits (32% before launch, 18% after) came from automated traffic in Singapore that never engages. Visit figures here are United States visits only.
9

What comes next

The steps that finish the system and start measuring what it adds.

  1. Send website requests straight into the job tracker, with an instant reply

    Today the office retypes each web request into the job tracker. The form should create the job tracker request itself and send the customer a reply for their service, which also ties every booked job back to the page or search that brought it. It should also offer duct leakage testing, the firm’s most requested service, which the form is missing today.

  2. Connect the morning brief to the firm’s real jobs

    It needs a read-only the job tracker login. The link and the schedule stay the same.

  3. Switch on the report drafter

    The firm’s report templates, then a test on 20 past jobs, then live, with the owner approving every report.

  4. Go back for the lost quotes

    The first email that writes to the new list, and the first place to measure revenue the system added.

  5. Put call summaries on the customer record

    The firm’s calls run through a phone system that records them. Each recording can be summarized and saved on the matching CRM contact, so nobody retypes a phone call.

  6. Finish the search housekeeping

    Redirect the 26 old addresses that still return “page not found” (including the old post-remediation verification page, shown 724 times at position 10 in the old site's last 30 days), submit the current sitemap, update the Business Profile link, count delivered leads instead of button presses, keep the local mold pages on page one (mold testing sits at position 7 and mold inspection at 10), and grow reviews.

10

How I measured

Where every number on this page comes from.

  • Search Console: the site’s domain property, web search, final data only, pulled November 2, 2026. Old window June 14 to July 13, 2026, the old site’s last 30 days. New windows July 14 to August 12 and October 2 to 31, 2026, each 30 days. The property’s data begins May 31, 2026, which is what sets the 44-day figure quoted in the limits.
  • Google Analytics 4: the site’s property, same windows. Lead actions are the form send (generate_lead) and phone tap (phone_click) events on the live site only; events from test and demo copies of the site are left out. Visit figures are United States sessions.
  • CRM figures: from the history load of September 18, 2026, checked against the job tracker’s line-item total and given here in round terms. The August state of the CRM comes from my review of the firm’s accounts on August 21, 2026.
  • Brief and drafter: from their build tests.
  • The old systems (the hosted site builder, the calendar, the accounting software, the old CRM) are as the firm described them to me and as I found them when the work began.
  • Live checks: on November 1, 2026 I requested all 43 pages in the sitemap and the 55 old addresses that appear in Search Console.
  • The old site’s state comes from my audit of the site on May 30, 2026.

Why it matters

The website’s job is to bring in work. The system’s job is to make sure none of it depends on someone remembering, retyping or chasing. More people find the firm, more of them get in touch, and every one of them lands in a record the whole business can see.

“We could take in more work, we got more work, we increased profit.”The owner, owner, an indoor environmental testing firm

That is the point of all of it: the firm’s owner gets to work on the business, not only in it.