SEO for AI Search: A Client Audit Checklist for Agencies

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for SEO for AI Search: A Client Audit Checklist for Agencies.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for SEO for AI Search: A Client Audit Checklist for Agencies.

An agency should check seven things: crawler access for Google and the AI search bots, indexability plus Search Console's generative AI setting, pages that answer questions plainly, consistent business facts, real third-party citations, structured data that matches visible text, and a test log. Google says AI Overviews and AI Mode need ordinary SEO, not special optimisation.

That second sentence is the part clients rarely hear. Google's page on AI features says there are no additional requirements to appear in AI Overviews or AI Mode, and no special optimisations. The one addition is a site-level switch: since 31 August 2026 every Search Console property has a Search generative AI control, and Google's optimisation guide says a site must be included there to be eligible. So a "GEO audit" sold as a separate product is mostly the ordinary audit, one settings check and two crawler checks for other engines. The checklist below is built that way: each item says why it matters, how to verify it in ten minutes or less, and what to write in the report.

Follow me on Instagram@sagnikteaches

What Google says, and what it leaves to you

Read three Google pages before the first audit, because clients will quote vendor blogs at you and you want the primary source in hand. The first is the page on AI features and your website. The second is Google's guide to optimising for generative AI. The third is its guidance on using generative AI content. Between them they settle most arguments.

Connect on LinkedInSagnik Bhattacharya

Here is what they say, restated in plain terms. To appear as a supporting link in AI Overviews or AI Mode, a page must be indexed and eligible to show in Google Search with a snippet. There are no additional technical requirements. Google lists ordinary hygiene: crawling allowed in robots.txt and by any CDN or hosting layer, internal links so pages can be found, a good page experience, important content available as text, structured data that matches the visible page, and up-to-date Merchant Center and Business Profile information.

Subscribe on YouTube@sagnikteaches

The optimisation guide, updated in July 2026, adds the condition the older page lacks: the site must be included in Search generative AI features in Search Console. The control sits under Settings, then Search generative AI. Including is the default. Excluding removes the site's links and content from AI Overviews, AI Mode and the generative features in Discover, usually within a few days, and Google says it is not used as a ranking signal for the rest of Search.

The same guide has a section on things you can ignore for Google Search: llms.txt files and other special markup, "chunking" content into tiny pieces, rewriting content just for AI systems, chasing inauthentic mentions, and over-focusing on structured data. It also says content with a unique point of view, and not commodity content that anyone could produce, is likely to matter more over the long run than the other suggestions.

What Google does not tell you is how the other engines behave. ChatGPT search, Perplexity and Claude each have their own crawlers and their own selection logic, and none of them publishes a ranking guide. That is why the checklist separates what is documented (Google, and the crawler names from OpenAI and Perplexity) from what you can only test.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Seven parts, with the time and evidence for each

PartQuestion it answersTimeEvidence to keep
1. Crawler accessCan the bots reach the pages?20 minrobots.txt copy, firewall rule list
2. IndexabilityAre key pages indexed with a snippet, and is the AI control on?20 minURL Inspection screenshots, control setting
3. Answer clarityDoes each page answer its question in the first lines?45 minPage scorecard
4. Entity consistencyIs the business described the same way everywhere?30 minName, address, services sheet
5. Citations and mentionsWho else says this business is credible?30 minList of real third-party sources
6. Markup and feedsDoes structured data match the visible page?20 minValidator results
7. Test logDoes the brand appear for real questions?40 minDated question log

Budget about three hours for a small site and a day for a large one. The table doubles as the contents page of the client report, which saves writing a separate summary.

Part 1: Crawler access, bot by bot

Start here, because every other fix is wasted if a bot is blocked. Open the client's robots.txt in a browser, then check the CDN or web application firewall, because a bot allowed in robots.txt can still be refused at the edge.

