Andres, before we get into the gaps: a 5.0-star rating with 70 reviews is elite territory. In a market saturated with storm chasers and one-star nightmares, Lions Crown is delivering the kind of customer experience most roofers can only talk about. The problem isn’t your craft. The problem is that the people searching for a roofer in Katy right now have no idea you exist.
70 five-star reviews at a perfect 5.0 average. Customers call you “professional,” “knowledgeable,” and “the best price.” That’s the language of a business that earns its referrals.
Real office at 1526 Katy Gap Rd. BBB accredited. Licensed. Not a truck and a phone number — a real operation Google can verify.
Inspections, repair, replacement, gutters, siding, attic insulation, storm response. You can monetize every call, not just the easy ones.
You’re spending $10K–$15K/mo on ads. That’s not the problem — the problem is that nothing organic is picking up the slack. Every dollar stops working when the ad stops running.
Every ad runs the same hook: “New Roofs Starting at Just $99/Month. Schedule Your Free Inspection Today!” Same CTA, same footer (“Your Trusted Roofing Company in Texas / A Rated BBB Accredited”). Different images but identical messaging. When Meta sees 5 ads with the same copy targeting the same audience, it picks 1–2 winners and starves the rest. You’re paying for 5 ads and likely getting results from 2.
Your Google ads run under “Andonie Construction Dba Lions Crown Roofing” targeting the wider Houston metro (“Katy to La Porte, Galveston to Conroe”). Some sponsored GBP cards show “Houston” as your city, others show “Katy.” The address confusion isn’t just an SEO problem — it’s leaking into your paid ads too.
The $99/month financing hook is decent — but it’s the only hook you’re testing. You should be running 3–4 different angles: “$99/mo Financing” vs. “Free Storm Inspection” vs. “5.0 Stars, 70 Reviews” vs. “24/7 Emergency Roof Repair.” Different hooks attract different buyers at different stages.
With 13 Google ads and 5 Meta ads, you’re spending $10K–$15K/month across two platforms. Do you know which ads produce signed contracts? Which platform? Which creative? Without channel-level ROAS tracking, you’re optimizing blind.
Your Google Ads show “7+ years in business” but your BBB profile lists a start date of March 2024 (2 years). One of your sponsored GBP listings shows 56 reviews at 5.0★, another shows 53 at 4.9★, and your organic GBP shows 70 at 5.0★. These inconsistencies can erode trust with both Google’s algorithm and prospective customers. Worth cleaning up.
Your website footer shows 2800 Post Oak Boulevard Suite 5600E, Houston, TX 77056. Your Google Business Profile shows 1526 Katy Gap Rd Suite 904, Katy, TX 77494. Your BBB listing matches the Katy address. When Google sees conflicting NAP (Name-Address-Phone) data across your website, GBP, and directories, it penalizes your Map Pack ranking because it can’t confidently place your business. This is your single biggest problem and likely the #1 reason you’re invisible. Every local SEO signal depends on address consistency — and yours are 30 miles apart.
The Map Pack (top 3 local results with a map) drives ~44% of all local search clicks. Lions Crown is nowhere in the top 15 for this keyword. Not on the first page for “roofer near Harris County TX” either. That’s your target market — and they can’t find you.
Your GBP category reads “Roofing contractor in Harris County TX.” Harris County is 1,777 sq mi. Google uses city-level signals to rank local searches — when your profile says the entire county, you get buried by any roofer whose profile actually says “Katy.” This is a free 10-minute fix.
lionscrownroofing.com/sitemap.xml references three sub-sitemaps (website.xml, blog.xml, ola.xml) but exposes no actual page URLs to Google’s crawler. Google can’t index what it can’t find. That’s why you don’t rank for any Harris County roofing searches — your service pages aren’t in Google’s index.
Your Meta ads buy leads one at a time. They don’t build an organic flywheel. Every dollar stops working the moment the ad stops running. Meanwhile, the roofers in the Map Pack collect free leads 24/7.
| Competitor | Google Reviews | Rating | In Katy Map Pack? |
|---|---|---|---|
| Onit Roofing (Katy HQ) | 400+ | 4.9★ | ✓ Yes |
| Texan Roofing | 300+ | 4.8★ | ✓ Yes |
| Elite Roofers | 250+ | 4.9★ | ✓ Yes |
| Remedy Roofing | 180+ | 4.7★ | ✓ Yes |
| Lions Crown Roofing | 70 | 5.0★ | ✗ Not ranking |
You have the highest rating on that list. Google doesn’t reward you for it because Google can’t find your service pages and your address data is conflicting. Review quality is a ranking factor — but only once Google actually indexes you and trusts your location.
“Roofer near Katy TX” + variants drive an estimated 2,400+ searches/month in the Katy metro. Map Pack listings capture ~44% of those clicks. If you ranked in the top 3, you’d see roughly 310+ profile clicks/month from organic search alone. At a 6% lead-to-close rate and an $11,000 average ticket, that’s ~$2.0M in annual organic revenue — with zero additional ad spend.
Your website footer says 2800 Post Oak Blvd, Houston. Your GBP says 1526 Katy Gap Rd, Katy. Pick one — whichever is your real office — and make sure every listing matches: website footer, GBP, BBB, Yelp, Angi, HomeAdvisor. If Katy is your market, the Katy address should be everywhere. Why it matters: NAP (Name-Address-Phone) consistency is the #1 local SEO signal. Conflicting addresses tell Google your business isn’t trustworthy enough to show in the Map Pack.
Log into business.google.com → Info → Verify your profile reads “Roofing contractor in Katy, TX” not “Harris County TX.” Also update your service area to list Katy, Cinco Ranch, Fulshear, Richmond, Cypress, Sugar Land. Why it matters: Google weighs city-level relevance heavily. This single change typically moves businesses 5–10 spots in Map Pack results within 2–3 weeks.
Your sitemap at /sitemap.xml only references three sub-sitemaps without actual page URLs. Generate a flat XML sitemap that lists every service page, location page, and blog post with <loc> and <lastmod> tags. Submit in Google Search Console under Sitemaps. Why it matters: Google can’t rank pages it doesn’t know exist. Most of your site is currently invisible to the crawler.
Businesses that post photos weekly get 35% more clicks and 42% more direction requests (Google data). Your crew does 24/7 storm response — have a foreman text one before/after per job to a shared album. Post 5 to GBP every Friday. Why it matters: Photo activity is a freshness signal. Right now your profile looks dormant to Google’s algorithm.
You’re spending $10K–$15K a month on ads. That’s $120K–$180K a year. The question isn’t whether ads work — it’s whether every dollar in and every lead out is being tracked, nurtured, and converted.
| Lead Lifecycle Stage | Status Today | Est. Leakage |
|---|---|---|
| Ad impression → Landing page | Working | Normal |
| Form fill → CRM | Unclear | 10–20% lost |
| Lead → First call attempt (speed) | Unknown | 30–50% if >5 min |
| Missed call → Callback / text-back | Manual | 40–60% abandoned |
| No-answer → Follow-up sequence | Ad hoc | 50%+ drop-off |
| Closed-lost → Nurture / reactivation | None | 100% wasted |
| Channel-level attribution (ROAS) | Unknown | Can’t optimize |
If your ads generate 80 leads/month and you close 6% into $11K jobs, that’s ~$53K/mo in revenue. Missing 30% of callbacks — the industry norm for contractors without a follow-up system — means roughly $16K/month you’re paying to generate and then dropping on the floor. Annualized: ~$190K in lost revenue.
Auto-text every new lead within 60 seconds. Contractors who respond in <5 min are 9× more likely to close.
Every missed call gets an automated “We just missed you — here’s our calendar” text. Recovers 30–50% of dropped calls.
Every lead tagged by source. You’ll know in 30 days whether Meta, GBP, or referrals are producing revenue.
Closed-lost and “not ready” leads drip for 90 days. 15–25% become future jobs at near-zero CAC.
You’re running ads on two platforms, spending $10K–$15K a month, and Google can’t figure out if you’re in Katy or Houston. Before we build a 90-day plan, these six questions help us figure out where the real bottleneck is.
Align all addresses to one location (Katy or Houston — wherever is HQ). Reset GBP category to Katy. Rebuild XML sitemap and submit to Search Console. Update all directory listings (BBB, Yelp, Angi, HomeAdvisor) with matching NAP data. Install call tracking on every ad channel. Install missed-call text-back. Baseline current keyword rankings across 30 Katy + Harris County terms.
Build location pages for Katy, Cinco Ranch, Fulshear, Richmond, Cypress, Sugar Land. Build service pages with schema markup for roof replacement, repair, inspection, hail/storm damage. Launch review response automation on all 70+ reviews + new ones. Set up lead source tagging in your CRM so every Meta/GBP/referral lead is attributed.
Weekly photo posting to GBP (5/week, automated from field). Review request automation post-job (texts homeowner 24hrs after completion). 90-day closed-lost nurture sequence live. Monthly ROAS-by-channel report showing what’s producing revenue. Reallocate ad spend based on actual attribution data — not gut feel.
| Action | Cost | Time | Impact |
|---|---|---|---|
| Align website address with GBP | Free | 15 min | Critical |
| Fix GBP category to Katy | Free | 10 min | High |
| Rebuild XML sitemap | Free | 1 hr | High |
| Submit sitemap to Search Console | Free | 15 min | High |
| Update all directory listings (NAP) | Free | 2 hrs | High |
| Post 5 photos/week to GBP | Free | 30 min/wk | Medium |
| Install missed-call text-back | ~$50/mo | 1 hr | High |
| Build location + service pages | Dev time | 2–3 wks | High |
| Lead source tagging in CRM | Tool setup | 1 wk | High |
I’ll walk you through this report live, show you the specific Map Pack rankings, and answer any questions about the 90-day plan.
Book Follow-Up CallRivet helps home service contractors doing $2M–$8M stop missing leads, track revenue by channel, and turn their marketing spend into a predictable pipeline. We work with roofers, remodelers, and specialty trades across the US. Based in Metro Detroit. hello@rivetops.io • (248) 243-4471