Local AI Visibility · Worked example

AI visibility audit example: a worked walkthrough

Instead of explaining an AI visibility audit in the abstract, here’s the whole thing run end to end on one service business — the exact checks, what each one turned up, and the single fix that closes each gap.

AI Visibility Lab Research Team
Reviewed by the editorial desk
Updated June 20268 min read

The business we’re auditing

About this example

River City Drains is an illustrative, fictionaldrain-cleaning and plumbing service used to make the audit concrete. The findings are the kind real audits surface; the company isn’t real. It’s a single-location service business with a small React website, a Google Business Profile claimed years ago, and a handful of directory listings — a very common starting point.

The owner’s complaint is the one we hear most: “I asked ChatGPT for the best drain company in town and it never mentions us.” The audit’s job is to turn that frustration into a specific list of reasons and fixes — not vague advice about “doing more SEO.”

The five checks

Every audit on this site runs the same five checks, in the order an answer engine itself works: it has to find and read a page before consistent details matter, and details have to agree before corroboration counts. That order is the Crawl-Read-Cite Ladder — these checks sort onto its Crawl, Read and Cite rungs. None of this needs paid tools — a browser, the AI engines themselves, Google’s free Rich Results Test and a spreadsheet are enough.

  1. Read the page the way a crawler does (View Source)

    Open the business’s key pages, right-click and choose “View Source,” and search the raw HTML (Ctrl/Cmd+F) for the business name, full address and phone number. If they aren’t there — because the page only fills in after JavaScript runs — a retrieval layer can’t read them either.

  2. Run the prompts a customer would actually type

    Ask ChatGPT, Perplexity and Google's AI Overviews the real recommendation questions — "best [service] in [town]", "who does [service] near [neighborhood]" — in a fresh/logged-out session. Record whether the business is named, named correctly, and with the right details.

  3. Check the structured data against what's on the page

    Paste each page into Google’s Rich Results Test (or read the application/ld+json block in View Source) and confirm there is LocalBusinessschema whose name, address and phone match the visible text exactly — and that any FAQ schema mirrors questions the page genuinely answers.

  4. Compare the listings and citations side by side

    Put the website, Google Business Profile, Foursquare, Apple Maps and the top directory listings in one table. Note every disagreement in name, address, phone, hours and category — those conflicts are what make an engine treat the business as ambiguous.

  5. Write down findings and a fix list, in priority order

    For each gap, record what an engine sees today and the single concrete change that closes it. Order the list the way an engine works — crawlable and readable first, consistent details next, corroboration last.

The audit, step by step

1. View Source — what a crawler actually sees

We opened the River City Drains homepage, right-clicked, chose “View Source,” and searched the raw HTML for the phone number. It wasn’t there. The source was essentially an empty <div id="root">— the name, address and phone only appeared once the React app hydrated in the browser. To a retrieval layer that reads the initial HTML, this business had no contact details at all. That single finding explains a lot: if an engine can’t read the NAP, it can’t confidently name the business.

If your name, address and phone aren’t in View Source, the AI layer reading the page can’t see them either — no amount of “AI optimization” fixes that.

2. Prompt tests — ask what a customer asks

In fresh, logged-out sessions we ran the same three prompts a real customer might type, in each engine:

  • “Best drain cleaning company in [town]?” — ChatGPT named three competitors and not River City Drains; Perplexitynamed two, both with citations to directory pages; Google’s AI Overviewshowed a map pack the business wasn’t in.
  • “Who fixes a blocked drain near [neighborhood]?” — no engine surfaced the business, even though its real service area covers that neighborhood.
  • “Is River City Drains any good?” (a direct, name-it-yourself prompt) — ChatGPT hedged that it couldn’t find much information and offered the old phone number from a stale listing. That last detail is the tell: the engine had a record, just an out-of-date one.

Recording the exact wording matters. “Not recommended” and “recommended with the wrong phone number” are different problems with different fixes — and only the name-it-yourself prompt revealed that an old listing was leaking bad data.

3. Schema check — are the facts machine-readable?

We pasted each page into Google’s Rich Results Test and also scanned View Source for an application/ld+jsonblock. There wasn’t one anywhere on the site — “no items detected.” Schema doesn’t manufacture authority, but its absence means the few facts the page did state were left for the engine to infer rather than read directly. Adding LocalBusiness schema whose name, address and phone match the visible text exactly is one of the cheapest wins on the list.

4. Listing & citation consistency

Finally we put the website beside the Google Business Profile, Foursquare, Apple Maps and the top two directory listings in a single table. The conflicts jumped out: two different business names (“River City Drains” vs. “River City Drain Co.”), an old suite number on the profile, and a previous phone number still live on Foursquare — the very source ChatGPT leans on for local answers. To an engine cross-checking sources, these disagreements read as risk, and risky candidates get left out.

Findings & the fix list

Here’s the full audit summary — what an engine sees today, and the single concrete change that closes each gap. We work the list top-down, because a page has to be readable before consistent details or corroboration can help it.

