Google Business Profile, Apple Maps, the aggregators feeding both, the structured data on your own pages, and reviews.
A map profile, an Apple listing, two aggregators feeding both, and whatever an assistant repeats when somebody asks out loud. They were created at different times by different people. Your verified profile is authoritative where you control it. Everywhere else, the record that wins is the one agreeing with the most other records, and none of those asked you. That is how a business ends up listed as closed on its busiest day.
A suite number in two records and not the other two. A phone number ringing a line that was disconnected. Sunday hours that say closed in one place and eleven to four in another. Nobody entered any of it on purpose.
Decides which searches you are eligible for at all. Everything else is downstream of it, and it is easy to have wrong by one step.
Sets the radius. Set it too wide and you compete for a city you will not drive to.
Decide whether you exist inside "open now", which is most of the searches that become a walk-in.
Decides which pin the map draws, and whether the pin lands on your side of the street.
Decides whether a tap becomes a call or a voicemail on a line nobody checks.
Decides whether you keep the listing. Keywords stuffed into the name field are a common reason a profile gets suspended.
A page that states its hours in a machine-readable field can be quoted correctly. A page that states them inside an image gets guessed at. We put the hours, the address, the phone, the service list and the menu into structured data on your own pages. We cannot make an assistant read you. We can make sure that when it does, the answer came from you.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Caprock Plumbing",
"telephone": "(806) 555-0114",
"address": "4413 34th St, Ste B, Lubbock, TX",
"openingHoursSpecification": [{ ← the only hours a machine trusts over your text
"dayOfWeek": ["Monday", "Friday"],
"opens": "08:00", "closes": "18:00"
}],
"areaServed": "Lubbock, TX", ← the radius, stated once, in a field
"sameAs": ["https://maps.google.com/…"] ← ties this page to the profile, so the records can be matched
}
The request goes out when the job is finished and the customer is still standing next to the result, because that is the only moment it is easy for them. It goes to everyone, at the same point in the job, to the profile that counts. Somebody answers the one-stars in public, in a tone written for the next person reading. A one-star with a reply under it reads better than a one-star alone.
We do not buy reviews, gate them, or choose who gets asked.
Answering reviews is quoted as part of Operations. Below that we set the request up and hand it to you.
Ads are rented attention that stops the day the card stops. Before renting any, run this. Take your cost per click. Divide by the share of clicks that become a call. Divide again by the share of calls that become a job. Compare the result to what a job leaves you after costs, not what it bills.
Ad campaigns are outside what we run. If the arithmetic clears and you want one, we will tell you what to hand a media buyer and what to hold them to. If it does not clear, the same money spent correcting your records will do more, and we will say so instead of running a campaign we do not believe in.
Measurable: profile views, direction requests, calls placed from the listing, form submissions, and which queries surfaced you. Not measurable: which of your walk-ins saw you online first. Anybody reporting that number is estimating it.
A one-page summary of what changed and what we did is included from $200 a month, and available on request below that. It is written by a person, which is why it says something.
We will pull your records up on the call and you can see for yourself whether they agree.