full-seo-audit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited full-seo-audit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Coordinate a complete analysis across six phases over a defined audit surface (codebase + user-provided URL list), produce a unified score, and deliver a plain-English report with prioritized, actionable fixes.
This is a scoped audit, not a full-site crawl. Real full-site crawling requires a crawler MCP (Screaming Frog / Sitebulb / browser-based). Real Core Web Vitals require Lighthouse / PageSpeed Insights. This skill does the work that can be done honestly from static analysis + limited live fetches. The report explicitly lists what was and was not measured.
Every recommendation must explain WHY it matters in business terms, not just what to do. Write for a business owner who does not know what a canonical tag is.
Works identically on current Opus / Sonnet / Haiku models. Opus/Sonnet batch codebase reads, URL fetches, and reference loads in parallel. Haiku may follow sequentially if parallel batching misbehaves.
Read references/CAPABILITIES.md at the start. Key constraints:
Any category the user wants that requires unavailable infrastructure is reported in measurement_gaps[] with the Path B integration that would unlock it.
--non-interactive — Skip Phase 0 question gates. Use reasonable defaults, record unanswered context in awaiting_user_review. Auto-proceed through phase transitions. Emit trailing JSON with the final report path.--resume <run-id> — Load .seo/state/<run-id>.json and continue from the last saved phase.--urls=url1,url2,... — Explicit URL list to fetch (overrides the Phase 0 question)Save state to .seo/state/<run-id>.json at each phase boundary. Shared schema with other rad-seo multi-phase skills. See references/CAPABILITIES.md and the subagent-prompts for the full schema.
Gather required context before auditing. Ask the user and do not proceed until you have at least the codebase path or URL list:
In --non-interactive mode, use whatever context was passed and record unanswered items in awaiting_user_review.
Save Phase 0 checkpoint.
Static analysis + limited live fetches for the technical foundation that search engines need to crawl, index, and serve the site properly.
Parallel batch: read robots.txt, XML sitemaps, template/layout files, framework config (next.config.*, astro.config.*, vite.config.*), .htaccess, _headers, vercel.json, netlify.toml.
robots.txt exists? blocking important paths?noindex meta tags on pages that should be indexed?Flag risk factors observable in code — NOT LCP/CLS/INP numbers, which require Lighthouse/PSI measurement:
.png/.jpg > threshold, missing width/height)<head> without defer/asyncThe category's score reflects presence/absence of risk factors. If the user has a Lighthouse MCP available, use it for the real CWV score and merge; otherwise mark method as static-analysis in the JSON output.
.env, .git, admin without protection)For deeper technical analysis, delegate to the technical-seo skill.
Per-page analysis from codebase templates + URL fetches.
Why E-E-A-T matters: Google's quality raters evaluate these signals. Sites lacking them — especially in health, finance, or legal — face an uphill battle regardless of technical SEO quality.
Content quality + structural readiness for AI search engines. Uses the AI-extractability linter logic from aeo-optimizer Phase 1 (six structural dimensions).
For each key page: relevance to intent, depth, freshness, readability, unique value.
Honest framing: this scores content's readiness to be cited by AI, not actual AI citation rate. See references/CAPABILITIES.md.
For deeper content analysis, delegate to on-page-optimizer or the content-auditor agent. For keyword gaps, delegate to keyword-discovery.
Parallel-batch parse JSON-LD / Microdata / RDFa from templates and fetched pages.
By business type:
Flag pages close to qualifying for rich results but missing one or two properties — checking deprecations first (references/schema-types-guide.md): FAQ and HowTo rich results no longer exist (HowTo retired 2023, FAQ retired May 2026), so never list them as rich-result opportunities. Live opportunities: Product/Review stars, Article, Event, Recipe, VideoObject, Breadcrumb, JobPosting.
Why schema matters: Structured data does not directly boost rankings, but live rich-result types increase click-through rates, and clean entity markup aids AI parsing.
For detailed schema implementation, delegate to schema-architect.
Pages in the sitemap or indexable but with zero internal links — invisible to search engines during crawling.
Why internal linking matters: One of few ranking factors entirely within the site owner's control. Distributes authority; tells search engines which pages matter most.
Compare the site against competitors via observable signals. Uses the competitors identified in Phase 0.
Topics and keywords competitors rank for that the user does not. Prioritize by observable signal strength + business relevance.
Note if competitors appear to have stronger backlink profiles via observable signals (e.g., press coverage, linkable assets). Do NOT report numerical backlink counts without Path B integration.
Observe what content patterns competitors use that tend to earn AI citations. This is pattern observation, NOT a measurement of their actual citation rates.
For deeper competitive analysis, delegate to competitor-intelligence or the competitor-spy agent.
Read references/audit-scoring-rubric.md for the full category weights, severity deductions, A-F scale, and scoring methodology.
Important: categories whose measurement requires unavailable infrastructure are marked method: not-measured and excluded from the overall weighted score — NEVER fabricated. The report explicitly lists those gaps in the measurement_gaps section.
After completing all six phases, produce the audit report. Write in plain English for a non-technical business owner.
# SEO Audit Report: [Website]
## Date: [date]
## Audit Scope: [codebase | URL list | both] — [pages audited]
## Overall Score: [X]/100 (Grade: [A-F])
## Measurement Gaps: [list categories requiring Path B — their Path B unlock]
### Executive Summary
[2-3 paragraphs. Lead with the biggest finding. Summarize what works, what needs urgent attention,
and the single highest-impact action. Name the measurement gaps honestly.]
### Score Breakdown
| Category | Score | Grade | Method | Critical | Warnings | Opportunities |
|---|---|---|---|---|---|---|
| Technical SEO | /100 | | static-analysis | | | |
| On-Page SEO | /100 | | static-analysis | | | |
| Content & E-E-A-T | /100 | | static-analysis | | | |
| Schema & Structured Data | /100 | | static-analysis | | | |
| Internal Linking | /100 | | graph-built | | | |
| Page Speed (code-level risk) | /100 | | static-analysis | | | |
| Page Speed (CWV numbers) | N/A | | not-measured (needs Lighthouse MCP) | | | |
| Mobile Usability | /100 | | static-analysis | | | |
| AI-Extractability | /100 | | static-analysis | | | |
| **Overall (Weighted, measured categories only)** | **/100** | | | | | |
### Critical Issues (Fix Immediately)
[Per issue: impact, category, what's wrong, why it matters in business terms, how to fix with Claude Code command]
### Warnings (Fix Within 30 Days)
[Per issue: same format]
### Opportunities (Nice to Have)
[Per issue: same format]
### 30/60/90 Day Roadmap
#### Days 1-30: Foundation Fixes
#### Days 31-60: Content & Authority
#### Days 61-90: Growth & Competitive Edge
### AI-Extractability Score
[What it means: "measures how structurally ready your content is to be cited by AI engines.
Does NOT measure actual AI citations — that would require Path B MCP integration."
Then: current score, top 3 things helping, top 3 things hurting, specific conversion recommendations.]
### Measurement Gaps (What This Audit Did NOT Measure)
[For each gap: what you wanted, why it requires external infrastructure, which Path B MCP
would unlock it.]
### Next Steps
- Re-audit in: [30/60/90 days depending on severity]
- Ongoing monitoring: [what to track weekly/monthly — only things you can actually measure]
- Quick wins completed during audit: [list fixes applied]
- Path B integrations to consider: [ranked list of MCPs that would unlock measurement gaps]
- Specialist skills to run next: [list of relevant rad-seo skills]{
"audit_complete": true,
"run_id": "string",
"audit_scope": "codebase | urls | both",
"overall_score": 0,
"overall_grade": "A | B | C | D | F",
"report_path": "seo-audit-report.md",
"measurement_gaps": [
{"category": "string", "path_b_integration": "string"}
],
"critical_count": 0,
"warning_count": 0,
"opportunity_count": 0,
"quick_wins_applied": 0,
"escalation_required": false,
"awaiting_user_review": ["string"]
}| Situation | Delegate To | What It Does |
|---|---|---|
| Complex crawl issues, redirect chains, server config | technical-seo | Deep technical analysis on static + config surface |
| Need keyword targets | keyword-discovery | Keyword ideation + intent (volumes require Path B) |
| Content rewriting | on-page-optimizer | Content quality + AEO conversion |
| Schema needs writing or fixing | schema-architect | JSON-LD implementation + validation |
| Detailed competitor breakdown | competitor-intelligence | Observable competitive research |
| Ongoing scheduled auditing | full-seo-audit | Run on a cadence |
Always complete the full audit first. Delegate to specialists for implementation, not for the audit itself.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.