Check these user agents by name:

  • Googlebot. Google says robots.txt rules for Googlebot are the control for how Search crawls, and AI features are part of Search. Blocking it removes the site from AI Overviews and AI Mode as well as normal results.
  • OAI-SearchBot. OpenAI documents this as the crawler used to surface websites in ChatGPT's search features. Sites that opt out will not be shown in ChatGPT search answers, though they can still appear as navigational links. OpenAI recommends allowing it in robots.txt and allowing requests from its published IP ranges, and says a robots.txt change takes about 24 hours to reach its search systems.
  • GPTBot. This is separate. OpenAI describes it as crawling content that may be used to train its models, and says each setting is independent. A client can block GPTBot and still allow OAI-SearchBot. Many do exactly that.
  • PerplexityBot. Perplexity's documentation describes it as the crawler that surfaces and links sites in Perplexity's search results, says it is not used to crawl content for AI foundation models, and publishes its IP ranges in a JSON file, so a firewall can allow it by address as well as by name.
  • Claude-SearchBot. Anthropic's help centre lists it as the crawler that indexes pages to improve Claude's search results, and says blocking it may reduce a site's visibility there. It is separate from ClaudeBot (content that may be used for training) and Claude-User (pages fetched when a person asks Claude a question), so the same block-training, allow-search split works.
  • Google-Extended. Google says this controls use of content for AI training and grounding in some other Google systems. It does not control Search itself, so blocking it does not remove a page from AI Overviews.

The commonest finding is not a deliberate block. It is a blanket rule from a security plugin, a hosting default, or a bot-management setting that treats every unfamiliar user agent as hostile. Ask the client's developer or host to show the rule and the log of refused requests rather than relying on someone's memory of a setting.

A filled-in robots.txt check

Say the client is a nine-person HVAC contractor. Their robots.txt reads like this, left by a developer two years ago:

User-agent: *
Allow: /

User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Disallow: /

User-agent: PerplexityBot
Disallow: /

The developer's intention was to stop training use. The effect is that the site cannot be surfaced in ChatGPT search or Perplexity answers at all. Perplexity says PerplexityBot is not used for model training at all, so that block did nothing for the stated goal. The fix, once the owner agrees that training use is still unwanted, is to keep the GPTBot block and delete the other two. Record the before and after in the report, with the date, so the client can see what changed.

The firewall layer

Ask for a screenshot of any bot-management or rate-limiting rules. Look for rules that challenge or block by user-agent string, by data-centre address ranges, or by country. A bot allowed in robots.txt can still receive a 403 or a challenge page at the edge, which in the logs looks like a successful block by design. If the client has server logs, search them for each bot name and note the status codes returned. A run of 403 or 429 responses to a bot named in the logs is the evidence you need.

Do not try to defeat a challenge or pose as a bot yourself while testing. Ask the host to allow the documented bot and its published IP ranges, then check the logs a week later.

Part 2: Indexability and snippet eligibility

Google's requirement for AI features is that the page is indexed and eligible to show with a snippet. Test that on the ten pages that matter most to the client, usually the home page, the top five service pages and the pages that already bring in enquiries.

  1. Inspect each URL in Search Console. Note "URL is on Google", the canonical Google chose, and the last crawl date.
  2. Open Settings, then Search generative AI, for the domain property and any URL-prefix properties. Record whether each says include, exclude or inherit. A child property inherits from its parent unless someone changed it, so a URL-prefix property set to exclude by a previous agency can hide one section of the site and nothing else.
  3. Look for a noindex in the page source or the X-Robots-Tag header. Staging settings carried into production are a classic cause.
  4. Look for nosnippet, data-nosnippet or a very low max-snippet. Google says these are the controls to limit what appears in Search, including AI features. A client who added nosnippet to "protect content" has also removed the page as a supporting link.
  5. Check that the important text is in the HTML Google receives, using the URL Inspection tool's rendered HTML. Prices or service details loaded by a script after a click may never be seen.
  6. Check internal links. A page reachable only through a search box or a script menu is hard for crawlers to find.

A realistic miss: a bicycle repair shop's "Service prices" page was a PDF embedded in an iframe. The text was not in the HTML, so no engine could quote the price list. Converting it to a plain HTML table fixed that in an afternoon.

Part 3: Does each page answer its question early?

AI answers lift passages that state something clearly. Google says there is no need to rewrite content just for AI systems, and no ideal length, so the aim is ordinary good writing: a page that opens with the answer, not a page cut into fragments. Score each key page against four tests.

  1. Question match. Can you write the question this page answers in one line? If not, the page is probably about two things.
  2. Answer in the first 60 words. A direct statement with the condition that changes it, such as "A heat pump service takes 60 to 90 minutes and is priced by system type."
  3. Specifics a competitor would not have. Prices, timescales, what is included, what is not, an area or an equipment type. This is what Google's guide means by non-commodity content.
  4. Visible authorship and update date where the topic benefits from it, so a reader can judge who is speaking.

Before and after for one service page

