Today I'm 29
In the past year, I've:
- Quit my 9-5 and went all in on business. Best decision ever, I should have done this 10 years ago.
- Rebuilt the entire SEO team of an 8-figure agency with 15+ team members
- Placed 50+ other international employees with other businesses
- Generated 1,000s of leads for our home service clients through SEO.
- Traveled 6+ times.
- Built and hosted AI agents for blue collar businesses.
- Built ChatSales (first time building something of this scale. Learned a TON)
- Took up running again after a long time off. 70 Miles down in the past 50 days, mostly on an empty stomach to cut.
On track for first Marathon later this year as long as my knees hold up.
- Down about 17 lbs from the running. About 15 more to go before bulk.
- Began consulting as a fractional CTO/COO for a buddy’s market company
Next year I want to have our house paid off, travel 10 times, have created multiple lead gen channels (mostly video), and hit 100k MRR consistently.
Honestly its been a smaller year than I wanted and planned for. We did great, still hit record revenue levels, but its not where I want us to be. Mainly due to shiny-object syndrome.
Biggest goal this year is to stay consistent, and focused on the vision.
Today I'm 28
In the past year, I've:
- Had my first son with my wife - nothing has motivated me more
- Tripled my personal income
- Grew revenue 25%+ MoM for 8 months now in my company
- Started a new company placing VAs, and made 25k profit in the first 45 days
- Hired more 30+ VAs
- Ran 120+ miles - need to work more on this
- Took the wife to London for the first time
- Met my international team in the Philippines and had a blast
- Bought a house
- Crossed 5k followers
- Closed a six figure software contract
- Recovered the business from nearly putting payroll on credit card in December, to approaching six figure months rapidly now
I'm on track to do just shy of 1m in revenue this year, possibly over if we can figure out lead flow for VAs
Watch as we take this to 2m, and beyond. Goal of 5m in the next 5 years, or I suck
Biggest takeaway from this past year, is just keep going.
Its not easy for anyone, you're not doing anything wrong, and its normal to be dodging bullets in business all the time. Just keep going.
To anyone reading, thanks for the support and attention/time. Hope its been entertaining watching me 🍻
A roofing client that we work with was able to shut off PPC because SEO is bringing in enough lead volume for them.
Originally, they were running PPC campaigns and spending over $9,000 a month, bidding on roof replacement jobs.
They were closing about 15% of those leads that came in and were constantly fighting competitors.
What we did to fix this was get a new Google Business Profile stood up for them, right where storms rip through the city every single year.
Now their Google Business Profile is right next to those homes, so when a homeowner searches for roof repair near them, they're the first profile to pop up.
We chose not to try and run SEO to their main profile because it already had a really strong ranking radius. We found opportunity in the city where they hadn't established a presence yet, and there was no competition.
This is the proximity-based maps play that you need to be focusing on as you head into 2027.
There are still pockets around tier 1 and tier 2 cities that are untapped by competition that we're targeting with our client campaigns right now.
I spoke with a $4 million/year pool maintenance company out of South Florida last week.
Their cost per job from Angie's List was approaching $1,000 during peak season for them.
The SDR team only closes about 10% of the deals that come in from Angie's List, and the owner was struggling with turnover with their SDR team.
I ran the math for them on getting a new Google Business Profile stood up based on their CRM data.
- The office lease would run them about $945 a month.
- A retainer for a company this size is $4,000 a month.
Results would be expected by about month 7, given how difficult their market is.
So it's expected that they'd have to spend just short of $40,000 to get SEO leads coming in consistently to that new GBP.
The numbers come out to about $40,000 invested
They operate on about a 24% net margin, with an LTV of about $13,000 for every new customer they sign. About $3.1k profit per job.
Meaning, to ROI in the entire campaign, we have to ensure they get about 13 jobs at the minimum.
Their main GBPs bring in about 15-25 calls a month, and close at about 35%, which is common for SEO leads.
Based on our CRM data on where we would target for this new Google profile, we expect call volume of about 20 calls a month, and about 8-10 closed deals.
We expect it would take 8 months to reach that level and the profile would be brining in $30k+ of profit per month.
SEO campaigns like this only work when the owner has the patience and revenue to support a campaign like this.
Another pool maintenance client of ours had a similar problem and was paying over $650 per lead from Angie's List before we started working with them. SEO slashed their cost per lead in half.
3
6
436
Here's the 30-point checklist we're using to stand up new Google profiles for our home service clients:
1. Sign a lease on a 100-180 sq ft office with a lockable door and its own suite number
2. File a DBA with the service + city at the end of the name
3. Get a phone number just for this location
4. Write down the exact name, address with suite, and phone
5. Order 100-200 citations with that exact name, address and phone
6. Build the location landing page for the service + city, with the same name, address and phone
7. Submit the landing page to Google Search Console and confirm it's indexed
8. Put a plaque or sign on the door with the exact name, address and phone
9. Set up the office with furniture and a laptop
10. Put business documents showing the address in the office: license, EIN letter, filings
11. Leave work clothes or tools in the room
12. Confirm the citations are live
13. Create the profile with the name exactly as the DBA
14. Choose the primary category the top competitor uses, word for word
15. Enter the address with the suite number
16. Enter the location's phone number
17. Set the website link to the location landing page with UTM tags
18. Request verification
19. Film the verification video: try the locked door, unlock it with the key, show the plaque, walk in, show the documents
20. Submit the video
21. Once verified, add the secondary categories the top competitors share
22. Fill the services list with everything the top competitors list
23. Write a description with the main service and sub-services
24. Set the hours, 24 hours if someone answers the phone
25. Set the service areas
26. Fill in every attribute
27. Set the opening date as far back as it truly goes
28. Add the social links
29. Upload job photos from the area
One of the most common pushbacks I get from business owners on SEO is that it takes time.
As a home service business owner, you don't want to wait around until next season to get an ROI on the marketing dollars you spend investing in an SEO company.
That's why PPC pairs so well with SEO.
PPC gets you off the ground, brings money in the door, and gets an ROIs on the campaign within about 45 days.
From there, you now have profit coming in to pay for the compounding effect that SEO brings in time.
We just kicked off this process for a client last month, and everything's going according to plan.
We got all the competitor analysis done, the foundations of SEO integrated, while the PPC campaign is starting to bring in some real dollars.
And honestly, running campaigns like this as an agency owner takes a lot of weight off our shoulders.
We're pressured every single month to try and drive results faster and bring an ROI from the SEO efforts.
With PPC leading the charge, both parties feel more at ease, and the SEO campaign has time to compound.
5
5
466
This is the landing page checklist we use for all of our home service business we run SEO for:
(bookmark this)
1. URL is /city-service. No .html, no .php
2. Title tag has the service + city, with the business name at the end
3. Meta description of about 140 characters ending in a CTA like "Call now"
4. Sticky nav with a call button and phone number on every scroll
5. One H1 with the service + city, as high on the page as possible
6. Contact form in the hero section
7. BBB and Chamber of Commerce trust badges right under the hero
8. An About section with the service + city in the H2
9. About copy covers your services, your jobs and how long you've been in business in that city
10. A tech or team photo with keyword alt text ("our team servicing [service] in [city]")
11. A services section with the service + city in the H2
12. Service cards link to your main service pages
13. Google reviews pulled onto the page, with the service + city in the H2
14. Reviews that mention the service and the city
15. Embedded Google Business Profile map
16. Nearby location pages linked with service + city anchor text
17. FAQs with the service + city in the H2, the questions and the answers
18. FAQs written from what customers actually ask (your sales team knows)
19. Recent jobs in that city, under a service + city H2
20. A CTA section with the service + city in the H2
21. A customer quote next to the contact form
22. Footer links to every location page with keyword anchors
23. A link back to the homepage
24. No links into the blog
25. Every H2 carries the service + city
26. 5-10 keyword mentions per section
27. 20-30 keyword mentions by the reviews section
28. 50-60 keyword mentions by the footer
29. 80 keyword mentions on the page as the goal (50-80 depending on your market)
30. Schema with your business name, address, phone, description, every sub-service, your offers and your FAQs
31. Schema can double your keyword count
32. Keywords in the business name through a DBA, so every name mention counts
33. Content written for that city, never cloned from another page
34. No ZIP code lists
35. The page is indexed in Google Search Console
A roofer we worked with got 304 calls to their Google Business Profile in only 3 months.
They paid us $3,000 a month for 12 months of work, costing them a total of $36,000 for the marketing budget.
Of those 304 calls, they were able to book 106 jobs with an average ticket around $4,200 each.
To say to the math, that's just shy of $450,000 in revenue, purely from just those organic calls to the Google Profile.
From our SEO campaign alone, it's over a 12x ROI on our services for them.
And the campaign was not an easy one. This was a tier one market, and it took us six months of work to prep for busy season, to dominate that three-month period.
And that leads me to the one question I lead with on all of my discovery calls these days:
"Do you have the patience and the budget to wait for the results to come in?"
Even in the era of AI, SEO still takes time, and it rewards those who are patient and can stick to the plan.
The home service businesses that win in SEO are the ones that can investing in the campaigns and not see an ROI in month 4 of the project.
16
30
4,383
A fencing business owner reached out to me on X a while back, asking for some help with his Google profile.
I jumped on a call with him and walked him through the setup process and how to optimize his first profile.
Didn't charge him anything at the time and just wanted to help him get on his feet.
Now, he's our client.
This past year, his business grew to $3 million a year, with a goal of $5 million next year.
It's always a really cool experience when we can help out business owners who are just starting out, and then they grow to the level of business that we work with.
The free help and audits that we provide always help businesses get to step 2 or 3, and then our SEO services take them from step 3 to 10 for their online presence.
2
5
653
Acquiring local links is one of the easiest things you can do as a home service business owner to win more jobs from Google.
Here's how we build them for our clients:
1. Run an audit with AI.
Have an AI check the backlink profiles of 10 of your competitors.
Have it scrape out all the locally relevant domains into a list.
2. Rank them.
First, you want to go after all the Chambers of Commerce. These should only cost you a yearly fee of a few hundred dollars.
Second, you want to go after any kind of trade associations or niche-type directories that are relevant to your industry. Again, a yearly membership should only cost you a few hundred bucks.
Third, go after the longest-standing organizations in your area. These are usually annual events that have been running for decades, like a marathon or a fun run of some kind.
The fourth tier is going to be your garden-variety links, like sports clubs, rotary clubs, and smaller organizations.
3. Reach out and inquire about a sponsorship.
These should only run you about a few hundred bucks, and you want to make sure your logo is listed on their sponsorship page, linking back to your homepage.
We've built dozens of these for our clients in the past year, and we attribute this to a lot of the success we've seen in our SEO campaigns.
I worked with a $4.3 million electrical company last week whose owner was proud of the 300 website pages he had written with the help of Claude for his SEO.
None of his pages were indexed by Google, none were ranking, and he has no booked work to show for his efforts.
With the advent of AI, it's just too easy to write massive amounts of content online right now, and a lot of business owners are falling prey to it.
Here's how we roll these out for our clients.
- If they don't have the basic service and their top 5 location pages built already, we build those week 1.
- After that, we start rolling out systematic location pages across the metro they want to rank in. Usually anywhere from 5 to 7 a month.
- We watch these closely and ensure the pages we write are getting indexed by Google consistently before we start writing more.
This strategy will continue until we've mapped out most of the metro they want to rank in, with city and neighborhood-type pages.
If you're building out your location pages yourself, open up Google Search Console and ensure that your pages are getting indexed before you write more.
90 days into doing YouTube videos on SEO.
About 400 subs, 45k views, and about 59 videos made.
Videos are getting more and more landing page views by the day.
17
569
A lead that costs you $50 is neither expensive nor cheap unless you know your gross profit per customer.
Say, for example, your close rate is about 10%. A lead that costs you about $50 is going to run you about $500 a deal on average.
Here's what that $500 looks like against the gross profit at three companies we work with:
A pest control company: about $2,200 in gross profit per customer, so you keep about $1,700 after lead cost at $500.
An auto shop: $6,300 per customer at 75% margins is about $4,700, so you keep about $4,200. Not bad.
A roofer: about $6,700 in gross profit on a $15K replacement, so you keep about $6,200. Best, in this breakdown.
Your gross profit per customer times your close rate is the most a lead can cost before it doesn't make senes:
$2,200 at a 10% close rate: $220 a lead
$4,700 at a 10% close rate: $470 a lead
$6,700 at a 10% close rate: $670 a lead
Your close rate moves that number as much as your margin does.
A roofing company we work with went from a 15% to a 45% close rate on SEO inbound leads since they're easier to close than leads from lead aggregators.
At $6,700 in gross profit, that's the difference between paying about $1,000 for a lead and about $3,000.
4
6
524
Codie Sanchez buys boring businesses with a portfolio worth over $100 million.
When I compared her 3Ms to how we run SEO for home service businesses, it was a one-to-one.
In a breakdown I recently did, a roofer with 23 reviews took about half the map pack from a profile that used to hold the number one spot with over 146 reviews.
Codie runs every business she buys on 3 M's: markets, marketing and measurements. And we apply that same playbook to how we rank businesses and maps.
In this breakdown, I'm going to show you how it relates to this situation.
First, her filter: weak competition and weak execution.
The older profile has 4.4 stars and gets a review about once a month. Its H2s say residential, insurance claims, inspection services and learn more, with no keywords.
The profile that took the spot has 'Orlando and roofing' in its business name and a VERY basic website.
1. Markets
Codie says another market might be adding another location 25 miles away. On Google Maps, that's a second Google profile at an office in the next pocket over, because Maps ranks a profile mostly by how close it is to the person searching vecause it's proximity-based.
That 23-review profile already has 48% of the map pack, so more SEO on it is a waste of time. The next profile goes where its rankings drop off and the competition is weak:
There was a profile that had about 811 reviews to the north, so that was out.
We found another profile to the west that had 561 reviews, so still too steep.
But then, to the south, we found a profile with 96 reviews and another one with 32 reviews in the top three spots in the map pack. that's the kind of weak competition that we want to target
Then check who lives there. Before Codie buys a car wash, she asks if at least 10,000 cars drive by per day. Your 'car count' is homeowners who need what you sell.
Pull the jobs from your CRM, then home values and your county's permit data. Where those homes meet weak competition is your next office, and you only need a 120 square foot room on a month to month lease for about $500.
2. Marketing
Codie's line on marketing: "Could you imagine if a company actually paid attention to reviews and had software to get them at the top of Google reviews? This company's never once tried to get a review, and I think we could change the company."
On Google Maps, what moves your rankings is how many reviews you're getting right now.
Here's the system we run for our clients, which has doubled and in some cases tripled their review velocity:
- Give your crew a bonus for reviews. A review is worth about $50 to $60 across our campaigns
- Ask when the job is wrapping up and the customer is happy
- Make it one tap with the QR code from your Google profile
3. Measurements
When Codie buys a business, she starts tracking the numbers the old owner never looked at. In her words, "measurements is what inside the business are we not actually measuring right now, where if we measured something, then we actually usually outperform in it."
Most owners I talk to only track one number from Google: whether the phone rang. Track these for every profile, every month:
The percentage of the map where you're in the top 3.
Calls on that profile's own tracking number.
Booked jobs attributed from those calls.
And the average ticket from those jobs sold.
Average ticket matters most. A profile that fills the phone with small repair calls is a different business than one that brings in full replacements.
We got a roofer one profile in the right pocket with an office, and it did over 163 calls this summer.
Start with a grid scan of the area you want next. Find the patch of homes where the top 3 competitors are the weakest. That's your next 25 miles.
A Google profile stuck way down in Maps only has about 10 keywords on its location page.
We build our pages to range from 50 to 80, and this is where they go.
People ask me all the time how you can even fit 50 to 80 keywords on a page without repeating it over and over.
You have to get creative with it, and you have to do it one piece at a time:
Titles tags: use your service and city keywords in these. This is pretty simple.
H1: again, have your service and city in your H1.
About sections: you can get away with about 5-6 utilisations of your keyword in a few cities in this section.
Reviews: if you have reviews that have keywords in them, you can embed them on the page to boost your count.
Nearby areas: link to your main location pages with your service and city as the link text.
FAQs: optimize these with keywords in the questions and the answers.
Footer: link to other location pages on the site with your service and city as the link text.
Typically, at this point, you can get to about 30 to 40 by optimizing these.
The way you get to 50 to 80 is by adding a local schema to your page that then reutilizes all the keywords you've already mentioned.
We built location pages this way for a fencing company that we work with, and they hold the top three spots in 86% of the maps for their target cities.
Start by counting the keywords on the top three pages of your competitors in your market, because that's the number that's going to decide how far you have to go with the strategy to win
1
4
776
We helped a $3.5 million pest control company got 120 leads in one month from organic SEO.
They came to us after being burned by two SEO agencies before us and kept returning to door knocking to generate leads over and over again.
Their website now gets over 3,000 visits a month from the customers they want in their target market.
In one month, heres what those searches turn into:
- 120 leads from SEO alone
- 54 leads on average become paying customers at $1.6k LTV per month now
- Thats about $86k in added revenue per month, or about $1M per year
- Gross profit margins sit around 21%, about $200k added for that year.
They invested $20k with us over 8 months and saw over a 10x return from our SEO work.
A PE group with 5,500+ service trucks bought a 50-year-old HVAC company two years ago.
Right now, they're using the exact same SEO strategy we use to rank home service companies in maps.
The company is Lindstrom Air Conditioning & Plumbing. Founded in 1975, about 300 employees, 100,000+ homeowners served across Broward, Palm Beach, Martin and St. Lucie counties.
Their primary location has over 11,000 reviews but reviews have grinded to a halt on it.
Here's what they have been up to:
1. They turned up the reviews first
Before the sale, the main profile was getting about 95 new reviews a month.
By May 2025, it was getting 278.
2. Then they started opening profiles, a new one every 2 months
For years, it was 2 profiles: Pompano Beach and Port St. Lucie.
Since December they opened 6 more:
Weston, December
Delray Beach, January
Boca Raton, April
Pembroke Pines, June
Coral Springs, August
Fort Lauderdale, September
3. They funneled the reviews to the new profiles
The main profile went from 278 reviews a month to 31.
But review generation didn't slow down, and in September, all eight of their profiles got nearly 230 new reviews, with most of those on the new profiles.
The Fort Lauderdale profile got 88 reviews in its first 5 weeks.
So, here's why they're doing it, and why we use this exact playbook for our clients.
Google Maps is a proximity-based algorithm, and even their original Pompano Beach profile with 11,000 reviews can't rank across an entire metro.
What they did is stand up new Google Business Profiles in the target markets they wanted to rank in.
But we're not here to just learn from large PE-backed brands. We want to beat them.
If I were running a $5 million-a-year HVAC company, I would beat Lindstrom with DBAs.
I would stand up a new business profile every quarter and file a DBA with keywords attached to the end of my business name, with the location and service I want to target.
And where these profiles go is key.
Start by pulling up your CRM and seeing where the highest-ticket and easiest-to-close jobs have come from.
Cross-reference that with home value, demographic data, and permits to see who's spending money on big home renovation projects.
Finally, do a competitor analysis and make sure someone didn't already steal the area.
This is the exact research we do for clients, and it works 10 times out of 10.
Once we dominate an area, we repeat the process in the next city over, and begin targeting new customers.
An auto shop we work with was paying $450+ per customer from Google Ads.
Our SEO campaign brought that cost per customer down to $220, and netted them $643k in sales.
Because of it, they eventually turned off Meta and LSA.
Heres how we did it:
1 - We reworked their website and on-page to target the terms customers were searching for.
2 - Reverse-engineered the shop's ranking above them.
3 - Built local backlinks and citations, and made sure every listing had consistent information.
4 - After traffic rose, we focused on conversion rate optimization to turn the clicks into customers.
At $220 a customer now, they ended up seeing a 28X on what they spent with us.
14
17
1,083
An $11M+ HVAC, plumbing and electrical contractor I consulted for this summer was getting zero plumbing jobs from SEO.
They had hundreds of service calls.
But all of their Google profiles were set to "HVAC contractor."
Google gives each profile one primary category, and it's the strongest signal for what that profile shows up for. That setup works until winter, when the AC calls dry up.
I see this setup over and over with multi-trade contractors.
What I told them:
1. Don't switch an existing profile to plumber. You'll end up with a suspended profile, and you're going to lose the HVAC market share that you currently have
2. Research where the plumbing jobs are and stand up a new profile there, with plumber as the primary category.
3. Send every plumbing review to that profile.
11
11
1,035






