Google’s AI Mode passed a billion monthly users in May 2026. It can now call a local business directly on a customer’s behalf and ask for a price.

It changes something more specific than “AI is coming for the industry.” It changes who gets to compete for a job in the first place, and it does that before a human customer ever types a business’s name into a search bar. Call it AI visibility: whether the system doing the choosing can actually read what a business has to offer.
Every era hands the job of choosing a tradesperson to a different gatekeeper. Getting chosen has always meant being legible to whichever one is currently in charge. A medieval market required a trader to register with the local authority before a single customer could legally buy from their stall. A moving company later needed to be legible to a phone book, then to a search engine’s crawler. The gatekeeper keeps changing shape. What it demands of a business trying to get chosen does not: information a stranger or a system can actually read, in whatever format that stranger currently reads.
The click is already disappearing
For twenty years, discovery worked through search results a person read, compared and clicked. That’s breaking down. Pew’s research on AI-summarized search found that click-through to traditional results drops when an AI summary appears above them: from 15% of visits to just 8%. Nearly half the click-through disappeared, not because rankings moved, but because the reader never scrolled past the summary.
This is the shift for anyone who still does their own clicking. A narrower group of buyers goes further: they hand the whole search to an agent and never read a summary at all. For that group, a business’s homepage isn’t competing for attention. It’s competing to be parsed correctly by a system that never sees the page the way a person does.
What “machine-legible” actually means
Schema.org defines a structured format for local business listings: a JSON-LD block that states a service area, a price and a pricing unit in a shape a program can parse without guessing. Two pricing pages can look identical to a person. One is a paragraph of marketing copy ending in “contact us for a custom quote.” The other has the same information wrapped in that structured block. Only one of them hands an AI agent a usable number.
Named crawlers cover part of this, though not the part that matters most, and one of them isn’t a crawler at all. Google’s own documentation says Google-Extended “doesn’t have a separate HTTP request user agent string”: it’s not a bot reading a page, but a permission flag that controls whether content Googlebot already fetched can later train Gemini. The flag has no effect on search indexing or ranking. GPTBot and ClaudeBot are real, separate crawlers, but they serve the same after-the-fact purpose. OpenAI says GPTBot “is used to crawl content that may be used in training” its models. Anthropic describes ClaudeBot’s job the same way. Neither one reads a page at the moment an agent is deciding who to call. That work runs through a different set of bots: OAI-SearchBot and PerplexityBot exist specifically to “surface websites in search results,” and fetchers like ChatGPT-User and Perplexity-User read a page the moment someone asks a real question. When a site gates its pricing behind a form, a phone number, or a quote-request flow with no static, crawlable answer underneath it, that site is legible to a person willing to fill out a form and wait. It isn’t legible to a system reading in bulk, on someone’s behalf, in the seconds before it reports back a shortlist.
A middle case is even more common than having no pricing information at all. A rate sheet might exist only as a PDF behind a “Download Our Rates” link, or as pricing baked into a photographed infographic. Or the price might only appear after a customer clicks through an interactive quote calculator built entirely in JavaScript, with nothing rendered on the page for a program that doesn’t execute scripts. To a person, all three look like a business that publishes its pricing. To an agent reading the raw page, a PDF is a file it may or may not open, an image has no extractable text, and a client-side calculator can be functionally blank until a human clicks a button the agent never will. Being half-legible produces the same outcome as not being legible. The agent moves on to the next name on its list.
Machine-legible pricing is one symptom of a wider gap: a price a person can read and a system can’t costs a business the same lead twice over.
An agent doesn’t browse. It reads.
An AI agent gathering quotes on someone’s behalf doesn’t scroll past a hero image, read a testimonial, or form an impression from a logo. It reads whatever structured, machine-legible information a business makes available, and it reads several competitors in the same pass. When an operator’s pricing, service area or availability aren’t legible to that kind of read, the operator doesn’t lose the job. It never enters the set of options the agent reports back.
That’s a different failure mode than losing to a lower bid. It’s not competing at all. A homepage built to impress a human visitor can be functionally invisible to the system now shortlisting on that visitor’s behalf. The two failures look identical from the outside: fewer inbound quote requests, no obvious cause, nothing on an analytics dashboard flagged red.
Two operators, one quote request
Here’s a hypothetical two-bedroom apartment move: 18 miles, second-floor walk-up on both ends, no stairs at the truck. A customer’s AI agent is gathering quotes for it, querying five local movers.
Operator A’s site has a clean, modern homepage: photos of a branded truck and three testimonials. A single button reading “Get a Custom Quote” opens a contact form asking for name, email and phone number. No price appears anywhere on the page in text a program can parse. The agent has nothing to extract. Operator A doesn’t appear in the comparison the agent hands back to the customer, not because the price was too high, but because there was no price to read.
Operator B’s site has a plain-text rate posted on its pricing page: two movers and a truck at $109 an hour, a two-hour minimum, and a $75 flat travel fee inside 25 miles, all wrapped in the structured markup described above. The agent extracts a concrete figure: two hours at the hourly rate plus the travel fee, $293, flagged as an estimate rather than a binding quote. That number lands in the customer’s shortlist alongside four competitors. Operator B is now one of the businesses the customer considers, whether or not $293 turns out to be the lowest number on the list.
Nothing about Operator A’s service, price or reputation was worse than Operator B’s. The difference sat entirely in what the page said to something that can’t ask a follow-up question.
“We still get calls, so this isn’t urgent yet”
The “we still get calls” objection is fair, and deserves a real answer, not a dismissal.
Most quote requests still arrive through a person who called or clicked, and that will stay true for a while yet. But the same structured pricing data that makes a business legible to an AI agent also makes it eligible for the price-forward rich results ordinary search already favors. They show a price range directly in a result before anyone clicks anything. When businesses stop keeping their pricing exclusively in a salesperson’s head and put it into a structured, always-current format instead, they hold up better under both kinds of scrutiny: a person comparing search results and a system reading on someone’s behalf.
The real cost of waiting isn’t the AI traffic missed this month. Publishing accurate, structured pricing takes time. A competitor who does it now is already indexed and answerable by the time a meaningful share of quote requests start arriving this way. Once the volume becomes undeniable, fixing it under pressure means fixing it a step behind whoever moved first.
The fix is smaller than it sounds
The other objection worth taking seriously is practical rather than strategic: most moving companies don’t employ a developer, and “add structured data to your website” sounds like a project that needs one.
It doesn’t require a rebuild. A JSON-LD block is a small, separate piece of code that sits alongside a pricing page without changing how the page looks or reads to a person. How much of that work is manual depends on the platform. Rank Math is one of the SEO plugins most WordPress moving-company sites already run for their title tags and meta descriptions. It also has a Service schema type built for exactly this: enter a price and a currency in a field, and the plugin writes the structured markup itself. Yoast, the other common WordPress plugin, does the same automatically for a business’s address and hours. Wix and Squarespace both generate some structured data of their own, but neither gives an owner a field for a custom price the way the WordPress plugins do. Getting a price into either one’s markup means using a manual or code-injection option instead of an automatic one, a real difference in effort, not a rounding error. The actual work isn’t code. It’s deciding on a real, current number for each service and publishing it in plain text somewhere a program can read, the same discipline a business already needs so a phone quote doesn’t contradict a website quote.
What exclusion actually costs
A business that ranks eleventh on a results page for a competitive search term still gets found by a person willing to scroll, or willing to try a more specific search the following week. Ranking eleventh is a bad outcome, not an invisible one.
Being excluded from an AI agent’s shortlist doesn’t work that way. An agent gathering five quotes reports back five names. No eleventh position exists for a person to stumble across by scrolling further, because the agent isn’t a ranked list a customer pages through. It’s a finished answer, handed in this scenario to someone who never sees a results page at all. A business with no usable pricing data isn’t ranked low. It’s absent from the answer, the same way a business with no listed phone number isn’t ranked low in a directory. It’s left out of the directory entirely.
That distinction changes how large the risk is. A slow decline in organic rankings is visible and gradual, something a business can watch happen and respond to. Exclusion from an agent’s shortlist leaves no ranking to watch. It just produces fewer quote requests from a channel the business never knew it had lost, with nothing on a dashboard pointing back to the cause.
AI Visibility: What Gets Read Before Anyone Calls
None of this is speculative. The capability exists today, inside a product already used by more than a billion people a month. How fast operators adjust to it is still open. Most won’t, because “make sure a machine can read your pricing” doesn’t feel urgent next to a quote that needs sending this afternoon.
Reading the page is the wide version of this problem, the one this piece has been about. The narrower version happens when the agent doesn’t stop at reading and picks up the phone instead. Google calls a business’s office directly and asks the question out loud, the same way a customer would, minus a customer’s patience for a callback.
An AI agent finds the operators who treat machine-legible pricing as infrastructure built once and kept current, not as a future problem to get to eventually. Everyone else keeps competing for a shrinking set of jobs that still route through a person who read past the summary. That’s a smaller share of the searches happening at all.
Movaros keeps pricing structured and current without a developer.
Building on shared infrastructure means the machine-legible pricing this piece describes ships as part of the system, not a separate project.
