SERP-TRUST Auditor
Executive Summary
The SERP-TRUST framework is a 50-item proprietary scoring system that measures how much Google trusts a domain to appear and rank in competitive search results. Trust is distinct from authority — a site can have high Domain Rating (authority) but low SERP trust due to thin content, missing schema, poor CWV, or inconsistent NAP signals. In 2025–2026, SERP trust has a direct AI visibility component: Google's AI Overviews and third-party LLMs (ChatGPT, Perplexity) apply their own trust filters before citing sources. Sites scoring <50 on SERP-TRUST are rarely cited in AI answers regardless of organic ranking. The framework evaluates 5 dimensions: Technical Foundation (T), Ranking Signals (R), User Experience (U), Search Authority (S), and Trust & AI Readiness (A) — 10 items × 4-point scale per dimension = 200 raw points, normalized to 0–100.
2025 SERP-TRUST benchmarks:
- Overall score ≥80: competitive (citeable by AI Overviews); ≥90: market leader
- Technical Foundation: HTTPS enforced, INP <200ms (replaced FID March 2024), no crawl errors
- Ranking Signals: pillar pages with Surfer Score ≥80, FAQPage schema on all service pages
- User Experience: Core Web Vitals all "Good" (LCP <2.5s, INP <200ms, CLS <0.1)
- Search Authority: Domain Rating ≥30 for local; TF:CF ratio ≥0.5; branded anchor 50–60%
- Trust & AI Readiness: Organization schema + sameAs on homepage; GBP verified; 5+ review platforms
- Veto rule: any single Critical failure (e.g., active manual action, no HTTPS, score = 0 on T dimension) caps total score at ≤40 regardless of other dimensions
Numbered Action Plan:
Immediate (Week 1, High Impact/Low Effort)
- Validate all Technical Foundation items — run
python3 scripts/check_url.py --url [URL] --full for HTTPS, redirect chain, TTFB. Run Lighthouse → record LCP, INP, CLS scores. Effort: 30 min. Priority: 25.
- Check for critical veto triggers — active manual actions (GSC), HTTP accessible URL, 4xx/5xx homepage, no HTTPS = automatic score cap. Effort: 10 min.
- Score all 50 items — work through each dimension in order (T→R→U→S→A), applying 0–4 scale. Note evidence for every score ≠ 4. Effort: 1–2 hrs. Use
python3 scripts/score_calculator.py --st to compute.
- Identify veto check failures — each dimension has a veto check that caps the dimension score. Flag any failures immediately as Critical blockers. Effort: 15 min.
- Generate competitor comparison — score at least 2 top competitors on the same 50 items (abbreviated: focus on T and A dimensions). Gap = priority list. Effort: 45 min/competitor.
Short-Term (Week 2–4)
- Fix all T dimension failures first — Technical Foundation is the prerequisite layer; fixing T items produces the highest dimension ROI. Target: T dimension score ≥8/10 (80%) before moving to other dimensions. Effort: varies.
- Add missing structured data — Organization schema (homepage), LocalBusiness subtype (homepage), FAQPage (all service pages), HowTo (process pages). Effort: 2–4 hrs.
- Improve UX dimension — fix largest CWV failures first: LCP (often image optimization or render-blocking resources), INP (event listener optimization), CLS (reserve space for images/embeds). Effort: 4–8 hrs dev.
- Build Trust & AI Readiness — verify GBP, claim all sameAs properties, add review widget with AggregateRating schema, add author bylines with Person schema. Effort: 2–4 hrs.
- Write SERP-TRUST findings to
{AUDIT_DIR}/serp-trust-scores.md — YAML frontmatter + full 50-item scorecard + Priority Matrix + competitor comparison. Run python3 scripts/score_calculator.py --st to generate final score. Effort: 1 hr.
Output files:
{AUDIT_DIR}/serp-trust-scores.md — 50-item scorecard with scores and evidence
{REPORTS_DIR}/serp-trust-score.pdf — auto-generated PDF via python3 scripts/generate_pdf.py
Prerequisites
Before scoring, confirm you have:
If any are missing, collect them before proceeding.
Tools for this phase:
| Dimension |
Key Tools |
Purpose |
| T — Technical |
Screaming Frog, Google Rich Results Test, GSC URL Inspection, Lighthouse |
Crawl, schema, CWV |
| R — Ranking |
Ahrefs, SEMrush, GSC Performance, Surfer SEO |
Keywords, content quality |
| U — UX/Performance |
PageSpeed Insights, Lighthouse, Microsoft Clarity |
CWV, mobile, accessibility |
| S — Authority |
Ahrefs (DR, RD), Majestic (TF/CF), SEMrush Backlink Audit |
Link profile |
| T2 — Trust/AI |
Google Search (AIO), ChatGPT, Perplexity, Brand24, Wikidata |
AI visibility, entity |
2025 SERP-TRUST Context:
- INP replaced FID as Core Web Vital (March 2024) — target <200ms (Good: <100ms)
- AI Overviews (AIO) appear for 20–35% of local queries — T2 dimension captures this
- Schema completeness is both a Technical (T) AND Trust (T2) signal in 2025
- FAQPage schema = primary AIO citation trigger — assess in both T and T2
- Helpful Content System folded into core algorithm March 2024 — content quality now a direct ranking signal in R dimension
Framework Reference
Load the complete scoring rubric from references/serp-trust-benchmark.md.
Framework: SERP-TRUST (Search Engine Results Page — Technical Reliability, User Signals & Search Trust)
Items: 50 | Scale: 0–4 per item | Max Raw: 200 | Normalized: 0–100
Scoring Dimensions
| Code |
Dimension |
Items |
Max |
Key Signals |
| T |
Technical Foundation |
10 |
40 |
HTTPS, robots.txt, sitemap, canonicals, schema, CWV, JS rendering |
| R |
Ranking Signals |
10 |
40 |
Title/H1 optimization, content depth, E-E-A-T, internal linking, freshness |
| U |
User Experience & Performance |
10 |
40 |
LCP <1.8s, INP <100ms, CLS <0.05, mobile UX, accessibility |
| S |
Search Authority |
10 |
40 |
DR/TF, referring domains, anchor distribution, topical authority |
| T2 |
Trust & AI Readiness |
10 |
40 |
AIO citations, Knowledge Panel, schema, reviews, entity signals |
Execution Process
Step 1: Research Phase (30–45 min)
Gather evidence for each dimension BEFORE scoring:
T — Technical Foundation
- Fetch
[domain]/robots.txt — check for blocks and sitemap declaration
- Fetch
/sitemap.xml — validate exists, has correct URLs, accurate lastmod
- Check SSL:
curl -I https://[domain] — verify HTTPS, HSTS header
- Run Google Rich Results Test on homepage + 2 service pages — count schema types
- GSC URL Inspection → "Test Live URL" → View Rendered HTML (JS rendering check)
- Screaming Frog crawl → canonical tags, redirect chains, orphan pages
R — Ranking Signals
- GSC Performance → top 20 queries — check CTR vs. benchmark (target >3% for branded)
- Ahrefs → Organic Keywords — list top 10 ranking pages and their primary keywords
- Manual check title + H1 alignment on each top-5 pages
- Screaming Frog → Content → word count per page type (service ≥800, blog ≥1,200)
- Surfer SEO side-by-side vs. top competitor on 2 key service pages
U — User Experience & Performance
- PageSpeed Insights → Mobile: record LCP, INP, CLS, TTFB scores for homepage
- PageSpeed Insights → Mobile: record same for top service page
- Lighthouse → Accessibility score (target ≥90)
- Mobile viewport test at 375px — horizontal scroll? tap targets ≥44px?
- Microsoft Clarity or Hotjar: any rage-click or dead-click patterns? (if access)
S — Search Authority
- Ahrefs → Domain Rating (DR) vs. competitors — note gap
- Ahrefs → Referring Domains count + % from niche-relevant sites
- Majestic → Trust Flow / Citation Flow ratio (TF:CF target ≥0.5)
- Ahrefs → Anchor text profile — flag if exact-match commercial anchors >15%
- Ahrefs → Organic Traffic trend (6 months) — stable/growing or declining?
T2 — Trust & AI Readiness
- Search
[business name] → Knowledge Panel present? Complete?
- Search
best [service] in [city] → AIO appears? Client cited?
- Ask ChatGPT: "Who are the best [service] providers in [city]?" — client mentioned?
- Ask Perplexity: "Best [service] in [city]" — client cited?
- GSC → Reviews report + check aggregate rating schema on homepage
sameAs schema count (target ≥7 authoritative properties)
Step 2: Score Each Item (0–4 Scale)
For each of the 50 items, assign a score using the rubric from references/serp-trust-benchmark.md:
| Score |
Label |
Meaning |
Action |
| 0 |
Critical |
Broken, missing, or actively harmful |
Fix immediately |
| 1 |
Poor |
Exists but significantly below standards |
Prioritize this month |
| 2 |
Fair |
Partially implemented, notable gaps |
Improve within 90 days |
| 3 |
Good |
Correctly implemented, minor improvements possible |
Maintain |
| 4 |
Excellent |
Best-in-class, competitive advantage |
Protect this signal |
Record evidence string for each score: e.g., "T1: HTTPS + HSTS present — curl confirms 301 from HTTP [Score: 4]"
2025-specific scoring notes:
- INP (not FID): score INP target <100ms = 4, 100–200ms = 3, 200–500ms = 2, >500ms = 0–1
- FAQPage schema: score 4 if present on all service pages, 3 if homepage only, 2 if one page, 0 if missing
- AIO citation: score 4 if cited in 3+ AIO queries, 3 if 1–2, 2 if AIO appears but not cited, 0 if AIO doesn't even appear
- Knowledge Panel: score 4 if full panel + claimed, 3 if partial, 2 if only GBP card, 0 if nothing
Step 3: Veto Check
Check all 7 veto conditions — triggered vetoes cap the maximum final score:
| Veto |
Condition |
Check Method |
Score Cap |
| V01 |
Site not indexed by Google |
site:[domain] returns <5 pages |
10 |
| V02 |
Active manual penalty in GSC |
GSC → Security & Manual Actions |
15 |
| V03 |
No HTTPS or expired SSL |
curl -I https://[domain] — SSL error |
25 |
| V04 |
LCP >6s on mobile |
PageSpeed Insights → Mobile LCP |
30 |
| V05 |
Cloaked / hidden content |
Googlebot vs. user-agent comparison |
10 |
| V06 |
>50% toxic backlinks |
SEMrush Backlink Audit → Toxic Score |
20 |
| V07 |
Zero structured data |
Rich Results Test — no schema found |
40 |
Step 4: Calculate Final Score
Raw Score = Sum of all 50 item scores (max 200)
Normalized = (Raw Score / 200) × 100
Final Score = min(Normalized, lowest triggered veto cap)
Optional dimension-weighted scoring (recommended for granular analysis):
Weighted = (T_pct × 0.20) + (R_pct × 0.25) + (U_pct × 0.20) + (S_pct × 0.20) + (T2_pct × 0.15)
Score interpretation:
| Score |
Grade |
Meaning |
| 90–100 |
A |
Excellent trust signals — minimal improvement needed |
| 75–89 |
B |
Good — targeted improvements in weakest dimension |
| 60–74 |
C |
Average — systematic improvements across 2–3 dimensions |
| 45–59 |
D |
Weak — significant foundational work required |
| <45 |
F |
Critical — multiple failing signals, significant ranking suppression |
Step 5: Score Competitors (Abbreviated)
For each of 3 competitors, score on key items per dimension (abbreviated — focus on observable signals):
| Competitor |
T /40 |
R /40 |
U /40 |
S /40 |
T2 /40 |
Total /100 |
| Client |
|
|
|
|
|
|
| Comp 1 |
|
|
|
|
|
|
| Comp 2 |
|
|
|
|
|
|
| Comp 3 |
|
|
|
|
|
|
Step 6: Priority Quick Wins
For all items scored 0–1, calculate improvement priority:
| Item |
Current Score |
Potential Score |
Impact (1–5) |
Feasibility (1–5) |
Priority |
Effort |
| FAQPage schema missing |
0 |
4 |
4 |
5 |
20 |
30 min/page |
| INP >200ms |
1 |
3 |
4 |
3 |
12 |
4–16 hrs |
| No sameAs links |
0 |
3 |
4 |
5 |
20 |
30 min |
| Low CTR on branded queries |
1 |
3 |
3 |
4 |
12 |
1–2 hrs |
| AIO not appearing |
0 |
3 |
5 |
3 |
15 |
4–8 hrs |
Output Format
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SERP-TRUST SCORECARD
Website: [URL]
Date: [Date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERALL SCORE: [X] / 100 Grade: [A-F]
Dimension Breakdown:
T Technical Foundation [XX/40] ████████░░ [X%]
R Ranking Signals [XX/40] ███████░░░ [X%]
U User Experience [XX/40] █████░░░░░ [X%]
S Search Authority [XX/40] ████████░░ [X%]
T2 Trust & AI Readiness [XX/40] ██████░░░░ [X%]
Veto Checks:
[✅/❌] V01: Site Indexed (site:[domain] returns pages)
[✅/❌] V02: No Manual Penalty (GSC clear)
[✅/❌] V03: HTTPS Active + SSL valid
[✅/❌] V04: LCP < 6s on mobile
[✅/❌] V05: No Cloaking detected
[✅/❌] V06: Toxic Links < 50%
[✅/❌] V07: Has Structured Data (schema present)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMPETITOR COMPARISON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| Metric | Client | Comp 1 | Comp 2 | Comp 3 |
|------------|--------|--------|--------|--------|
| Overall | XX | XX | XX | XX |
| Technical | XX% | XX% | XX% | XX% |
| Ranking | XX% | XX% | XX% | XX% |
| UX/Perf | XX% | XX% | XX% | XX% |
| Authority | XX% | XX% | XX% | XX% |
| AI Ready | XX% | XX% | XX% | XX% |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TOP 5 IMPROVEMENT PRIORITIES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [Item ID]: [Description] — Current: X/4 → Target: 4/4 — Impact: High — Effort: [X]
2. [Item ID]: [Description] — Current: X/4 → Target: 3/4 — Impact: High — Effort: [X]
3. [Item ID]: [Description] — Current: X/4 → Target: 4/4 — Impact: Med — Effort: [X]
4. [Item ID]: [Description] — Current: X/4 → Target: 3/4 — Impact: Med — Effort: [X]
5. [Item ID]: [Description] — Current: X/4 → Target: 3/4 — Impact: Med — Effort: [X]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
QUICK WINS (Score to 3–4 with <1hr effort)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• [Item]: [What to do] — Effort: [time] — Expected gain: +X points (+X/100)
• [Item]: [What to do] — Effort: [time] — Expected gain: +X points (+X/100)
• [Item]: [What to do] — Effort: [time] — Expected gain: +X points (+X/100)
SEO Health Index (Combined Score)
If LOCAL-IMPACT has also been scored, compute the combined index:
SEO Health Index = (LOCAL-IMPACT Score × 0.55) + (SERP-TRUST Score × 0.45)
Report as the master metric in the final output.
Handoff
Save results to {AUDIT_DIR}/serp-trust-scores.md with YAML data block:
---
skill: cross-cutting/serp-trust-auditor
phase: scoring
date: [YYYY-MM-DD]
business: [Business Name]
url: [URL]
framework: SERP-TRUST
version: 1.0
scores:
overall: [0-100]
grade: [A-F]
weighted: [0-100]
dimensions:
T: { raw: X, max: 40, pct: X }
R: { raw: X, max: 40, pct: X }
U: { raw: X, max: 40, pct: X }
S: { raw: X, max: 40, pct: X }
T2: { raw: X, max: 40, pct: X }
vetoes_triggered: [list veto codes or empty]
competitors:
- name: [comp1]
url: [url]
score: X
- name: [comp2]
url: [url]
score: X
seo_health_index: [0-100]
---
Key consumers:
output/report-generation — SERP-TRUST score integrates into master report
output/pdf-report — renders score dashboard with dimension bar chart in PDF
cross-cutting/local-impact-auditor — combines for SEO Health Index composite score
1---2name: serp-trust-auditor3description: Serp Trust Auditor4---56# SERP-TRUST Auditor78## Executive Summary910The SERP-TRUST framework is a 50-item proprietary scoring system that measures how much Google trusts a domain to appear and rank in competitive search results. Trust is distinct from authority — a site can have high Domain Rating (authority) but low SERP trust due to thin content, missing schema, poor CWV, or inconsistent NAP signals. In 2025–2026, SERP trust has a direct AI visibility component: Google's AI Overviews and third-party LLMs (ChatGPT, Perplexity) apply their own trust filters before citing sources. Sites scoring <50 on SERP-TRUST are rarely cited in AI answers regardless of organic ranking. The framework evaluates 5 dimensions: Technical Foundation (T), Ranking Signals (R), User Experience (U), Search Authority (S), and Trust & AI Readiness (A) — 10 items × 4-point scale per dimension = 200 raw points, normalized to 0–100.1112**2025 SERP-TRUST benchmarks:**13- Overall score ≥80: competitive (citeable by AI Overviews); ≥90: market leader14- Technical Foundation: HTTPS enforced, INP <200ms (replaced FID March 2024), no crawl errors15- Ranking Signals: pillar pages with Surfer Score ≥80, FAQPage schema on all service pages16- User Experience: Core Web Vitals all "Good" (LCP <2.5s, INP <200ms, CLS <0.1)17- Search Authority: Domain Rating ≥30 for local; TF:CF ratio ≥0.5; branded anchor 50–60%18- Trust & AI Readiness: Organization schema + sameAs on homepage; GBP verified; 5+ review platforms19- Veto rule: any single Critical failure (e.g., active manual action, no HTTPS, score = 0 on T dimension) caps total score at ≤40 regardless of other dimensions2021**Numbered Action Plan:**2223### Immediate (Week 1, High Impact/Low Effort)241. **Validate all Technical Foundation items** — run `python3 scripts/check_url.py --url [URL] --full` for HTTPS, redirect chain, TTFB. Run Lighthouse → record LCP, INP, CLS scores. Effort: 30 min. Priority: 25.252. **Check for critical veto triggers** — active manual actions (GSC), HTTP accessible URL, 4xx/5xx homepage, no HTTPS = automatic score cap. Effort: 10 min.263. **Score all 50 items** — work through each dimension in order (T→R→U→S→A), applying 0–4 scale. Note evidence for every score ≠ 4. Effort: 1–2 hrs. Use `python3 scripts/score_calculator.py --st` to compute.274. **Identify veto check failures** — each dimension has a veto check that caps the dimension score. Flag any failures immediately as Critical blockers. Effort: 15 min.285. **Generate competitor comparison** — score at least 2 top competitors on the same 50 items (abbreviated: focus on T and A dimensions). Gap = priority list. Effort: 45 min/competitor.2930### Short-Term (Week 2–4)316. **Fix all T dimension failures first** — Technical Foundation is the prerequisite layer; fixing T items produces the highest dimension ROI. Target: T dimension score ≥8/10 (80%) before moving to other dimensions. Effort: varies.327. **Add missing structured data** — Organization schema (homepage), LocalBusiness subtype (homepage), FAQPage (all service pages), HowTo (process pages). Effort: 2–4 hrs.338. **Improve UX dimension** — fix largest CWV failures first: LCP (often image optimization or render-blocking resources), INP (event listener optimization), CLS (reserve space for images/embeds). Effort: 4–8 hrs dev.349. **Build Trust & AI Readiness** — verify GBP, claim all sameAs properties, add review widget with AggregateRating schema, add author bylines with Person schema. Effort: 2–4 hrs.3510. **Write SERP-TRUST findings to `{AUDIT_DIR}/serp-trust-scores.md`** — YAML frontmatter + full 50-item scorecard + Priority Matrix + competitor comparison. Run `python3 scripts/score_calculator.py --st` to generate final score. Effort: 1 hr.3637**Output files:**38- `{AUDIT_DIR}/serp-trust-scores.md` — 50-item scorecard with scores and evidence39- `{REPORTS_DIR}/serp-trust-score.pdf` — auto-generated PDF via `python3 scripts/generate_pdf.py`4041---4243## Prerequisites4445Before scoring, confirm you have:46- [ ] Website URL (must be accessible — run `python3 scripts/check_url.py --url [URL] --full`)47- [ ] Target keywords (minimum 5 — from `{AUDIT_DIR}/keyword-gaps.md` or `{AUDIT_DIR}/intake-data.md`)48- [ ] At least 3 competitor URLs (from `{AUDIT_DIR}/competitor-profiles.md`)49- [ ] Target location(s) for local context5051If any are missing, collect them before proceeding.5253**Tools for this phase:**54| Dimension | Key Tools | Purpose |55|-----------|----------|---------|56| T — Technical | Screaming Frog, Google Rich Results Test, GSC URL Inspection, Lighthouse | Crawl, schema, CWV |57| R — Ranking | Ahrefs, SEMrush, GSC Performance, Surfer SEO | Keywords, content quality |58| U — UX/Performance | PageSpeed Insights, Lighthouse, Microsoft Clarity | CWV, mobile, accessibility |59| S — Authority | Ahrefs (DR, RD), Majestic (TF/CF), SEMrush Backlink Audit | Link profile |60| T2 — Trust/AI | Google Search (AIO), ChatGPT, Perplexity, Brand24, Wikidata | AI visibility, entity |6162**2025 SERP-TRUST Context:**63- **INP replaced FID** as Core Web Vital (March 2024) — target <200ms (Good: <100ms)64- **AI Overviews** (AIO) appear for 20–35% of local queries — T2 dimension captures this65- **Schema completeness** is both a Technical (T) AND Trust (T2) signal in 202566- **FAQPage schema** = primary AIO citation trigger — assess in both T and T267- **Helpful Content System** folded into core algorithm March 2024 — content quality now a direct ranking signal in R dimension6869## Framework Reference7071Load the complete scoring rubric from `references/serp-trust-benchmark.md`.7273**Framework:** SERP-TRUST (Search Engine Results Page — Technical Reliability, User Signals & Search Trust)74**Items:** 50 | **Scale:** 0–4 per item | **Max Raw:** 200 | **Normalized:** 0–1007576## Scoring Dimensions7778| Code | Dimension | Items | Max | Key Signals |79|------|-----------|-------|-----|------------|80| T | Technical Foundation | 10 | 40 | HTTPS, robots.txt, sitemap, canonicals, schema, CWV, JS rendering |81| R | Ranking Signals | 10 | 40 | Title/H1 optimization, content depth, E-E-A-T, internal linking, freshness |82| U | User Experience & Performance | 10 | 40 | LCP <1.8s, INP <100ms, CLS <0.05, mobile UX, accessibility |83| S | Search Authority | 10 | 40 | DR/TF, referring domains, anchor distribution, topical authority |84| T2 | Trust & AI Readiness | 10 | 40 | AIO citations, Knowledge Panel, schema, reviews, entity signals |8586## Execution Process8788### Step 1: Research Phase (30–45 min)8990Gather evidence for each dimension BEFORE scoring:9192**T — Technical Foundation**931. Fetch `[domain]/robots.txt` — check for blocks and sitemap declaration942. Fetch `/sitemap.xml` — validate exists, has correct URLs, accurate `lastmod`953. Check SSL: `curl -I https://[domain]` — verify HTTPS, HSTS header964. Run Google Rich Results Test on homepage + 2 service pages — count schema types975. GSC URL Inspection → "Test Live URL" → View Rendered HTML (JS rendering check)986. Screaming Frog crawl → canonical tags, redirect chains, orphan pages99100**R — Ranking Signals**1011. GSC Performance → top 20 queries — check CTR vs. benchmark (target >3% for branded)1022. Ahrefs → Organic Keywords — list top 10 ranking pages and their primary keywords1033. Manual check title + H1 alignment on each top-5 pages1044. Screaming Frog → Content → word count per page type (service ≥800, blog ≥1,200)1055. Surfer SEO side-by-side vs. top competitor on 2 key service pages106107**U — User Experience & Performance**1081. PageSpeed Insights → Mobile: record LCP, INP, CLS, TTFB scores for homepage1092. PageSpeed Insights → Mobile: record same for top service page1103. Lighthouse → Accessibility score (target ≥90)1114. Mobile viewport test at 375px — horizontal scroll? tap targets ≥44px?1125. Microsoft Clarity or Hotjar: any rage-click or dead-click patterns? (if access)113114**S — Search Authority**1151. Ahrefs → Domain Rating (DR) vs. competitors — note gap1162. Ahrefs → Referring Domains count + % from niche-relevant sites1173. Majestic → Trust Flow / Citation Flow ratio (TF:CF target ≥0.5)1184. Ahrefs → Anchor text profile — flag if exact-match commercial anchors >15%1195. Ahrefs → Organic Traffic trend (6 months) — stable/growing or declining?120121**T2 — Trust & AI Readiness**1221. Search `[business name]` → Knowledge Panel present? Complete?1232. Search `best [service] in [city]` → AIO appears? Client cited?1243. Ask ChatGPT: "Who are the best [service] providers in [city]?" — client mentioned?1254. Ask Perplexity: "Best [service] in [city]" — client cited?1265. GSC → Reviews report + check aggregate rating schema on homepage1276. `sameAs` schema count (target ≥7 authoritative properties)128129---130131### Step 2: Score Each Item (0–4 Scale)132133For each of the 50 items, assign a score using the rubric from `references/serp-trust-benchmark.md`:134135| Score | Label | Meaning | Action |136|-------|-------|---------|--------|137| 0 | Critical | Broken, missing, or actively harmful | Fix immediately |138| 1 | Poor | Exists but significantly below standards | Prioritize this month |139| 2 | Fair | Partially implemented, notable gaps | Improve within 90 days |140| 3 | Good | Correctly implemented, minor improvements possible | Maintain |141| 4 | Excellent | Best-in-class, competitive advantage | Protect this signal |142143**Record evidence string for each score:** e.g., "T1: HTTPS + HSTS present — curl confirms 301 from HTTP [Score: 4]"144145**2025-specific scoring notes:**146- INP (not FID): score INP target <100ms = 4, 100–200ms = 3, 200–500ms = 2, >500ms = 0–1147- FAQPage schema: score 4 if present on all service pages, 3 if homepage only, 2 if one page, 0 if missing148- AIO citation: score 4 if cited in 3+ AIO queries, 3 if 1–2, 2 if AIO appears but not cited, 0 if AIO doesn't even appear149- Knowledge Panel: score 4 if full panel + claimed, 3 if partial, 2 if only GBP card, 0 if nothing150151---152153### Step 3: Veto Check154155Check all 7 veto conditions — triggered vetoes cap the maximum final score:156157| Veto | Condition | Check Method | Score Cap |158|------|-----------|-------------|-----------|159| V01 | Site not indexed by Google | `site:[domain]` returns <5 pages | 10 |160| V02 | Active manual penalty in GSC | GSC → Security & Manual Actions | 15 |161| V03 | No HTTPS or expired SSL | `curl -I https://[domain]` — SSL error | 25 |162| V04 | LCP >6s on mobile | PageSpeed Insights → Mobile LCP | 30 |163| V05 | Cloaked / hidden content | Googlebot vs. user-agent comparison | 10 |164| V06 | >50% toxic backlinks | SEMrush Backlink Audit → Toxic Score | 20 |165| V07 | Zero structured data | Rich Results Test — no schema found | 40 |166167---168169### Step 4: Calculate Final Score170171```172Raw Score = Sum of all 50 item scores (max 200)173Normalized = (Raw Score / 200) × 100174Final Score = min(Normalized, lowest triggered veto cap)175```176177Optional dimension-weighted scoring (recommended for granular analysis):178```179Weighted = (T_pct × 0.20) + (R_pct × 0.25) + (U_pct × 0.20) + (S_pct × 0.20) + (T2_pct × 0.15)180```181182**Score interpretation:**183| Score | Grade | Meaning |184|-------|-------|---------|185| 90–100 | A | Excellent trust signals — minimal improvement needed |186| 75–89 | B | Good — targeted improvements in weakest dimension |187| 60–74 | C | Average — systematic improvements across 2–3 dimensions |188| 45–59 | D | Weak — significant foundational work required |189| <45 | F | Critical — multiple failing signals, significant ranking suppression |190191---192193### Step 5: Score Competitors (Abbreviated)194195For each of 3 competitors, score on key items per dimension (abbreviated — focus on observable signals):196197| Competitor | T /40 | R /40 | U /40 | S /40 | T2 /40 | Total /100 |198|-----------|-------|-------|-------|-------|--------|-----------|199| Client | | | | | | |200| Comp 1 | | | | | | |201| Comp 2 | | | | | | |202| Comp 3 | | | | | | |203204---205206### Step 6: Priority Quick Wins207208For all items scored 0–1, calculate improvement priority:209210| Item | Current Score | Potential Score | Impact (1–5) | Feasibility (1–5) | Priority | Effort |211|------|------------|----------------|-------------|-------------------|---------|--------|212| FAQPage schema missing | 0 | 4 | 4 | 5 | 20 | 30 min/page |213| INP >200ms | 1 | 3 | 4 | 3 | 12 | 4–16 hrs |214| No sameAs links | 0 | 3 | 4 | 5 | 20 | 30 min |215| Low CTR on branded queries | 1 | 3 | 3 | 4 | 12 | 1–2 hrs |216| AIO not appearing | 0 | 3 | 5 | 3 | 15 | 4–8 hrs |217218---219220## Output Format221222```223━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━224 SERP-TRUST SCORECARD225 Website: [URL]226 Date: [Date]227━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━228229 OVERALL SCORE: [X] / 100 Grade: [A-F]230231 Dimension Breakdown:232 T Technical Foundation [XX/40] ████████░░ [X%]233 R Ranking Signals [XX/40] ███████░░░ [X%]234 U User Experience [XX/40] █████░░░░░ [X%]235 S Search Authority [XX/40] ████████░░ [X%]236 T2 Trust & AI Readiness [XX/40] ██████░░░░ [X%]237238 Veto Checks:239 [✅/❌] V01: Site Indexed (site:[domain] returns pages)240 [✅/❌] V02: No Manual Penalty (GSC clear)241 [✅/❌] V03: HTTPS Active + SSL valid242 [✅/❌] V04: LCP < 6s on mobile243 [✅/❌] V05: No Cloaking detected244 [✅/❌] V06: Toxic Links < 50%245 [✅/❌] V07: Has Structured Data (schema present)246247━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━248 COMPETITOR COMPARISON249━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━250 | Metric | Client | Comp 1 | Comp 2 | Comp 3 |251 |------------|--------|--------|--------|--------|252 | Overall | XX | XX | XX | XX |253 | Technical | XX% | XX% | XX% | XX% |254 | Ranking | XX% | XX% | XX% | XX% |255 | UX/Perf | XX% | XX% | XX% | XX% |256 | Authority | XX% | XX% | XX% | XX% |257 | AI Ready | XX% | XX% | XX% | XX% |258259━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━260 TOP 5 IMPROVEMENT PRIORITIES261━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━262 1. [Item ID]: [Description] — Current: X/4 → Target: 4/4 — Impact: High — Effort: [X]263 2. [Item ID]: [Description] — Current: X/4 → Target: 3/4 — Impact: High — Effort: [X]264 3. [Item ID]: [Description] — Current: X/4 → Target: 4/4 — Impact: Med — Effort: [X]265 4. [Item ID]: [Description] — Current: X/4 → Target: 3/4 — Impact: Med — Effort: [X]266 5. [Item ID]: [Description] — Current: X/4 → Target: 3/4 — Impact: Med — Effort: [X]267268━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━269 QUICK WINS (Score to 3–4 with <1hr effort)270━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━271 • [Item]: [What to do] — Effort: [time] — Expected gain: +X points (+X/100)272 • [Item]: [What to do] — Effort: [time] — Expected gain: +X points (+X/100)273 • [Item]: [What to do] — Effort: [time] — Expected gain: +X points (+X/100)274```275276## SEO Health Index (Combined Score)277278If LOCAL-IMPACT has also been scored, compute the combined index:279280```281SEO Health Index = (LOCAL-IMPACT Score × 0.55) + (SERP-TRUST Score × 0.45)282```283284Report as the master metric in the final output.285286## Handoff287288Save results to `{AUDIT_DIR}/serp-trust-scores.md` with YAML data block:289290```yaml291---292skill: cross-cutting/serp-trust-auditor293phase: scoring294date: [YYYY-MM-DD]295business: [Business Name]296url: [URL]297framework: SERP-TRUST298version: 1.0299scores:300 overall: [0-100]301 grade: [A-F]302 weighted: [0-100]303 dimensions:304 T: { raw: X, max: 40, pct: X }305 R: { raw: X, max: 40, pct: X }306 U: { raw: X, max: 40, pct: X }307 S: { raw: X, max: 40, pct: X }308 T2: { raw: X, max: 40, pct: X }309 vetoes_triggered: [list veto codes or empty]310 competitors:311 - name: [comp1]312 url: [url]313 score: X314 - name: [comp2]315 url: [url]316 score: X317 seo_health_index: [0-100]318---319```320321**Key consumers:**322- `output/report-generation` — SERP-TRUST score integrates into master report323- `output/pdf-report` — renders score dashboard with dimension bar chart in PDF324- `cross-cutting/local-impact-auditor` — combines for SEO Health Index composite score