CheckWhat the audit foundVerdictThe fix
View Source — name, address, phone in raw HTMLPhone and address only appeared after the React app hydrated; View Source showed an empty <div id="root"> and no NAP text.Needs fixServer-render the contact block (or add a static footer with NAP in plain HTML) so the details are in the initial response.
Indexed in Googlesite:rivercitydrains.example returned the homepage and one service page; the two location pages were missing.Needs fixSubmit the location pages, fix an internal-link orphan, and confirm they aren't blocked or noindex'd.
LocalBusiness schema matches visible textNo JSON-LD on any page; the Rich Results Test reported "no items detected."Needs fixAdd LocalBusiness schema with the same name, address, phone and hours shown on the page.
Google Business Profile vs. website NAPProfile listed "River City Drain Co." and an old suite number; the site said "River City Drains" with the new address.Needs fixPick one canonical name and address; update the profile and the site so they match character-for-character.
Foursquare / Apple Maps listingA stale Foursquare listing carried the previous phone number — the same data ChatGPT leans on for local answers.Needs fixClaim and correct the Foursquare listing; verify the phone and category match the canonical set.
Answers real customer questions in plain textService pages were mostly stock imagery and a "quality you can trust" tagline — nothing on pricing, areas covered or emergency hours.Needs fixAdd a short, self-contained answer block to each service page: what's included, areas served, response time, rough pricing.

Notice the pattern: none of these are exotic, and the most damaging one — NAP missing from View Source — is also the most fixable. Run the same five checks on your own business and you’ll get a list that looks a lot like this. The walkthrough for testing your AI-search visibility covers the prompt-test step in more detail if you want to start there.

Where Google Business Profile and Foursquare fit

Two of the six findings above were listing problems, which is typical. Here’s the honest, non-salesy version of why those listings carry so much weight in a local audit.

How AI reads your local listings

Your Google Business Profile and Foursquare listing are among the cleanest, most structured descriptions of your business anywhere — name, location, category, hours, reviews. AI assistants lean on exactly this kind of local data: ChatGPT’s local results reportedly draw on a combination of Foursquare and Google Business Profile data — on the order of 70% between them — with Foursquare reportedly the larger. You can’t claim a Foursquare listing as directly, so an accurate, complete Google Business Profile is the practical lever most owners can actually control. Treat these listings as a strong content and entity signal the model reads — not a service you have to buy. The audit’s consistency check is really just making sure they tell the same story as your website.

A realistic caveat

River City Drains is a fictional, illustrative example, and AI engines behave differently from one another and change over time — so treat this procedure as a durable method rather than a set of guarantees, and figures like the Foursquare share as reported numbers that can shift. That’s exactly why we run a live, public experiment: to keep testing which fixes actually move AI visibility, and to fold real results into examples like this one as the baseline data lands.

Frequently asked questions

What does an AI visibility audit example look like?
An AI visibility audit example is a worked walkthrough of the checks you run to see what AI answer engines can find about a business. It covers five things: reading the pages the way a crawler does (View Source for the name, address and phone), running the recommendation prompts a customer would type across ChatGPT, Perplexity and Google's AI, checking that structured data matches the visible text, comparing the website against the Google Business Profile and other listings for conflicts, and writing the gaps into a prioritized fix list. The point is to replace guesswork with specific, repeatable checks.
How do I run an AI visibility audit for a service business?
Work in the order an engine does. First confirm the pages are crawlable and that the name, address and phone are in the raw HTML (View Source), not injected by JavaScript. Then run the real recommendation prompts for your trade and town in a logged-out session and note whether you're named and named correctly. Next check the LocalBusiness schema against the visible text, and put your website, Google Business Profile, Foursquare and top directories in one table to spot any disagreements. Finally, list each gap with the single concrete fix that closes it.
What tools do I need to do this audit?
Almost none beyond a browser. View Source and Ctrl/Cmd+F handle the crawlability and NAP checks; the AI engines themselves (ChatGPT, Perplexity, Google's AI Overviews) handle the prompt tests; Google's free Rich Results Test validates schema; and a simple spreadsheet is enough to line up your listings. The audit is about knowing which questions to ask, not about expensive software.
Does the Google Business Profile really matter that much?
For local recommendations, yes — as a signal the engine reads, not a service you buy. ChatGPT's local results reportedly draw on a combination of Foursquare and Google Business Profile data — on the order of 70% between them — with Foursquare reportedly the larger. You can't claim a Foursquare listing as directly, so an accurate, complete Google Business Profile is the practical lever most owners can actually control. Keep it consistent with your website and you've strengthened a signal AI engines already use.
Is this example a real business?
No. "River City Drains" is an illustrative, fictional service business used to make the audit concrete; the findings are typical of the issues real audits surface, not a real company's data. We run a live, public experiment on our own sites to test which fixes actually move AI visibility, and we'll fold those results in here as the baseline data lands.

Keep going

Run it on your own business

Start with what AI can see about you

The fastest first step in any AI visibility audit is the prompt test — a plain-English walkthrough, no account required.

Test your AI-search visibility