AI Readiness Audit Framework.
A practitioner’s framework for scoring an existing content library on whether AI tools can extract it and cite it. Read each page against five checks, triage the list by business value, then scope the pass so it finishes in a week instead of a quarter.
Score each check 0, 1 or 2. Two of them grade substance and three grade structure, and the substance pair does the heavy lifting.
I built this AI readiness audit as the operational layer under my AEO/LLMO Content Optimisation Framework, the part that tells you where a library stands before you spend an hour optimising the wrong page. I’ve run it on libraries I built myself and on ones I walked into cold, four hundred pages deep, written by people who’d long since left and optimised for a version of search that’s quietly disappearing. At OpinionX, I audited and updated the whole blog library this way, and average search position went from 18.4 to 8.8 in five weeks. It runs on five quick checks applied page by page, and it ends with a prioritised list instead of a forensic report nobody reads.
Two halves, one verdict.
Most audit advice hands you a checklist and leaves the hard part, deciding what to do with four hundred scores, entirely to you. This AI readiness audit has two halves, because the score is only useful if you can turn it into a fix list that ships.
What does the page actually do?
A repeatable read on every page against five checks, scored 0, 1 or 2 each for a page total out of 10. The goal is a fast directional call on whether a model can find a clean answer on the page and credit it back to you, rough enough to act on and quick enough that nobody argues over decimals.
Which pages earn the fix?
A library of scores means nothing until you decide where the week goes. The second half crosses each page’s score with its business value, sorts the fixable from the dead, and scopes the pass so a four-hundred-page library takes days. It’s the half that keeps the audit from collapsing under its own weight.
Score, triage, scope, in that order.
The three moves don’t carry equal weight, and the order you run them in changes the answer. Score without triaging and you’ve built a spreadsheet nobody acts on, and skip the scoping and the fix list runs longer than your year; in sequence, the audit stays a week of work instead of a standing project.
Score: read the page, write the score
Read the first screen, skim the headings, check three points, move on. You’re after a directional read in two minutes, and a forensic one in twenty would cost more than it tells you. Resist the urge to fix anything while you score, because auditing and fixing are different jobs, and mixing them is what drags a one-week audit out for months.
Triage: cross the score with what the page is worth
A score on its own doesn’t tell you where to spend the week, so cross it with business value, meaning traffic, buyer intent and relevance to what you sell now, and only one combination earns your time: a salvageable page the business needs.
Scope: ship before it eats six months
Sample the long tail instead of listing every page, time-box the pass, and batch the fixes by failure type. Audit a library exhaustively and the project never ships, so nothing in it earns a citation.
The five checks that separate AI-ready from AI-invisible.
These five reads produce the page score, each worth 0, 1 or 2 for a total out of 10. The two substance checks do the heavy lifting, because a structural tool can’t see them and they’re what earns a citation.
| Check | AI-invisible (0) | Partial (1) | AI-ready (2) |
|---|---|---|---|
| 1. Front-loaded answer | The core question isn’t answered until halfway down, or never directly | An answer exists but is wrapped in setup or hedging | The first 40 to 75 words after the heading answer the question directly, with the qualifying context right behind it |
| 2. Citable substance | Generic claims any competitor’s page also makes; nothing a model can’t get elsewhere | Some specifics, but mostly consensus restated | An original position, attributed data or a named source a model would have to come here to get |
| 3. Standalone sections | Sections only make sense after reading the ones above them | Some self-contained, some dependent | Each section answers one question and survives being pulled out of context |
| 4. Attributed evidence | Orphan stats with no source; comparisons buried in prose | Some sourcing, no structured evidence | Every figure linked to its source; comparisons presented as tables |
| 5. Retrievable structure | Vague headings, definitions buried in narrative, JavaScript-rendered body | Mixed; some question headings, some buried terms | Question-format headings, key terms defined at first use, clean pre-rendered HTML |
Check 5 is the only one where a deliberate deduction can be the right call; the note under check 05 below explains when.
The check that carries the audit is the second one, citable substance, and it’s the one an automated tool scores green while missing entirely. The Princeton GEO study (Aggarwal et al., presented at ACM KDD 2024, tested across 10,000 queries) found the changes that move citation are substance-side: quotations from named sources lifted visibility by about 41%, statistics by about 31% and citing sources by about 28%, while keyword stuffing came in below the baseline. Treat the magnitudes as directional, because the engines have changed since 2024, but the order has held on every library I’ve scored.
Front-loaded answer
The first 40 to 75 words after the heading answer the question the heading implies, with the qualifying context right behind. In Kevin Indig’s 2026 analysis of ChatGPT citations, 44.2% came from the first 30% of a page, so an answer that turns up in paragraph four sits where citations thin out.
Citable substance
The page holds an original position, attributed data or a named source a model would have to come here to get. If the prose only restates what ten other pages already say, no amount of formatting earns the citation. A structural audit can’t see this check, which is why the framework grades substance before structure.
Standalone sections
Every section answers one question and survives being lifted out of context. A section that opens with “as mentioned above” or leans on a definition three screens up can’t be extracted cleanly, because a model that grabs it in isolation gets a fragment.
Attributed evidence
Every figure carries a visible source, and comparisons sit in tables instead of prose. An orphan stat is a liability: a model has no reason to cite an unsourced “73% of buyers” when five other pages attribute the same figure.
Retrievable structure
Question-format headings that match what buyers type, key terms defined at first use, and clean pre-rendered HTML a crawler can read. It’s the fastest layer to fix and the one teams overdo, which is why it sits last. Question headings also flatten a distinctive voice, so where that voice earns the citation, take the deduction on purpose.
What the research says about where citations come from.
The case for grading substance first, and for front-loading the answer, rests on what moves AI citation. The figures are directional and engine-specific, but they’ve pointed the same way.
visibility lift from adding quotations from named sources, the strongest method tested
Princeton GEO study, KDD 2024visibility lift from citing sources, for pages ranked fifth in search
Princeton GEO study, via Search Engine Landof ChatGPT citations came from the first 30% of a page
Kevin Indig via Search Engine Land, 2026how much more likely cited passages were to use clear definitions, across 18,012 verified citations
Kevin Indig via Search Engine Land, 2026AI tools returned the same list of brands fewer than 1 in 100 times across 2,961 runs of the same prompts, a reminder that citation is noisy and platform-specific (SparkToro and Gumshoe, 2026).
How triage turns scores into a fix list.
Scoring gives you a figure per page, and this layer turns it into a decision that survives a four-hundred-page library and a backlog that wants to become a to-do list nobody finishes.
Sort every page into one of three buckets
Leave AI-ready pages (8 to 10) alone and note them as models for the rest, put your effort into the salvageable ones (4 to 7), and rewrite or kill the AI-invisible ones (0 to 3), because polishing a page that says nothing won’t get it cited.
The salvageable bucket is the whole game
A page scoring 6 usually has the substance and only needs its answer pulled to the top and its evidence sourced, an hour of work that can move it to a 9, while a 2 needs rebuilding, which is a new-content decision, so it leaves the audit. Spend your week in the 4-to-7 band.
Cross the score with business value
Score every page on two axes: how close it is to AI-ready, and what it’s worth to the business, meaning traffic, buyer intent and relevance to what you sell now, and only one quadrant earns your week. On a small site, the page people read right before a decision gets low but deliberate traffic, so audit the conversion set whatever the analytics say.
Sample the long tail, audit the head in full
Score every page that gets steady traffic or maps to a current buying decision, which is usually a fraction of the library. For the long tail, score a representative sample of fifteen or twenty; the failures cluster, so the sample tells you what the rest looks like without you opening all of it. I leaned on this kind of triage when I rebuilt a content function in 90 days, where there was no time to treat every page as precious.
Time-box the pass and batch the fixes
Give yourself a day or two to score the head and the sample, and accept that some scores will be rough. Then fix in batches by failure type (one session for promoting buried answers, another for sourcing orphan stats, then the tables), because batching is faster and far less mind-numbing than fixing each page end to end.
| High business value | Low business value | |
|---|---|---|
| Salvageable (4 to 7) | Fix first. Best return on effort in the whole library | Fix later, or only if it’s a quick win |
| AI-invisible (0 to 3) or AI-ready (8 to 10) | If AI-ready, leave it; if invisible, schedule a rewrite as new content | Leave alone, or kill if it’s actively misleading |
The audit blueprint.
How the two layers run on a single page, start to finish.
Read the first screen
Does the opening answer the question the title implies, or warm up? That one read covers the front-loaded-answer check and most of the substance one.
Score the five checks
Front-loaded answer, citable substance, standalone sections, attributed evidence, retrievable structure. Zero, one or two each, out of ten.
Bucket it
AI-ready, salvageable or AI-invisible. Write the score down and move on without fixing anything.
Cross with business value
A salvageable page the business needs goes to the top of the fix list, while a pristine page nobody needs gets noted and left.
Batch the fix
Group the salvageable, valuable pages by failure type and clear them in passes instead of one page at a time.
Track whether it worked
The audit scores how citable a page should be, and whether it’s actually cited needs separate tracking, because the two drift apart.
How it fits into content operations.
The audit sits in front of any AI-readiness work, before a single page gets rewritten, and it leaves a prioritised list you can stand behind later.
Inventory
Pull the full library and tag each page with its traffic and its relevance to what you sell now.
Score
Five checks per page, the head in full, the long tail by sample. A day or two, never two weeks.
Bucket
AI-ready, salvageable or AI-invisible, with the score attached.
Prioritise
Cross the score with business value; the salvageable, valuable quadrant is the week’s work.
Batch-fix
Group by failure type, then promote answers, source stats and build tables in passes.
Measure
Track actual AI citations on the fixed pages, because that’s the scoreboard, however complete the audit was.
It’s the operational discipline that turns a strategic framework into something a one-person content function can run, which is the whole argument behind treating content as a system rather than a team.
What an AI-ready page looks like versus an invisible one.
Both can be well written and on topic, and only one gives a model a reason to pull from it.
AI-invisible: structure with nothing under it
- A 250-word warm-up before the first useful sentence
- Generic claims any competitor’s page also makes
- Orphan stats with no source, year or link
- A comparison trapped in flowing paragraphs
- Sections that only make sense read top to bottom
AI-ready: substance the structure delivers
- The answer in the first 40 to 75 words, qualifier right behind it
- An original position or attributed figure a model has to come here to get
- Every figure linked to its source
- The comparison built as a table
- Each section standing on its own when lifted out
The five failures that tank a page score.
The same handful of problems account for most low scores. Once you’ve seen them you spot them at a glance, which is what makes the audit fast: you recognise the diagnosis instead of working it out every time.
The buried answer
The page knows the answer and makes you wait for it, with a long introduction between the heading and the first useful sentence. A model lifting the passage under that heading gets the warm-up, and with 44.2% of ChatGPT citations coming from the first 30% of a page, the answer in paragraph four is easy for a model to miss. The fix is brutal and fast: cut the introduction, promote the answer.
The orphan statistic
It’s a claim like “73% of buyers do X” with no link, study or year. A human skims past it, and a model has no reason to cite an unverifiable stat when five other pages source the same figure. Every external stat needs a visible source, and if you can’t source it, cut it instead of leaving it dangling.
Sections that can’t stand alone
A section that opens with “as mentioned above” or relies on a definition introduced three screens earlier can’t be lifted cleanly. The fix is to make every section restate just enough to work alone, which happens to help skim-readers too.
The comparison trapped in prose
Three approaches across four dimensions, written out in paragraphs, read fine and hand a model nothing structured to extract. Where a page has a comparison buried in sentences, building the table is often the single most useful edit on it.
The page that says nothing
It’s well written and on topic, and it holds no claim, figure or position a model couldn’t assemble from the rest of the open web. No structural fix saves this one, and it’s why substance is check two and structure is check five.
Where the audit breaks down.
The framework is simple, and I’ve broken it in most of the predictable ways myself.
Scoring everything instead of sampling
The first time I ran an audit like this, I scored every page and wasted two days on a long tail that told me nothing the sample wouldn’t have, time I should have spent fixing the ten pages worth fixing.
Audit the head in full and sample fifteen to twenty pages from the tail. Full enumeration feels more rigorous and mostly buys you a slow confirmation of what the sample already said.
Fixing while you score
The pull to fix a buried answer the moment you spot it is strong, and giving in to it is how a one-week audit becomes a two-month one. Every page you stop to repair is a page you’re not scoring, and the scoring pass is what produces the prioritised list.
Score the whole pass first and fix nothing. Batching the fixes afterwards is faster than interleaving them, and it keeps the scoring read quick and consistent.
Trusting a green structural score
An automated tool checks schema, heading format and the presence of an FAQ block, all in milliseconds, and none of it sees whether the page holds an attributed stat or a named source, so a thin page can score green and still never get cited.
Grade substance first and treat the structural checks as the delivery layer. The tool measures hygiene, which isn’t what gets you cited.
Optimising the whole library
The instinct to make every page AI-ready usually comes from anxiety, and strategy has little to do with it. Rand Fishkin, who’s spent two decades watching search shift, puts the broader version bluntly: “Traffic is a vanity metric” (via Search Engine Land). Chasing AI readiness across every page is a vanity goal of the same kind.
Fix the pages worth fixing and stop. An audit that ends with “fix these eight pages” beats one that ends with “fix everything”, and the smaller list is the one you’ll act on.
Confusing “should be cited” with “is cited”
The audit scores how citable a page should be, structurally and substantively. It doesn’t tell you whether the page is actually cited, and the two drift apart because citation is noisy and platform-specific: AI tools gave the same list of brands fewer than 1 in 100 times across repeated runs of the same prompts (SparkToro and Gumshoe, 2026).
Treat the audit as the diagnostic and citation tracking as the scoreboard, run after the fixes land.
This audit is built for a solo or lean content function, where there’s no team to absorb a slow exhaustive pass and the only acceptable output is a short fix list. On a bigger team with spare capacity you can afford more depth, and some of the ruthlessness softens. The scoring is also deliberately directional, a two-minute read producing a rough score, so it’ll feel too loose for anyone who wants a formula that spits out a ranked queue. That looseness is the feature, because the moment scoring a page takes longer than fixing it, you’ve rebuilt the bureaucracy this was meant to kill. What holds across every library I’ve run it on is the order: score the page, triage by value, scope so it ships, then measure whether the fixes earned the citation. The deeper case for why substance has to lead all of this is in the AEO/LLMO Content Optimisation Framework, and the logic for deciding what to make in the first place is in the Content Prioritisation Framework.