A solar installer's page opened: "We are passionate about clean energy and committed to excellence." After the audit the first paragraph read: "A typical 4 kW home solar installation takes one to two days on site, after a survey that takes about an hour. Quotes include panels, inverter, mounting and the grid application; scaffolding is quoted separately if the roof needs it." The second version answers a real question, contains checkable specifics, and states what is excluded. The client supplied the figures; the agency should never invent them.

Using AI to pre-score pages

An assistant can draft the scorecard, as long as a person confirms it. Paste the page text and use a prompt like this:

You are auditing one web page. Page text below.
1. State in one line the question this page answers.
2. Quote the first sentence that answers it, or say "none".
3. List every concrete fact on the page (numbers, durations, inclusions, exclusions).
4. List what a customer would ask next that the page does not answer.
5. Rate: answer early (yes/partly/no), specifics (high/medium/low).
Do not suggest new facts. Only report what is on the page.

[PAGE TEXT]

Illustrative output for the solar page above: "Question: how long does a home solar installation take. First answering sentence: 'A typical 4 kW home solar installation takes one to two days…'. Facts: 4 kW, one to two days, one-hour survey, scaffolding excluded. Unanswered: warranty length, what happens to the roof if tiles break, payment schedule. Rating: answer early yes, specifics medium." What you would fix: the assistant cannot know whether the warranty answer exists elsewhere on the site, so a person checks before listing it as a gap.

Part 4: Entity consistency across the web

AI systems assemble a picture of a business from many places. If the legal name, trading name, address, phone number, opening hours and service list differ between the website, the business profile, directories and social accounts, the picture is muddy. Google's guide specifically points to keeping Business Profile and Merchant Center details up to date.

Build one sheet per client with a row for each fact and a column for each place it appears. Fill it by looking, not by asking the client.

FactWebsiteBusiness profileDirectorySocial bioMatch?
Trading nameCooling WorksCooling Works LtdCooling WorksCoolingWorksMinor
PhoneMobileMobileOld landlineMobileNo
Core servicesInstall, repair, serviceRepair onlyInstall, repairServiceNo
HoursMon to SatMon to FriNoneNoneNo

This is an invented illustration. The pattern is typical: the profile says "repair only", so a question about installation never surfaces the firm. The fix costs nothing but time, and it also helps ordinary local search.

Part 5: Citations and mentions that are real

Google says seeking inauthentic mentions is not as helpful as it might seem, and its AI features depend on spam systems as well as ranking systems. So this part of the audit lists what already exists and what is earned, not what can be bought.

  • Trade bodies, accreditation registers and manufacturer installer directories that list the client.
  • Reviews on the platforms customers use, with response rate and recency.
  • Local press, supplier case pages and partner pages that name the business.
  • Forum threads or community posts where the business is recommended by people other than its owner.

Write down each source, its URL, and whether it is accurate. Wrong information on a third-party page is a finding, because AI answers can repeat it. The recommendation is to ask for corrections and to earn new mentions through useful work, such as publishing the client's own data or a genuinely useful guide, not by commissioning mass listings.

Part 6: Structured data and feeds

Google is plain that structured data is not required for AI features, and that there is no special schema for them. Keep it anyway where it supports rich results, but the audit test is accuracy, not volume. Validate the markup, then compare it with the visible page.

  • Do the prices, ratings, hours and names in the markup match what a visitor sees?
  • Is review markup describing real reviews displayed on the page?
  • For shops, is the Merchant Center feed current and matched to the site?

A mismatch is the finding. A bakery with opening hours in its markup that differ from its profile is a small error with a real cost, since customers get turned away from a shut door.

Part 7: A test log instead of a ranking report

You cannot read an AI answer ranking from a tool, so build evidence by asking. Write 15 questions a real customer would put to an assistant, in their words, not the agency's. Run them in each engine the client cares about, in a clean session without personalisation, once a month.

DateEngineQuestionBrand named?Cited URLWrong claim?
3 NovChatGPT searchWho services air conditioning for small offices?NoDirectory pageNo
3 NovGoogle AI ModeHow much does a heat pump service cost?Yes/services/heat-pumpPrice out of date

Two notes on method. Results vary run to run, so repeat each question a few times and report the proportion, not a single result. And log wrong claims about the client, because those are actionable: fix the source page, or ask the third-party site to correct it.

For Google's own data, use the Generative AI performance report in Search Console, which Google points to for measuring visibility in these features. It counts impressions in AI Overviews and AI Mode, grouped by page, device or date, so do not turn it into a traffic or conversion claim. If the report is missing, check the Search generative AI control before telling the client they have no visibility. The Search Console reporting tutorial covers what to say to clients about it.

