August 24, 2026

How to audit a client site for AI visibility in 30 minutes

This is the procedure we run before quoting any AI visibility work, and before agreeing to take one on. It takes about thirty minutes per site, needs no paid tooling, and answers one question: can AI systems read this site at all, and if not, why not.

Run it on a client site before you sell a GEO retainer. Run it on a prospect's site before a pitch. Everything below is the full method, not a teaser.

Before you start: what you need

A browser, the developer tools that ship with it, and the client's URL. Nothing else. Open a blank document and write the URL and the date at the top, because the output of this audit is a short written finding, not a feeling.

Set a timer. The point of the thirty minute constraint is that it forces you to check the things that decide the outcome and skip the things that do not.

Minutes 0 to 5: can the content be read at all

This single check determines whether anything else matters.

Open the most commercially important page. Not the homepage, the page that answers the question you want cited: a service page, a product page, a pricing page.

  1. Right click, View Page Source. Not Inspect Element. The inspector shows the DOM after JavaScript has run, which is exactly what AI crawlers never see.
  2. Copy a full sentence from the visible body copy of the page.
  3. Search for it in the page source with Ctrl-F or Cmd-F.

If the sentence is there, the page is readable. If it is not, the content does not exist for ChatGPT, Claude or Perplexity.

The reason is settled. Vercel and MERJ's analysis of real AI crawler traffic found that none of the major AI crawlers execute JavaScript. They fetch script files, ChatGPT's crawler in 11.50% of requests and Claude's in 23.84%, and never run them. Googlebot renders, which is why a client-side rendered site can rank well in Google and be entirely invisible to ChatGPT at the same time. We covered the render gap in full here.

Second confirmation, worth the extra minute: open DevTools, disable JavaScript, reload the page. What remains is approximately what an AI crawler receives. If the page is a blank shell, you have found the problem and you can stop looking for others.

Record: readable, partially readable, or invisible.

Minutes 5 to 12: the crawl surface

A readable page still needs to be reachable, and reachability is where most crawl budget leaks.

Check /robots.txt first. Look specifically for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended. Many sites still carry blanket blocks added in 2023 during the scraping panic that nobody has revisited since. Note whether the rules are deliberate or inherited. An absent rule is not a decision, it is an omission.

Check /sitemap.xml next. Open it and sample five or six URLs at random. How many resolve, how many 404, how many redirect. If a sitemap advertises dead URLs, it is actively directing crawlers into walls.

This matters more than it sounds. In the same Vercel dataset, ChatGPT's crawler spent 34.82% of its fetches on 404 pages and Claude's 34.16%. Googlebot spends 8.22%. Roughly a third of the AI crawl budget arriving at these sites was consumed by URLs that no longer exist, because Googlebot has decades of heuristics for working around a messy site and the AI crawlers have none.

Finally, click three or four internal links from the main navigation and watch the address bar. Any chain of two or more redirects to reach a final page is a chain to collapse.

Record: crawler rules deliberate or inherited, sitemap accuracy, redirect chains found.

Minutes 12 to 20: structure and extractability

AI systems retrieve passages, not pages. Per Anthropic's contextual retrieval research, retrieval commonly operates on chunks of 100 to 300 words. So the unit that gets cited is the section, and each section either stands alone or it does not.

Take the three most important sections of the page and check each against five questions:

  • Is the heading a real heading, an h2 or h3, rather than a styled div? Check in the page source.
  • Does the heading state what question the section answers?
  • Is the answer in the first two sentences beneath the heading, or buried after context?
  • Read the section alone. Do you know which company, product and timeframe it refers to, or does it rely on "this", "the team", "as mentioned above"?
  • Is there exactly one H1 on the page, with no skipped heading levels below it?

Then check the components. The rule is not that hidden content is bad, it is that content must exist in the initial HTML. An accordion that ships its answers in the markup and collapses them with CSS is readable. An accordion that loads a panel when clicked is not, and neither are tabs that fetch on switch or carousels that mount slides progressively. Search the page source for text you can only see after interacting. If it is absent, that content is invisible.

