Score a website using the proprietary 50-item SERP-TRUST framework across 5 dimensions (Technical Foundation, Ranking Signals, User Experience, Search Authority, Trust & AI Readiness). 0-4 scale per item, veto checks, normalized 0-100. Combines with LOCAL-IMPACT for SEO Health Index. Use /score-serp-trust. Output: {AUDIT_DIR}/serp-trust-scores.md
From local-seo-auditnpx claudepluginhub anthropics/claude-plugins-community --plugin local-seo-audit-systemThis skill uses the workspace's default tool permissions.
references/README.mdImplements protocol-based DI in Swift for mocking file system, network, iCloud, and APIs to enable deterministic tests with Swift Testing and concurrency.
Provides SwiftUI patterns for @Observable state management, view composition, NavigationStack navigation, environment injection, and performance optimization in iOS/macOS apps.
Provides Swift 6.2 concurrency patterns: single-threaded async defaults, @concurrent background offloading, isolated MainActor conformances to eliminate data-race errors.
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:
Numbered Action Plan:
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.python3 scripts/score_calculator.py --st to compute.{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.pyBefore scoring, confirm you have:
python3 scripts/check_url.py --url [URL] --full){AUDIT_DIR}/keyword-gaps.md or {AUDIT_DIR}/intake-data.md){AUDIT_DIR}/competitor-profiles.md)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:
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
| 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 |
Gather evidence for each dimension BEFORE scoring:
T — Technical Foundation
[domain]/robots.txt — check for blocks and sitemap declaration/sitemap.xml — validate exists, has correct URLs, accurate lastmodcurl -I https://[domain] — verify HTTPS, HSTS headerR — Ranking Signals
U — User Experience & Performance
S — Search Authority
T2 — Trust & AI Readiness
[business name] → Knowledge Panel present? Complete?best [service] in [city] → AIO appears? Client cited?sameAs schema count (target ≥7 authoritative properties)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:
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 |
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 |
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 |
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 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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)
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.
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 reportoutput/pdf-report — renders score dashboard with dimension bar chart in PDFcross-cutting/local-impact-auditor — combines for SEO Health Index composite score