What to leave off the invoice

Three popular line items do not belong in a Google-focused audit. One is llms.txt: Google says Search does not use it, and the llms.txt tutorial explains how to answer a client who asks. Another is rewriting every page into short chunks for machines. The third is bulk-generated question pages built to match fan-out searches. Google's guide says doing that mainly to manipulate rankings or AI responses violates its scaled content abuse policy, which the scaled content abuse checklist deals with in detail.

If a client asks for them anyway, quote the Google page and offer the cheaper, documented work first.

A worked audit: a ten-person HVAC contractor

This is an illustration with invented numbers. The contractor wants more commercial maintenance enquiries and has noticed that no AI assistant mentions them.

  1. Access (25 minutes). Robots.txt blocks OAI-SearchBot and PerplexityBot (see the filled-in example). The host's firewall also challenges unknown bots. Two fixes logged.
  2. Indexability (20 minutes). The Search generative AI control is on include. Of the ten key pages, nine are indexed. The commercial maintenance page carries noindex from a staging copy. One fix.
  3. Answer clarity (50 minutes). The commercial page opens with a mission statement. Rewritten to give response times, contract lengths and what a visit includes, with figures the owner supplied.
  4. Entity consistency (30 minutes). The business profile lists repair only; the directory has an old phone number. Three corrections.
  5. Citations (30 minutes). The firm is on its manufacturer's installer register but with an old address. It has no listing in the local trade body. Two actions.
  6. Markup (15 minutes). Opening hours in markup differ from the profile. One fix.
  7. Test log (40 minutes). Fifteen questions, three engines. The brand appears in none for commercial maintenance questions. The log is the baseline.

Total about three hours ten minutes of audit time and nine fixes. The report lists nine fixes with owner, effort and date, then a re-test in six weeks. It does not promise any citation, only that every documented barrier has been removed.

Turning findings into the report

Group the findings by who can fix them: the client (facts and approvals), the developer or host (access, markup), and the agency (copy and logs). For each finding give severity, evidence, fix and a verification step. "Blocked in robots.txt, high, copy attached, remove two rules, verify by log in seven days" is a complete finding.

Show the client what you did not recommend and why. Naming the llms.txt and chunking items as deliberately skipped, with Google's wording, protects you if a competitor sells them.

Mistakes that make an audit look thin

  • Reporting a score from a tool without opening the robots.txt yourself.
  • Treating one run of one question as proof of visibility.
  • Rewriting pages with AI and publishing without a fact check against the client's own price list. Google tells publishers to factcheck AI-generated content and metadata manually.
  • Forgetting the CDN and firewall, then telling the client everything is open.
  • Listing "build more links" with no source in the report.

If you would rather build the process with someone, that is what my AI implementation consultation covers, from picking which audit steps AI can prefill to setting the review gate. Keep the first audit manual, so you know what a clean result looks like, and add AI help to the scoring after that.

Questions clients ask about the audit

Do we need a separate audit for ChatGPT and Google?

No. Run one audit with two crawler checks. Google's AI features draw on the normal Search index, so ordinary indexability, plus the Search Console generative AI control left on include, covers them. ChatGPT search relies on OpenAI's own crawler, so you add a robots.txt and firewall check for OAI-SearchBot. Everything else on the checklist serves both.

Should the audit recommend llms.txt?

Not as a deliverable. Google's guidance says its Search does not use llms.txt, and this checklist treats it as optional. If a client already has one, leave it alone. Put the hours into answer clarity, crawl access and sources instead, and measure results before promising anything.

How often should we re-run it?

Run the full audit at onboarding, then a short version every quarter: crawler access, indexation of key pages, and a fresh set of test questions. Re-run the full audit after a migration, a CMS change, a robots.txt edit or a firewall change, because those break crawler access without anyone noticing.

Can we promise a client that they will be cited?

No. Google says indexing and serving are never guaranteed, and AI answers vary by question and by day. Promise the work: access confirmed, pages answer questions clearly, facts are consistent, and a test log shows how often the brand appears. Report the log, not a guarantee.

Further reads

Sources: Google Search Central documents on AI features and your website, optimising for generative AI, and generative AI content; OpenAI's bots documentation; Perplexity's crawler documentation.

Want an AI-search audit you can run for every client?

On a 1:1 call we'll turn this checklist into a repeatable audit for your agency, decide which checks AI can pre-fill, and set the review step your team signs off.

Book a 1:1 call with me