An AEO audit asks one question: when buyers ask AI, are you recommended, and if not, why?
AEO (answer engine optimization) and GEO (generative engine optimization) audits cover the same ground: which buyer questions you win or lose in ChatGPT, Perplexity, Gemini and Google's AI results, who wins instead, which pages the answers rely on, and what you can fix. This checklist has 38 checks in seven groups, each with how to test it and what counts as a pass. Record your results in the free CSV audit template.
1. Scope: buyer questions and competitors
An AEO audit is only as useful as the questions it tests. Fix the scope before running anything.
| Check | How to test | Pass if |
|---|---|---|
| Unbranded category questions are listed | Write the “best [category] for [segment]” questions a buyer asks before knowing your name. | At least 10 questions, written in buyer language, not product language. |
| Alternatives and comparison questions are included | Add “[competitor] alternatives” and “[you] vs [competitor]” for your top three competitors. | Each named competitor has at least one alternatives question. |
| Use-case and integration questions are included | Add questions for your main use cases and the tools you integrate with. | Every use case you sell on appears in at least one question. |
| Pricing and fit questions are included | Add questions about price range, team size and industry fit. | The audit can show whether AI describes your pricing and target customer correctly. |
| Competitor set is fixed | Name the three to five competitors you will compare against before the first run. | The set does not change after results come in. |
| The question set is frozen | Save the exact wording, language and country for every question. | A retest can reuse the identical set. |
2. Answers: run the questions properly
Answer engines vary between runs and between products. Record enough to tell a pattern from a one-off.
| Check | How to test | Pass if |
|---|---|---|
| Every engine your buyers use is covered | Run the set in ChatGPT with search, Perplexity, Gemini and Google AI Mode or AI Overviews. | No engine is assumed from another; results are recorded per engine. |
| Each question is run more than once | Repeat every question at least twice per engine. | Repeated runs are stored separately, not overwritten. |
| Run conditions are recorded | Note date, engine, model or mode, logged-in state, country and language. | Anyone can tell how a result was produced. |
| Full answers are saved | Keep the answer text or a full screenshot, not a summary. | The exact wording of each recommendation can be quoted later. |
| Every cited URL is saved | Copy each source link the answer displays. | Sources are tied to the question and run they came from. |
3. Recommendations and citations: read the results
Being named is not the same as being chosen. Score each answer for what actually matters to a sale.
| Check | How to test | Pass if |
|---|---|---|
| Mention and recommendation are scored separately | For each answer, mark whether you are named and whether you are presented as a fit for the buyer's need. | You can count questions where you are mentioned but not recommended. |
| Competitor wins are recorded | Note which competitor is recommended on each question you lose. | You know who displaces you, question by question. |
| Position is recorded where an order exists | Record list position when the answer gives a ranked list. | Position is only compared between runs that both show an order. |
| Accuracy is checked | Compare what the answer says about your pricing, features and category with your current facts. | Each wrong claim is listed with the correct fact and its source page. |
| Cited sources are classified | Label each cited URL: your site, competitor site, round-up or comparison article, review site, community, other. | You know which kinds of pages decide your category. |
| Your presence on cited pages is checked | Open each cited round-up and comparison article. | Each one is marked: you are listed, listed inaccurately, or missing. |
4. Technical access: can answer engines read you?
These checks are quick and remove reasons an engine cannot use your pages at all.
| Check | How to test | Pass if |
|---|---|---|
| AI search crawlers are allowed | Check robots.txt for OAI-SearchBot, PerplexityBot, Claude-SearchBot and Googlebot. | None of the search crawlers your buyers' engines use is blocked by accident. |
| Training and search crawlers are decided separately | Review GPTBot, ClaudeBot and Google-Extended rules on their own. | Blocking training is a deliberate choice that does not also block search. |
| Key facts are in the HTML | Fetch pricing, product and integration pages with JavaScript disabled. | Prices, plan names and capabilities appear as text in the page source. |
| Important pages are indexable | Check status codes, canonical tags and noindex on the pages that answer buyer questions. | Each returns 200, is self-canonical and is indexable. |
| Pages are in your sitemap | Confirm the buyer-question pages are listed in sitemap.xml. | Every page you want cited is listed. |
| Structured data is truthful | Validate Organization and product structured data. | Markup matches visible content; no invented ratings or reviews. |
5. Owned pages: does your site answer the questions?
Engines can only repeat facts that exist somewhere. Your site should state them plainly.
| Check | How to test | Pass if |
|---|---|---|
| Category and audience are explicit | Read your homepage and product page as a buyer. | It is obvious within one screen what the product is, in the market's own category words, and who it is for. |
| Pricing is public and current | Compare the pricing page with what AI answers say. | Current plans and starting price are published, or the reason they are not is stated. |
| Integrations are listed | Check that each integration you sell on has a visible page or entry. | An engine asked about an integration can find a page that confirms it. |
| Comparison and alternatives pages exist | Look for honest “[you] vs [competitor]” and “[competitor] alternatives” pages. | The competitors that win your questions have a comparison page. |
| Use-case pages exist for the questions you lose | Map lost questions to pages on your site. | Each lost question has a page that answers it directly. |
| Outdated pages are fixed or retired | Search your own site for old pricing, product names and discontinued features. | No owned page contradicts the current facts. |
| Proof is visible | Check for customer names, case studies, numbers and reviews you are allowed to show. | Claims about results are supported on the page that makes them. |
6. Third-party sources: where are you described?
In our citation data most sources were not vendor sites. This section is usually where the biggest gaps are.
| Check | How to test | Pass if |
|---|---|---|
| Cited round-ups are on an outreach list | Collect every cited “best [category]” and comparison article from section 3. | Each has an owner and a next step: pitch, correct, or ignore. |
| Your descriptions on third-party pages are correct | Read how each cited page describes you. | Wrong facts are listed with a correction request ready. |
| Review profiles are accurate | Check G2, Capterra and other profiles for category, pricing and screenshots. | Profiles match current facts, even if they are rarely cited directly. |
| Community presence is known | Search Reddit and relevant communities for your category questions. | You know where your category is discussed and whether you appear, especially if buyers use Perplexity. |
| Partner and marketplace listings are current | Check integration marketplaces and partner directories. | Listings exist where buyers and engines would look for them. |
7. Prioritize and retest
Turn findings into a short list of actions, then prove whether they changed anything.
| Check | How to test | Pass if |
|---|---|---|
| Gaps are ranked by business value | Order lost questions by how close they are to a purchase and how often the loss repeats. | The top five actions are tied to the questions they should change. |
| Each action has an owner and a date | Assign content, product marketing, PR or engineering owners. | No action is unassigned. |
| A retest date is booked | Schedule a rerun of the frozen set four to eight weeks after the changes go live. | The retest uses the same questions, engines, conditions and number of runs. |
The crawler checks in group 4 take a minute with the free AI crawler checker. The finding behind group 6 comes from our study of 768 AI citations for B2B software questions.
What a normal SEO audit misses
An SEO audit checks whether your pages can rank. An AEO audit checks whether AI answers choose you, which is decided largely by pages you do not own. Groups 2, 3 and 6 above have no equivalent in a standard SEO audit; groups 4 and 5 overlap with one.
One to three days for 20–30 questions
Most of the time goes into running each question on several engines twice and reading the cited pages. Tools can automate the runs; the scoring of recommendations and the source review still need a person.
RecoProof runs this audit for B2B SaaS teams.
The AEO audit service covers groups 1 to 3 and 7 on up to 30 buyer questions across three engines, compares you with three competitors, and delivers a reviewed report with a prioritized 90-day plan. Start with the free five-question audit to see whether there is a gap worth fixing.