August 14, 2026

How to Run an AEO Content Audit (Five-Column Scoring Sheet)

Annotated AEO audit sheet scoring pages across answer, evidence, entity, links and crawlability columns
Photo: Magic Teams AI / generated in the build

Run an AEO content audit by scoring every page 0, 1, or 2 on five columns: Answer, Evidence, Entity, Links, and Access. Then act on the total. Eight to ten, leave it alone. Five to seven, fix in place. Zero to four, rewrite against one question or merge it into a stronger page. Access is a gate rather than a tiebreaker, so a page that can’t be crawled and shown with a snippet scores nothing on the other four until that’s fixed.

Most AEO audit advice hands you a 48-point checklist and a tool subscription. You end up with a list. What you need is a decision about each page: leave, fix, or merge.

This is the sheet we use at Magic Teams AI, including the three defects it turned up on our own blog in August 2026. Every one of those findings is checkable from your browser.

What does an AEO content audit actually check?

Two things. Whether a search system can retrieve, understand, and safely quote the page. And whether the answer survives a human reading it.

That sounds like an ordinary content audit because it mostly is one. Google’s AI optimization guide, last updated 10 July 2026, says it flatly: “From Google Search’s perspective, optimizing for generative AI search is optimizing for the search experience, and thus still SEO.”

The technical bar sits in Google’s AI features documentation. A page “must be indexed and eligible to be shown in Google Search with a snippet, fulfilling the Search technical requirements. There are no additional technical requirements.”

Same document, on the file formats vendors keep selling: “You don’t need to create new machine readable files, AI text files, or markup to appear in these features. There’s also no special schema.org structured data that you need to add.”

What has changed is emphasis. Answer placement and evidence quality carry more weight now, because a machine has to locate your claim and decide whether repeating it is safe. If that idea is new, read what answer engine optimization means for B2B first and come back.

Why does each visit have to work harder now?

Because you get fewer of them per impression.

Pew Research Center tracked 68,879 Google searches from 900 US adults who shared their browsing data in March 2025.

That gap is why Answer and Evidence carry the same weight as everything else on the sheet. A page that half-answers the question loses twice now. Fewer people arrive, and the ones who do have already read a summary of your answer.

Why does the audit start with Access?

Because Access is the only column that can zero out the other four, and it’s usually decided somewhere other than your CMS.

Four checks before you read a word of copy.

Indexing and snippet eligibility. Google’s AI features documentation points site owners at nosnippet, data-nosnippet, max-snippet, and noindex to limit what Search shows from a page, and AI features are included in that. A max-snippet:50 someone set three years ago quietly caps what any system can quote.

Rendering. If the answer only appears after JavaScript runs, treat it as absent until you’ve proven otherwise. Read view-source, not the rendered DOM in DevTools.

Your robots.txt crawler split. OpenAI documents separate agents with separate settings: GPTBot for training, OAI-SearchBot for ChatGPT search results, ChatGPT-User for fetches a person triggers, and OAI-AdsBot for ad safety checks. OpenAI’s crawler docs state that “Sites that are opted out of OAI-SearchBot will not be shown in ChatGPT search answers, though can still appear as navigational links,” and that “Each setting is independent of the others.” Blocking GPTBot does not remove you from ChatGPT search. Plenty of sites have that backwards, in both directions.

Your host’s defaults. On 1 July 2026 Cloudflare announced three crawler categories: Search, Agent, and Training. From 15 September 2026, for all new domains onboarding to Cloudflare, “Training and Agent will be blocked by default on the pages that display ads, while Search will remain allowed by default.”

Crawlers that combine Search with Training are “allowed/blocked according to all of their behaviors,” which is why Cloudflare says Googlebot, Applebot and BingBot get blocked for customers who chose to block Training. Your access posture can change without anyone touching your site.

What are the five columns, and how do you score them?

Column 0 1 2
Answer No direct answer, or it arrives after 400 words of preamble An answer sits up top but shares the opener with three competing claims One sentence near the top answers the exact question, and the H1 matches it
Evidence Numbers with no source, or no numbers and no example Sourced, but a single vendor summary carries several load-bearing claims Primary sources that currently resolve, plus a worked example or first-hand observation
Entity You can’t tell who wrote it or which company stands behind it A byline exists, but the company’s position on the topic isn’t stated Named author, named company, stated point of view, consistent with the about and author pages
Links Orphan page, nothing in, nothing out Links exist but are generic or too few, or the link form is inconsistent Contextual links to adjacent question pages, one link form used site-wide
Access Blocked, noindexed, nosnippet, or the answer needs JavaScript Crawlable, but signals and directives disagree, or the host set the policy Indexed, snippet-eligible, server-rendered, crawler policy deliberate and consistent

Score honestly. A 2 means nothing left to fix, not “good enough for now.” If every page on your sheet lands on 9, your rubric is broken rather than your site.

What did the sheet find on our own blog?

Here’s our August 2026 pass over four published posts, scored strictly against the rubric above. The scores are our editorial judgment. The defects behind them are facts you can verify.

Three findings came out of it.

One text file cost every page a point on Access. Our robots.txt is generated from a single file in our repo. It publishes Content-signal: search=yes, ai-input=yes, ai-train=no, use=reference above every user-agent group, then allows GPTBot and Google-Extended by name further down.

The obvious reading is that those two lines contradict each other. They don’t. Cloudflare’s Content Signals Policy covers what a crawler may do with your content once it has been accessed, while Allow and Disallow govern whether a crawler may fetch it at all. So ai-train=no beside Allow: / is valid.

