Local SEO + AI search checklist for Dallas-Fort Worth businesses
How Google and AI assistants decide which local businesses to show, what you can actually control, and 40 checks in priority order with a 90-day plan to work through them. Built from Google's own documentation, not guesswork.
- Your Google Business Profile does more for local visibility than anything on your website. Verify it, fill in every field, and keep it true.
- Reviews are a system: ask every customer, make it one tap, reply to every review. Never pay or bribe for them.
- Your name, address, and phone number should read exactly the same everywhere they appear.
- AI assistants don't have a secret door. Google says the same basics that get you found in search get you into its AI answers.
01How Google picks local businesses
Everyone selling local SEO has a theory. Google publishes its own explanation, and it's short. Local results are mainly based on three things:
- Relevance: how well your Business Profile matches what someone searched for.
- Distance: how far your business is from the person searching, or from the place they named.
- Prominence: how well-known your business is. Google says links from other websites and your review count and ratings play a part here.
Google also says, in plain words, that there's no way to request or pay for a better local ranking. So when someone guarantees you the top spot in the map, they're guessing.
Source: Google Business Profile Help, "Tips to improve your local ranking on Google".
What that means in Dallas-Fort Worth
DFW is a big, spread-out market. A business in Plano and a competitor in Fort Worth aren't really fighting for the same map results, because distance is built into the ranking. You can't move your address, so the fight is over relevance and prominence in the area you actually serve.
That shapes the strategy. A Frisco roofer doesn't need to rank in Arlington. They need to be the obvious answer in Frisco, Little Elm, Prosper, and the cities next door, with a profile, reviews, and pages that prove it.
02Google Business Profile: setup and verification
If you do one thing from this guide, do this section. Your profile is what shows up in the map, in the panel on the right side of search results, and often in Google's AI answers.
Set it up the way Google's guidelines say
- Name: your real business name, exactly as it appears on your sign, truck, or storefront. Google doesn't allow extra words in the name. "Smith Plumbing" is right. "Smith Plumbing | Best Plano Plumber 24/7" breaks the rules and can get your profile suspended.
- Address or service area: if customers come to you, use your precise address. If you go to them (plumbers, cleaners, mobile groomers), you're a service-area business and Google says to hide your address. Your service area shouldn't extend farther than about two hours of driving from your base.
- No mailbox addresses. Google doesn't accept P.O. boxes or mailboxes at remote locations, and it doesn't allow more than one profile per location.
- Phone: a local number you control, that rings at this location. Google prefers a local number over a call center line.
- Categories: as few as possible, as specific as possible. Your primary category matters most. "Emergency veterinarian" beats "Veterinarian" if that's what you are.
- Hours: your real customer-facing hours, plus holiday hours. If you only work by appointment, read Google's rules on whether to list hours at all.
- Services, description, and attributes: list every service you want to be found for, in the words your customers use.
- Photos: real ones. Outside, inside, your team, your work. Add new ones every month.
Source: Google Business Profile Help, "Guidelines for representing your business on Google".
Verification
Verification proves you're allowed to manage the business, and Google says verified businesses are more likely to show up in results. Google picks the method for you. Depending on the business, it can be a phone call or text, an email, a recorded video, a live video call, or a postcard by mail. Google says reviews of your verification can take up to five business days.
Two tips from Google's own help page that save owners weeks:
- While you wait for a postcard, don't change your business name, address, or category, and don't request a new code. Either one can cancel the code or delay things. Postcard codes expire after 30 days.
- For a video, be at the business with proof: your signage, your equipment or vehicle, and something only the owner has, like keys to an employee-only area.
Source: Google Business Profile Help, "Verify your business on Google".
03A reviews system, not a hope
Google says more reviews and positive ratings can help your local ranking, and that replying to reviews shows you value the feedback. Most businesses have happy customers and almost no reviews, because nobody asks at the right moment.
The rules first
Two sets of rules apply, and both are stricter than most owners expect:
- Google's policy bans offering incentives (payment, discounts, free goods or services) for reviews. It bans discouraging negative reviews or selectively asking only happy customers. It bans staff quotas for reviews and asking customers for specific wording, and it says businesses shouldn't pressure people to review while they're still on site. (Google Maps user-contributed content policy)
- The FTC's rule, announced in August 2024, bans fake reviews (including AI-written ones posing as customers), buying reviews conditioned on a positive or negative sentiment, undisclosed insider reviews, and threats to get bad reviews removed. (Federal Trade Commission, August 2024)
The system
- Get your direct review link from your Business Profile, so customers land right on the review box.
- Ask every customer at the moment the job is done, not only the ones who seemed happy. Asking everyone is both the rule and the habit that works.
- Send it by text the same day. It's one tap on a phone.
- Follow up once three days later if they haven't left one. Then stop.
- Reply to every review within two business days. My rule of thumb, not Google's.
- Count them monthly. Review count and average rating go on the same sheet as your calls.
Hi {first name}, thanks for choosing {business} today. If you have a minute, would you leave us an honest review? It helps other people in {city} find us. {review link}
Hi {name}, I'm sorry this wasn't the experience you expected. I'd like to make it right. Please call me directly at {number} so I can hear what happened. {Your name}, owner
Keep replies short, calm, and free of customer details. If you're in health care, never confirm someone was a patient in a public reply.
04NAP consistency and listings
NAP means name, address, and phone number. When they read the same everywhere, Google and the AI tools that read the web can be confident all those mentions are the same business. When they don't, you split your own reputation across what look like different companies.
Start by writing your official NAP once, in one document, exactly as it should appear everywhere: suite numbers, abbreviations, and all. Then make every listing match it.
| Where | Why it matters | Priority |
|---|---|---|
| Your website footer and contact page | The source every other listing gets checked against | First |
| Google Business Profile | The listing most customers see | First |
| Bing Places for Business | Bing's map and local results, and Microsoft's assistant | Next |
| Apple Business Connect | Apple Maps and Siri on every iPhone | Next |
| Yelp and the top directory in your industry | Customers check them, and other sites copy from them | Next |
| Facebook, Instagram, Nextdoor | Local customers look here for recommendations | Later |
| Your chamber of commerce and trade associations | Real local mentions from organizations people trust | Later |
Then search Google for your old phone numbers and old addresses in quotes. Every listing that still shows them is a cleanup task.
05Service-area pages that aren't spam
Here's where a lot of DFW businesses get it wrong. They make 40 pages: "Plumber in Allen," "Plumber in Garland," "Plumber in Irving," each one the same text with the city name swapped. Google has a name for that. Its spam policies list "doorway abuse," and one of the examples is having multiple pages targeted at specific regions or cities that funnel users to one page.
Source: Google Search Central, "Spam policies for Google web search".
Build a city page only when you can fill it with something real
- Jobs you've actually done there, with photos (with the customer's permission).
- Something specific to that city: the neighborhoods you cover, the kinds of homes or buildings, local rules your customers ask about.
- Reviews from customers in that city, quoted accurately with permission.
- Who serves that area and how fast you can get there.
- A clear next step: call, text, or book.
Three strong pages for the cities where most of your work happens beat 30 thin ones. For most DFW businesses that means your home city and the two or three next to it. A Plano business might start with Plano, Allen, Richardson, and Frisco, then add cities only as jobs there pile up.
06Schema basics
Schema is a short block of code on your site that labels facts for search engines: this is the business name, this is the phone number, these are the hours. Visitors never see it. Google's documentation for LocalBusiness markup lists only two required properties, name and address, and recommends others such as telephone, url, openingHoursSpecification, geo, and priceRange.
A minimal example for a service business, with placeholders to swap:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Smith Plumbing",
"url": "https://www.example.com/",
"telephone": "+1-972-555-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Example St, Suite 100",
"addressLocality": "Plano",
"addressRegion": "TX",
"postalCode": "75024",
"addressCountry": "US"
},
"areaServed": ["Plano", "Allen", "Richardson", "Frisco"],
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:00",
"closes": "17:00"
}]
}
</script>
Pick the most specific type that fits (Plumber, Dentist, HVACBusiness, and so on), match every value to what's visible on the page and your Business Profile, then test it in Google's Rich Results Test and fix any critical errors, as Google's guide says.
Source: Google Search Central, "Local Business (LocalBusiness) structured data".
Keep it honest: schema that says something your page doesn't is worse than no schema. Google's AI features guidance specifically says to keep structured data consistent with the visible text.
07How AI assistants pick businesses, and what you control
Customers now ask ChatGPT, Google's AI Mode, Copilot, and Siri for "a good electrician in McKinney." Owners want to know how to get named. Here's the honest answer: none of these companies publishes a formula for which local business gets mentioned. Anyone selling you a guaranteed spot in AI answers is selling something nobody can deliver.
What Google says
Google says there are no additional requirements to appear in AI Overviews or AI Mode, and no special optimizations needed. A page has to be indexed and eligible to show in search with a snippet. Google says you don't need new machine-readable files, AI text files, or special schema. The best practices it lists are the same basics: let Google crawl your site, link your pages to each other, keep important content in text, keep structured data consistent with the page, and keep your Business Profile information current.
Source: Google Search Central, "AI features and your website".
I do publish an llms.txt file on my own site, because it's cheap and harmless. But given what Google says, don't pay anyone to make one for you as if it were the key to AI search.
What OpenAI says
OpenAI says its OAI-SearchBot crawler is what surfaces websites in ChatGPT's search features, and that sites which block it won't appear in ChatGPT search answers. It recommends allowing it in robots.txt. That's separate from GPTBot, which collects training data and which you can block without leaving ChatGPT search.
Source: OpenAI, "Overview of OpenAI crawlers".
What you control
- Be reachable. Check robots.txt and your hosting or security settings aren't blocking Googlebot, Bingbot, or OAI-SearchBot.
- State facts plainly, in text. What you do, where you do it, your hours, a price range if you can share one, how fast you respond. An AI can't repeat a fact that only lives in an image or a PDF.
- Answer the questions customers ask. A short FAQ on each service page, written the way people actually ask.
- Be consistent. The same name, phone number, and services on your site, your profile, and your listings.
- Be talked about. Reviews, local news mentions, sponsorships, partners linking to you. That's prominence, and it matters to people as much as to software.
Once a month, ask a few assistants the questions your customers would ask, like "who does same-day AC repair in Allen, Texas?" Write down who gets named. It's not a ranking report, answers change by person and by day, but over a few months it shows you whether you're in the conversation.
08The 40-point checklist
Work top to bottom. "First" items matter most and cost the least. Tick the box when it's done, not when it's planned. Priorities are my judgment from doing this work, built on the Google guidance above.
| Done | # | Check | Priority |
|---|---|---|---|
| 1 | Profile claimed and verified | First | |
| 2 | Business name matches your sign exactly, no extra keywords | First | |
| 3 | Most specific primary category chosen; only a few secondary ones | First | |
| 4 | Service-area businesses: address hidden, service area within about two hours of driving | First | |
| 5 | Local phone number you control, the same one used everywhere | First | |
| 6 | Regular and holiday hours filled in and accurate | Next | |
| 7 | Every service listed, with a plain description | Next | |
| 8 | Real photos added, plus new ones every month | Next |
| Done | # | Check | Priority |
|---|---|---|---|
| 9 | Direct review link saved where the whole team can find it | First | |
| 10 | Every customer gets a review request by text the same day | First | |
| 11 | One follow-up after three days, then stop | Next | |
| 12 | Every review gets a reply within two business days | First | |
| 13 | Bad reviews answered calmly, with an offer to talk offline and no private details | First | |
| 14 | No incentives, discounts, or contests tied to reviews | First | |
| 15 | No filtering who gets asked, no staff quotas, no scripted wording | First | |
| 16 | Review count and average rating tracked monthly | Next |
| Done | # | Check | Priority |
|---|---|---|---|
| 17 | Official name, address, and phone written once in a shared document | First | |
| 18 | Website footer and contact page match it exactly | First | |
| 19 | Bing Places listing claimed and matching | Next | |
| 20 | Apple Business Connect listing claimed and matching | Next | |
| 21 | Yelp and your industry's main directory claimed and matching | Next | |
| 22 | Old addresses and phone numbers searched for and fixed | Next | |
| 23 | Facebook, Instagram, and Nextdoor pages match | Later | |
| 24 | Chamber of commerce and trade association listings added | Later |
| Done | # | Check | Priority |
|---|---|---|---|
| 25 | Google Search Console set up and your sitemap submitted | First | |
| 26 | Homepage title says what you do and where, like "AC repair in Allen, TX" | First | |
| 27 | Phone number on every page as a tap-to-call link | First | |
| 28 | One page for each core service | First | |
| 29 | City pages only for cities you really serve, each with something unique | Next | |
| 30 | Contact page links to your Business Profile or embeds the map | Next | |
| 31 | LocalBusiness schema added, matching the page, tested in the Rich Results Test | Next | |
| 32 | Mobile speed checked in PageSpeed Insights, worst problems fixed | Next |
| Done | # | Check | Priority |
|---|---|---|---|
| 33 | robots.txt and hosting settings allow Googlebot, Bingbot, and OAI-SearchBot | First | |
| 34 | Hours, service area, and price ranges written in plain text, not only in images | First | |
| 35 | Short FAQ on each service page, in your customers' words | Next | |
| 36 | About page names the owner and says how long you've served the area | Next | |
| 37 | Mentions earned on other local sites: news, sponsorships, partners | Next | |
| 38 | Business Profile calls, direction requests, and website clicks tracked monthly | Next | |
| 39 | Search Console clicks and top searches checked monthly | Later | |
| 40 | Monthly log of what AI assistants say when asked about your service in your city | Later |
09The 90-day plan
Forty items is a lot. Here's the order I'd work them in for a business starting from a half-finished profile and a basic website. If you're further along, skip what's done.
Days 1 to 30: the foundation
- Write your official NAP document (item 17).
- Fix the Business Profile: name, category, service area, phone, hours, services (items 1 to 7).
- Match your website footer and contact page (item 18).
- Set up Search Console and submit your sitemap (item 25).
- Start the review system: link, same-day text, reply to everything (items 9, 10, 12 to 15).
- Write down today's numbers: review count, rating, monthly profile calls. That's your before.
Days 31 to 60: the website
- Rewrite the homepage title and add tap-to-call everywhere (items 26 and 27).
- Give every core service its own page with a short FAQ (items 28 and 35).
- Write plain-text hours, service area, and price ranges (item 34).
- Add LocalBusiness schema and test it (item 31).
- Check mobile speed and fix the worst problem (item 32).
- Check robots.txt for blocked crawlers (item 33).
Days 61 to 90: prominence and measurement
- Claim and match Bing, Apple, Yelp, and your industry directory (items 19 to 22).
- Build city pages for your two or three busiest cities, only with real content (item 29).
- Ask two local partners or organizations for a mention or link (item 37).
- Start the monthly tracking: profile calls, Search Console, AI assistant log (items 38 to 40).
- At day 90, compare against your before numbers and decide what to double down on.
10Where this gets hard
None of this is secret. It's just a lot of small, boring tasks that have to stay done. Here's where owners usually stall.
- Verification goes sideways. A suspended or stuck profile can take weeks to sort out, and the fix depends on why Google flagged it. Guessing makes it worse.
- Old listings you can't log into. A previous owner, an old agency, or a directory that copied bad data years ago. Getting access back is slow, unglamorous work.
- Reviews stop the moment you get busy. The system only works if asking is automatic, not something someone remembers on a good day.
- City pages that say something real. Writing ten honest, specific pages takes real time and real job details. That's why most people copy and paste, and why copied pages don't help.
- Knowing whether it's working. Rankings bounce around. Calls, direction requests, and booked jobs are the numbers that matter, and most businesses don't track them.
If you'd rather hand this off, my SEO work covers the profile, reviews, listings, and pages, and my websites work covers the site underneath. I also wrote how to get your business to the top of Google without ads. Once the calls start coming, read the speed to lead guide so none of them slip.
11Questions owners ask
How long does local SEO take to work?+
Google doesn't publish a timeline, and anyone who guarantees a ranking is guessing. Google says there's no way to request or pay for a better local ranking. In my experience, profile and review fixes show movement within weeks to a couple of months, and website work takes longer. Track calls and direction requests monthly so you can see it.
Can I rank in DFW cities where I don't have an office?+
In regular search results, yes, with genuinely useful pages about the work you do there. In the map results it's much harder, because distance is one of the three factors Google names. Don't use a mailbox or virtual office address to fake a location. Google's guidelines don't allow it.
Do I need special files or code to show up in AI answers?+
Google says no: there are no additional requirements to appear in AI Overviews or AI Mode beyond being indexed and eligible for a snippet. Let crawlers reach your site, keep key facts in plain text, and keep your Business Profile current. For ChatGPT search, OpenAI says to allow its OAI-SearchBot crawler.
Can I offer a discount for Google reviews?+
No. Google's review policy bans incentives such as payment, discounts, or free services for reviews, and it bans asking only happy customers. The FTC's 2024 rule also bans buying reviews and fake reviews. Ask every customer, make it easy, and reply to all of them.
Email me this guide
Want a copy in your inbox to come back to? Leave your email and I'll send it to you myself, usually within a day.
