# Audit Framework — 50 Checks Across 6 Categories
The audit engine evaluates a target URL against 50 checks. Each check has an ID, category, severity, point weight, fix availability, and rationale.
Categories and their total point budget (sums to 100):
| Category | ID Prefix | Points | Focus |
|----------|-----------|--------|-------|
| Meta & Technical Foundations | A | 20 | Title, description, canonical, viewport, lang, charset |
| Structured Data | C | 18 | JSON-LD presence, validity, completeness |
| Content Structure & Chunking | B | 20 | H1/H2 hierarchy, FAQ, lists, tables, definitional sentences |
| E-E-A-T & Entity Authority | D | 22 | Trust pages, brand consistency, expert signals |
| Off-site / Citation Surface | E | 12 | sameAs links, external citations, marketplace profiles |
| Open Graph & Social | F | 8 | OG tags, Twitter cards, social previews |
Total: **100 points**
---
## Category A — Meta & Technical Foundations (20 pts)
| ID | Check | Severity | Points | Auto-fix |
|----|-------|----------|--------|----------|
| A1 | `
` present, 30-60 chars | critical | 3 | ✅ |
| A2 | `` unique across crawl | high | 2 | ⚠️ guided |
| A3 | Meta description present, 120-160 chars | critical | 3 | ✅ |
| A4 | Canonical URL declared | critical | 3 | ✅ |
| A5 | `` attribute set | high | 2 | ✅ |
| A6 | Viewport meta correct for mobile | high | 2 | ✅ |
| A7 | charset declared as UTF-8 | medium | 1 | ✅ |
| A8 | robots meta consistent with intent | high | 2 | ✅ |
| A9 | Favicon linked (multiple sizes) | medium | 1 | ✅ |
| A10 | Apple touch icon linked | low | 1 | ✅ |
## Category B — Content Structure & Chunking (20 pts)
| ID | Check | Severity | Points | Auto-fix |
|----|-------|----------|--------|----------|
| B1 | Exactly one `` | critical | 3 | ⚠️ guided |
| B2 | `` contains primary topic keyword | high | 2 | ⚠️ guided |
| B3 | Logical H2/H3 hierarchy | high | 2 | ⚠️ guided |
| B4 | Long pages broken into H2 sections | high | 2 | ⚠️ guided |
| B5 | FAQ section present where appropriate | high | 2 | ✅ via templates |
| B6 | Concrete data points (numbers, dates, prices) | medium | 2 | ❌ |
| B7 | Quoted/attributed expert language | medium | 2 | ❌ |
| B8 | External citations to authoritative sources | medium | 1 | ❌ |
| B10 | Definitional sentence patterns ("X is defined as...") | medium | 1 | ⚠️ guided |
| B11 | ≥3 internal links to sibling pages | medium | 1 | ✅ via templates |
| B14 | Lists/tables for comparisons | medium | 2 | ❌ |
## Category C — Structured Data (18 pts)
| ID | Check | Severity | Points | Auto-fix |
|----|-------|----------|--------|----------|
| C1 | At least one JSON-LD block present | critical | 3 | ✅ |
| C2 | Organization schema present | high | 2 | ✅ |
| C3 | WebSite schema with SearchAction | medium | 1 | ✅ |
| C4 | FAQPage schema on FAQ pages | high | 2 | ✅ |
| C5 | Article/BlogPosting on blog pages | high | 2 | ✅ |
| C6 | Product schema on product pages | high | 2 | ✅ |
| C7 | BreadcrumbList on nested pages | medium | 1 | ✅ |
| C8 | HowTo schema on tutorial pages | low | 1 | ✅ |
| C9 | All schemas validate against schema.org | critical | 2 | ⚠️ guided |
| C10 | Schema fields match visible content | high | 2 | ❌ |
## Category D — E-E-A-T & Entity Authority (22 pts)
| ID | Check | Severity | Points | Auto-fix |
|----|-------|----------|--------|----------|
| D1 | About page exists and linked | critical | 3 | ✅ via templates |
| D2 | Privacy policy exists and linked | critical | 3 | ✅ via templates |
| D3 | Terms of use exists and linked | high | 2 | ✅ via templates |
| D4 | Contact information accessible | high | 2 | ✅ via templates |
| D5 | About/Trust/Newsroom links in chrome | high | 2 | ✅ |
| D6 | Privacy/Terms/Contact links in footer | high | 2 | ✅ |
| D7 | Author info on articles (where applicable) | medium | 1 | ⚠️ guided |
| D8 | Date published / updated on articles | medium | 1 | ⚠️ guided |
| D9 | Editorial standards page (Phase 2 check) | low | 1 | ❌ |
| D10 | Original research/data signals | low | 1 | ❌ |
| D11 | Awards/credentials displayed if real | low | 1 | ❌ |
| D12 | Brand token consistency across title/desc/H1/body | high | 3 | ⚠️ guided |
## Category E — Off-site / Citation Surface (12 pts)
| ID | Check | Severity | Points | Auto-fix |
|----|-------|----------|--------|----------|
| E1 | Review/marketplace profile linked (G2, PH, etc.) | medium | 2 | ⚠️ guided |
| E2 | App store profile linked (if applicable) | low | 1 | ⚠️ guided |
| E3 | Wikidata/Wikipedia entity claimed (when notable) | low | 1 | ❌ |
| E7 | GitHub linked for technical products | medium | 2 | ✅ |
| E10 | sameAs ≥3 authoritative profiles | medium | 2 | ✅ |
| E11 | LinkedIn company/personal profile linked | low | 1 | ✅ |
| E12 | External citations near named category sources | medium | 2 | ❌ |
| E13 | Social profiles consistent across platforms | low | 1 | ❌ |
## Category F — Open Graph & Social (8 pts)
| ID | Check | Severity | Points | Auto-fix |
|----|-------|----------|--------|----------|
| F1 | og:title set | high | 1 | ✅ |
| F2 | og:description set | high | 1 | ✅ |
| F3 | og:image set with absolute URL | high | 2 | ✅ |
| F4 | og:image dimensions 1200×630, < 5MB | medium | 1 | ⚠️ guided |
| F5 | og:url canonical | medium | 1 | ✅ |
| F6 | twitter:card set | high | 1 | ✅ |
| F7 | twitter:image dedicated or matches og:image | medium | 1 | ✅ |
---
## Scoring Bands
| Score | Band | Color |
|-------|------|-------|
| 91-100 | Excellent | green |
| 81-90 | Strong | green |
| 61-80 | Average | yellow |
| 41-60 | Weak | orange |
| 0-40 | Critical | red |
## Auto-Fix Legend
- ✅ Full auto-fix available via `answerfox fix ` or `answerfox add `
- ⚠️ Guided fix — CLI prompts user for missing info and then patches
- ❌ Manual — Content/research work the user must do themselves
## Notes for Implementation
- Check IDs are deliberately sparse (e.g., B9/B12/B13, E4–E6, E8–E9 reserved). Once `audit` ships, IDs are part of the public API (users will pin `--ignore ` in CI). Do not renumber; reserve gaps for future checks.
- Check weights are calibrated to total exactly 100 points
- Severity is independent of points: a low-points check can still be critical
- Every check has a `docsUrl` linking to a doc page explaining *why* it matters
- Checks are run in parallel where they don't share state
- Audit output supports console (default), JSON (`--json`), HTML report (`--html report.html`)
- CI mode (`--ci`) returns non-zero exit if score drops below threshold (default 80)
## Reference Sources
The framework draws from:
- **Google Search Quality Guidelines** — E-E-A-T concepts
- **freeaiseoaudit.com** — AI search engine readiness checks
- **schema.org** — Structured data validation
- **Lighthouse SEO audits** — Traditional SEO foundations
- **Perplexity, Claude, ChatGPT crawling behavior** — Real-world AI answer engine signals