The two real defects are quieter. Cloudflare’s examples place Content-Signal inside a user-agent group, under the User-agent line and next to Allow, and ours belongs to no group at all. And the code comment sitting directly above it argues the opposite case: that we allow training crawlers deliberately, because for a small brand “parametric-memory visibility is a real channel.”

So the file states a preference our own comment disagrees with, in a position where it may apply to nothing.

Personal insight

Two lines of a text file, written months apart, quietly disagreed about whether we wanted to be trained on. It took four minutes to find by opening blog.magicteams.ai/robots.txt and reading it against Cloudflare’s spec. No content scoring tool would ever have flagged it, because the file is syntactically fine. Check yours before you rewrite a single paragraph.

Three posts lost a point on Evidence, all for source concentration. Our AIOS cost guide cites one vendor’s pricing page nine times. Our AI automation ROI post cites a different vendor blog six times, and that single page carries three separate numbers: a four-to-eight-month payback, a 70% to 90% error reduction, and a 15% to 25% capacity gain.

Our meetings post attributes executive meeting hours to Harvard Business Review, which is a fair source, except the piece is from 2017. The bar chart beside it also shows 8 hours a week for individual contributors, and nothing in the copy says where that number came from.

Nothing there is invented, and every link resolves. That’s the point. A scoring tool sees green links. The rubric sees one page holding up three claims.

Forty-four internal links use the wrong form. Five of our 92 posts self-link with absolute https://blog.magicteams.ai/blog/... URLs, 44 links between them, while the rest of the corpus uses 634 relative /blog/ paths. Nothing is broken today. It’s a consistency defect that one domain or path change turns into 44 dead links at once.

The related one is thinner rather than broken. Our AEO for B2B post scores 2 on Answer, Evidence and Entity, then carries exactly one internal link in the entire piece. That’s the whole reason its Links column reads 1.

None of the three came from a keyword tool. All three came from opening the actual files.

What do you do with the scores?

The rule that saves the most time is the merge rule. If two pages both score 5 to 7 on the same question, don’t fix both. Pick the stronger URL, fold the useful parts of the weaker one into it, and redirect. Two mediocre pages splitting one question is worse than one page you actually improved.

The rule that saves the most money is simpler. Don’t rewrite an 8.

What can you measure afterwards, and what can’t you?

Measure impressions and conversions. Don’t set targets on citations.

Google launched Search generative AI performance reports in Search Console on 3 June 2026. At launch they show impressions, pages, countries, devices, and dates for AI Overviews and AI Mode. No clicks, no query data, and the rollout started with a subset of properties rather than everyone, so plenty of sites still can’t see the report.

An honest measurement plan after the audit looks like this:

  • Generative AI impressions month over month, if your property has the report yet.
  • Organic clicks and conversions on the audited URLs, which still work and still pay the bills.
  • A fixed set of buyer prompts you re-run quarterly, recorded as notes rather than a chart.

That last one needs a caveat. AI answers vary between runs, accounts, and locations, so asking an assistant the same question ten times gives you ten samples of a moving target. Treat it as qualitative signal. Anyone selling you a guaranteed citation rate is selling a number they don’t control.

What do people get wrong in an AEO audit?

  • Scoring llms.txt. Google has said you don’t need one. We publish one because partners occasionally ask for it. It has never been on the scorecard, and it shouldn’t be on yours.
  • Treating schema as a citation trigger. Structured data helps systems understand a page and earns rich results, which is reason enough to use it. Google states there’s no special schema.org markup required for AI features. Score it under Access hygiene.
  • Splitting one question across three near-identical pages to hit a publishing quota. It weakens all three and guarantees a merge later.
  • Auditing the words and skipping the plumbing. The cheapest wins on our own sheet were in a text file, not a paragraph.
  • Rewriting pages that already score well because a dashboard turned amber.

Frequently asked questions

How long does an AEO content audit take?

Budget roughly 15 minutes per page for a careful pass, plus about an hour for the site-level access checks. For a 90-page blog that’s a few days of focused work, or half a day if you score only the 20 pages carrying commercial intent. Start with those 20.

Do I need an AEO audit tool?

Not for the first pass. A five-column spreadsheet, your robots.txt, and Search Console will surface more than a scoring dashboard, because the defects that matter are specific to your site. Tools earn their place once you’re maintaining the sheet across hundreds of pages.

How often should I re-run it?

Quarterly for pages that matter commercially, and immediately after any host, CDN, or CMS migration. Access defects arrive on somebody else’s release schedule.

Does this work for engines other than Google?

Answer, Evidence, Entity, and Links carry over unchanged, because they measure whether the page is clear and checkable. Access is per-system. Each provider runs its own agents under its own rules, so score that column per crawler rather than once.

What if a page scores well but gets no traffic?

Check demand before you rewrite. A well-built page answering a question nobody asks has a distribution problem, and another rewrite won’t fix it.

One caution worth stating plainly. This sheet is an editorial and technical quality check, not a compliance review. If your pages carry legal, medical, financial, or security claims, have a qualified professional sign off on the Evidence column before anything ships.

The audit itself is the easy part. Keeping the sheet current across dozens of pages, several writers, and a CDN that changes its defaults on its own schedule is the operating problem underneath it. That’s the kind of recurring review we build into an AIOS install, so it stops landing back on the founder’s desk every quarter.