How to Build an Evidence-Led Website Audit Without Fake Precision
A useful audit should let another reviewer move from a conclusion to the exact observation that supported it. This eight-step method makes that traceability explicit without pretending a score can predict rankings, citations, traffic, or revenue.
Try the evidence-led 100-point scorecard
Enter coverage and an evidence reference for each check. The scorecard awards no unsupported credit, keeps unknowns visible, and ranks the largest gaps. Nothing is uploaded.
Open the free scorecardMany website audits produce a score first and an explanation second. That order creates trouble when a developer, technical SEO consultant, or agency has to answer a simple client question: “Why did this item pass?” A polished dashboard is not evidence. A checklist is not automatically reproducible. A number is useful only when its scope, inputs, rules, and unknowns are visible.
The goal here is deliberately narrower than “AI SEO.” It is to turn reviewed observations into a repeatable operational assessment, preserve enough evidence to inspect every conclusion, and make a later re-run comparable. “AI readiness” is an operational label used in this workflow, not a certification or industry standard. You can use a spreadsheet, JSON files, a database, or ordinary notes. The method matters more than the storage tool.
1. Freeze the boundary before collecting data
Record the canonical site URL, the observation date, allowed origins, and the exact page sample. State whether you are reviewing the full public site or a bounded sample. Keep authenticated pages, staging domains, and third-party properties outside the result unless they were explicitly included.
This boundary prevents a common failure: the audit starts with ten public pages, silently adds a staging URL and a help center, then presents the final percentage as if every page belonged to one comparable population.
2. Give every observation a stable evidence ID
Create an evidence ledger before scoring. Each record should identify the source, what you observed, when you observed it, and your confidence. A check may reference one or more evidence IDs. If the evidence is missing, the check should remain unknown instead of receiving guessed credit.
{
"id": "robots-root",
"source": "https://example.com/robots.txt",
"observedAt": "2026-07-25T09:00:00Z",
"observation": "Returned HTTP 200 during the review",
"confidence": "high"
}
Keep observations factual. “Returned HTTP 200 during the review” is defensible. “Search engines can crawl the whole site” is a much broader inference and needs more evidence.
3. Separate observed, failed, not applicable, and unknown
A binary pass/fail model is often too blunt. Use at least four states:
- Observed pass: the named condition was verified inside the audit boundary.
- Observed fail: the named condition was checked and did not meet the rule.
- Not applicable: the rule was deliberately excluded with a recorded reason.
- Unknown: the evidence was unavailable, incomplete, malformed, or outside scope.
Unknown should fail closed in a completion score. That does not mean the site is broken. It means the audit cannot honestly award credit yet.
4. Review discoverability with bounded claims
Check whether robots.txt and a sitemap are reachable. For sampled pages, verify canonical URLs and intended indexability. Record response status, normalized URL, and the exact page where each directive was observed.
A limited crawl remains a limited crawl. A missing page in your sample is not proof that the page was deleted or excluded everywhere. The report should state what was checked rather than expanding the claim after the fact.
5. Measure metadata coverage from raw page rows
For each eligible sampled page, record whether it has a usable title, meta description, and H1. Calculate coverage as observed passes divided by eligible sampled pages. Preserve the raw rows so another reviewer can reproduce the percentage.
Keep uniqueness checks separate from presence checks. Ten pages can all have a title and still reuse the same one. Also keep malformed dates and duplicate normalized URLs visible; silently repairing them before scoring hides data-quality problems.
6. Treat content and AI-workflow checks as operational controls
Confirm that pages intended for discovery are indexable, contain useful primary content, and do not reuse the same title across the sample. A word-count threshold can flag a page for human review, but it is a workflow heuristic—not a quality or ranking judgment.
For AI workflow readiness, maintain a saved content inventory and a repeatable change-monitoring procedure. Treat llms.txt as optional and emerging. Record it as present and reviewed, intentionally not applicable, unfinished, or unknown. Publishing the file does not force a search engine, model, or agent to use it.
7. Publish the scoring rules before the result
If you use a score, define every check and weight first. A simple author-defined model might allocate 25 points each to discoverability, metadata, content hygiene, and AI workflow readiness. Award credit only for observed facts, make unknown values receive no guessed points, and label the weighting as your operational model rather than an external benchmark.
The important property is traceability: total score → area → individual check → evidence IDs → original observation. If that chain breaks, the number should not be presented as precise.
8. Re-run the same sample and disclose changes
After implementation, use the same scope, page sample, normalization rules, and scoring version. Save the before-and-after inputs, reports, evidence ledger, and observation dates. If the sample or rule set changes, disclose it instead of presenting the two scores as directly comparable.
Version the scoring definition as well as the data. A score can change because the site changed, because the evidence improved, or because the rules changed. Those are different events and should not be merged into one unexplained delta.
AI-Ready Website Audit Kit
I packaged this method as a $49 one-time kit with an author-defined 100-point Node.js scorer that requires evidence IDs for scored checks, a canonical evidence ledger, editable client report, 19-page playbook, sixteen deterministic and adversarial tests, and implementation templates. It requires Node.js 18+ and no third-party packages.
I am the independent solo developer who built and sells this kit; the link below is my product page. It includes no ranking, citation, traffic, or revenue promise.
Review the exact scope on Gumroad — $49