Two more, quickly: is comparison data in a real HTML table with th and td, or a grid of styled divs. Are key numbers and definitions in text, or set inside images.

The full design-side reasoning is in this article.

Record: how many of the three sections would survive being quoted alone.

Minutes 20 to 26: structured data and the things that do not matter

Search the page source for application/ld+json. Three outcomes:

  • Present in the source. Good. Note the types: Organization, Article, FAQPage, Product, Service.
  • Absent from the source but visible in a testing tool. This means it is injected by a tag manager after load, which puts it in the same blind spot as everything else client-side. Common, and easily missed if you only ever check with a validator.
  • Absent entirely. A straightforward gap to fix.

Then spend one minute on the things that are being sold and do not work, so you can tell the client honestly.

Open /llms.txt. If it exists, check the generation date. In a study of 2,400 domains between February and April 2026, matched pairs showed a citation difference of 0.2 percentage points between sites with the file and sites without, inside the noise band. Across 19 sites, AI crawlers made 41 requests to the file against roughly 1.1 million requests to actual pages. Google's own May 2026 guidance lists it among the tactics site owners can disregard. We removed ours, and wrote up why.

Note it, do not bill for it.

Record: schema present and server rendered, yes or no.

Minutes 26 to 30: score it and write it up

Score each of the four checks out of 5, for a total out of 20.

  • Readability (render path). 5 if the body copy is in the source, 0 if the page is a shell.
  • Crawl surface (robots, sitemap, redirects). 5 if deliberate and clean.
  • Extractability (headings, answer position, self-contained sections, components). 5 if all three sampled sections would stand alone.
  • Structured data. 5 if present, correct and in the initial HTML.

The verdict follows from the score, and this is the part that protects you commercially:

  • 15 to 20. The site is a viable base. A GEO or AEO retainer can be sold and delivered on it.
  • 8 to 14. Remediation first. Scope and sell the fixes as a defined project, then discuss ongoing work. Do not sell a visibility retainer on this site yet.
  • Below 8. The render path or the crawl surface is broken. This is a build conversation, not a marketing one, and selling twelve months of GEO here is a refund waiting to happen.

Write four or five sentences per check, in plain language, with the specific evidence. "The service page body copy does not appear in the page source, so ChatGPT cannot read it" beats any severity label.

Turning the audit into a paid deliverable

The reason to run this before quoting is that it changes what you are selling.

Most agencies sell a GEO retainer, discover the technical problems in month two, and spend the rest of the engagement explaining. The alternative is to make the audit the first, fixed-fee deliverable. It is a small, contained piece of work that produces a written finding, a score, and a scoped list of fixes. The client gets something concrete in week one. You find out whether the engagement is deliverable before you commit to twelve months of it.

It also reframes the conversation. Instead of promising citations you cannot control, you are diagnosing a specific, demonstrable problem and quoting the fix. That is a much easier sale and a far easier delivery.

Price it as a fixed fee that covers the thirty minutes plus the write-up, and scope remediation separately from the findings. The audit should pay for itself and qualify the client at the same time.

Get the scorecard

We have put the whole thing into a one page scorecard: the four checks, the pass criteria for each, the twenty point scale, the three verdicts, and a client-ready findings template you can send as-is.

Download the AI Visibility Audit scorecard. It is free, it is one page, and it is the same sheet our team fills in.

If you would rather have us run the first one, send a single URL. We will complete all four checks and return the findings with the fixes scoped, no charge, within 48 hours. After that you will have the format and can run it yourself. See our technical services, or how we work with agency partners in white label.

Genesis Agency Insight: The order of the checks matters more than the checks themselves. Render first, always. If the body copy is not in the page source, the schema audit, the heading review and the sitemap analysis are all describing a page no AI system can read. We have seen thorough forty page audits that never ran the first check and were therefore entirely beside the point.
Genesis Digital Factory Team
Corporate

The Genesis Digital Factory editorial team: designers, developers and digital marketers sharing insights from 20+ years of digital production.