Bobcat Movers. 611 keywords ranked.
Zero tell AI engines who you are.
This is where you are today, what's already shipped, and the three decisions I need from you on the call. Scroll at your own pace, agenda bar stays with you.
Section 2 · where you are today
You're already in the top tier for AI visibility. The gap is not where most people think.
Phase 1 audit (6 Apr) scored Bobcat against 60 live AI queries across ChatGPT, Perplexity, and Google AI Overviews. Here's what came back.
BM
Bobcat Movers
San Marcos, TX · Residential, long-distance, commercial, packing
54/100
AI Visibility Score · solid mid-tier
13/20
ChatGPT
16/20
Perplexity
5/20
Google AIO
0/25
Schema
The headline
ChatGPT and Perplexity already quote you by name. Celebrate that, it puts you ahead of most movers in Texas. Google AI Overviews and schema are where the wins are hiding.
Bobcat ranks for 611 keywords on Google. Zero of them tell AI engines who you are. That's a schema fix, not a content rewrite. It's specific, fixable, and fast. Section 5 shows the sweep.
Reference: Soft Touch Moving (another OO mover client) scored 33/100, same methodology. You're already well ahead of the category median.
Section 3 · new site homepage live
The new site is live on Cloudflare. Faster, cleaner, schema-ready.
The old Duda site did its job but it's slow on mobile and the schema story was thin. We rebuilt on Astro + Cloudflare Workers. Global CDN, near-instant load, fully static, clean JSON-LD to come in the schema sweep.
PageSpeed from 19 Apr run. Mobile Performance jumped 44 to 80, that's the one that matters for higher-end homeowners booking moves on phones. Layout shift (CLS) dropped from 0.297 to 0.002, pages don't jump around while loading anymore. Tonight's deploy is the homepage only, inner pages ship in the next push.
What's different in the rebuild (and why it matters for you)
Same URL, same content, completely different engine underneath. Here's what that buys you.
Area
Old (Duda)
New (Astro + Cloudflare)
Why it matters for you
Speed
3-5s mobile load
Under 1s from the edge
Higher-end homeowners on phones don't wait. Faster pages = more quote requests, higher Google rank.
Weight
Hosted builder, heavy JS, slow TTFB
Static HTML, near-zero JS, global CDN
Less to break. Mobile users on patchy signal around Wimberley or Canyon Lake still get the site instantly.
Schema / AI
Thin, generic, zero on-page
Clean JSON-LD, validated (sweep incoming)
AI engines (ChatGPT, Perplexity, AIO) read schema to know who you are, where you serve, what you do.
Flexibility
Duda template constraints
Fully custom, per-city and per-service pages
Proper dedicated pages for San Marcos, Kyle, Buda, Wimberley, New Braunfels, Seguin, and long-distance lanes.
Editing
Duda editor / dev ticket
AI-assisted edits in minutes
New service page, new city page, new promo? Minutes not days. Copy changes don't need a developer.
Long-distance
No lane-specific pages
Lane pages ready to build
Long-distance is your #2 revenue line. Dedicated "San Marcos to Dallas / Houston / Phoenix" pages capture that intent.
Coming to the new site
Click-and-chat editing, right on the live site.
You log into your site, click any element (headline, icon, color, photo), tell the chat "change this red to navy" or "swap this hero photo" or "rewrite this paragraph". The AI agent does it, shows you a preview, you approve or tweak. No tickets. No developer wait. Same tech behind Claude Code's design mode. Landing this quarter.
Section 4 · real AI citations captured
You are being quoted in AI answers. Here's the receipts.
Every citation below is pulled straight from the Phase 1 audit (6 Apr), 60 live queries against ChatGPT, Perplexity, and Google AIO. These are the ones where Bobcat showed up by name. This is the asset you keep compounding.
ChatGPT · Bobcat
"best moving company in San Marcos TX"
"Here are some reputable moving companies in the area: Bobcat Movers..."
ChatGPT · Bobcat
"movers for college students San Marcos TX"
"If you're a college student in San Marcos seeking moving services, here are some options tailored to your needs: Bobcat Movers..."
Perplexity · Bobcat
"commercial movers San Marcos TX"
"Bobcat Movers: commercial moving, business relocation, on-site moving, long-distance; serving San Marcos since 2005 with precision..."
Perplexity · Bobcat
"is Bobcat Movers a good moving company"
"Based on available information, Bobcat Movers appears to be a reputable moving company with strong customer satisfaction and a solid track record."
Perplexity · Bobcat
"packing services San Marcos TX"
"Several professional packing services are available in San Marcos including full-service moving companies such as Bobcat Movers and D&V Movers..."
Perplexity · Bobcat
"movers for college students San Marcos TX"
"Moving in or out of Texas State University? Bobcat Movers offers stress-free college student moving services in San Marcos, TX."
Full citation set lives in deliverables/bobcat-movers/ai-ranking/. 12 of 20 ChatGPT queries and 16 of 20 Perplexity queries cited Bobcat by name. AIO is the gap, Section 5.
Section 5 · the signature play · schema sweep sprint
611 keywords ranked on Google. Zero of them tell AI who you are.
That's the one-line version. Here's the full story: Bobcat's site ranks for 611 Google keywords but carries no structured data (JSON-LD schema). Schema is how AI engines read a site, it's the machine-readable name tag for "this is a moving company, these are the services, these are the service areas, these are the reviews". Without it, ChatGPT and Perplexity are quoting you from pattern-matching alone. Google AI Overviews, which weights schema heavily, barely sees you (5/20). This is the single highest-leverage fix in the audit.
Step 01 · Map
Entity + service + area mapping
Map Bobcat's full entity: LocalBusiness + MovingCompany types, NAP, founding (2005), service list (residential, long-distance, commercial, packing), 9 service-area cities, 404 reviews aggregate. Everything AI needs to cite you confidently.
Step 02 · Deploy
JSON-LD across the new site
Schema shipped on homepage + every service page + every city page via Astro. LocalBusiness, Service, AggregateRating, Review, Place, FAQPage. Validated with Google's Rich Results tool and Schema.org validator before push.
Step 03 · Re-audit
60-query re-run at 30/60/90 days
Same 60 queries re-run across ChatGPT, Perplexity, AIO. Target: AIO moves from 5/20 to 12+/20, schema category from 0/25 to 20+/25, total score from 54 to 75+. Measurable, comparable, evidence-based.
Schema Sweep · included in current retainer
This goes in the moment the homepage rebuild lands. No extra cost, no new agreement. The 611/0 number gets fixed in the next 2-3 weeks, re-audit at day 30 confirms the lift.
Included in retainer
NO COMMITMENT · FIXED SCOPE
Section 6 · second play · higher-end retargeting
Your ideal customer is middle-aged, owns a nicer home, and almost always comparison-shops before booking.
You told us the money is in higher-end residential. Those homeowners don't book on first visit. They look at 3-5 movers, open 2-3 quote forms, then sit on it for a week. Right now, if they leave the Bobcat site without calling, they disappear. A simple Facebook + Instagram retargeting layer keeps Bobcat in front of them for the entire decision window, for pennies per impression.
Layer 01 · Pixel
Meta pixel + conversions API
Meta pixel on the new Astro site + server-side conversions API through Cloudflare. Tracks every visitor, every quote-form touch, every phone-click, even with ad blockers on. Builds a retargeting audience from day one.
Layer 02 · Audiences
Zip-code + household-income layer
Target the Hays + Comal + Travis county zip codes where the higher-end homes are. Layer Meta's household income segments (top 25-50% in area). Exclude college-student-area zips to keep budget on high-value moves.
Layer 03 · Creative
Before/after + review reels
Short video ads: crew doing a tidy, careful move (before/after wrap jobs, pads on floors, team moving a piano). Stacked with your 404 5-star reviews as social proof. Creative refreshed every 2 weeks so it doesn't go stale.
Layer 04 · Lanes
Long-distance lane campaigns
Long-distance is your #2 revenue. Separate campaign set for "San Marcos to Dallas / Houston / Phoenix / Denver" intent. These are bigger-ticket jobs, longer decision cycles, perfect fit for a 14-30 day retargeting window.
Layer 05 · Quote flow
Short-form quote to phone
Ads send to a lightweight quote page (not the full site). 4 fields, one CTA: name, from zip, to zip, move date. Form completion triggers an immediate text to you or Kate. Reply-time drops to minutes, closes up.
Layer 06 · Report
Weekly spend + lead report
Monday 7am email: spend, cost per lead, lead quality tag (residential local / residential long-distance / commercial / packing), which ads pulled, which flopped. One page. No agency-speak.
Live agent test · starting this week
I'm putting my own Google + Facebook ad budget behind the agent stack starting Monday 27 Apr. You see the first real data on your dashboard by 8 May. Not a pitch deck. Actual calls, actual quote requests, actual cost per lead for San Marcos movers.
2 wks
TO FIRST DATA
Section 7 · the full lead gen engine
Schema and retargeting are two layers. Here's the whole stack.
Every layer runs in parallel. No silver bullet. The compound effect moves the needle over 6-12 months, but the first data lands in your inbox inside 2 weeks.
Layer 01 · Agents
AI super-agents
24/7 answer, qualify, book. Agents that can give move estimates, send quotes, follow up with dead leads, and ping you or Kate when a real human is needed. Tuned on Bobcat's residential + long-distance + commercial flows separately.
Layer 02 · SEO
Local rankings + entity
San Marcos, Kyle, Buda, Wimberley, Canyon Lake, New Braunfels, Seguin, Luling, Lockhart. Citations, schema (fixing in Section 5), review velocity, GBP posts. Slowest to compound, cheapest channel long-term.
Layer 03 · AI ranking
ChatGPT / Perplexity / AIO
Phase 1 done (54/100). Phase 2 closes the 3 gaps: AIO placement (currently 5/20), schema depth (0/25), and authority backlinks. Re-audit at day 30/60/90.
Layer 04 · Google Ads
LSA + search + Performance Max
Local Services Ads for the "call-now" mover intent (Google-verified badge ≈ higher trust). Search for lane-specific and high-value job types. Performance Max for wider awareness. Agents route the leads.
Layer 05 · Facebook Ads
Retargeting + awareness
Section 6 play. Retargeting site visitors who didn't convert. Income + zip targeting for higher-end residential. Before/after reels, social proof from your 404 reviews.
Layer 06 · Reports
Automated weekly
Weekly email Monday 7am. Quotes requested, jobs booked, ad spend, SEO movement, AI citations, retargeting cost per lead. No silence. Everything on one page.
Section 8 · the three asks
Three decisions. Today.
Everything we've covered unlocks from these three yeses. None of them are big. The first is a 3-minute click, the second is a verbal yes, the third is a kill-switchable trial.
1
Grant GSC + GA + GBP access
Add webaccess@onlineoptimisers.net as Manager on Bobcat's Google Search Console, Google Analytics, and Google Business Profile. 3 minutes total. Unlocks the live portal + lets us wire the weekly report.
2
Green-light the schema sweep
Approve the Phase 2 schema + AI ranking work. Target ship: JSON-LD live site-wide within 2-3 weeks of homepage rebuild. Included in current retainer, no additional cost.
3
Yes / no on retargeting pilot
Starting Mon 27 Apr we're putting OO ad budget into the higher-end residential + long-distance lane retargeting play. First data on your dashboard by 8 May. Kill switch any time.
Section 9 · have a think before the call
15 questions for you to roll around.
No need to type answers, no form to fill. Just let these sit in your head before we get on. We'll cover them live, in order, for whichever ones matter most to you.
AI vision + positioning
If AI ranking delivered 10 extra quote requests a week in 90 days, what's that worth to Bobcat? (Factor in that higher-end residential and long-distance are your best-margin lines.)
Which job type matters most to win right now: higher-end residential local, long-distance out-of-state, commercial, or packing-only?
Are there jobs you actively want fewer of? (Studio apartments, short-notice, last-minute college moves, anything that eats crew hours for low margin?)
AI agents (the super-agent layer)
What takes up the most of your time or Kate's time week-to-week that an agent could take off your plate? (Phone triage, quote calcs, follow-ups, scheduling?)
Would you trust an AI agent to send a binding move estimate directly, or do you want a human to approve every quote first?
Should the agent sound like Bobcat itself ("This is Bobcat Movers..."), or like "Blake's assistant at Bobcat"? Different trust dynamic with each.
Lead response + long-distance
Right now, when a web quote request comes in, what happens in the first 5 minutes? First hour? First day?
Rough gut feel: what percentage of inbound quote requests go cold before someone reaches them?
Long-distance is your #2 revenue line. What are your strongest out-of-state lanes right now? (San Marcos to Dallas? Houston? Phoenix? California?)
When you lose a higher-end residential job, do you usually know why? (Price, timing, competitor, didn't feel right?)
Service area + city strategy
Of your 9 service-area cities (San Marcos, Kyle, Buda, Wimberley, Canyon Lake, New Braunfels, Seguin, Luling, Lockhart), which 3 are the most valuable per job and which are the highest volume?
Any city you'd drop tomorrow if you could? (Too far for the crew to break even, too much traffic, not your customer profile?)
Is there a nearby city we're not listing that you'd like to push into? (Austin metro? Austin core? Round Rock? Bastrop?)
CRM and budget
What's your current CRM / quote-tracking setup? (SmartMoving? Moverbase? A sheet? Email inbox? "Kate's head"?) Which piece do you actually trust day-to-day?
If the retargeting trial produces 3-5 extra higher-end jobs in 60 days: do you want to expand it to long-distance-only campaigns, or double down on residential local with more spend? (Different muscle either way.)
Nothing here is a gotcha. If the answer to half of them is "I don't know yet", that's a useful answer too. Just tells me where to help first.