seo-skills/seo-audit-skill/skill
Claude Code and agent skill by seo-skills/seo-audit-skill
- community
Checking that the SKILL.md file is still in the repository.
Audit websites for SEO, technical, content, security, JS rendering, and AI readiness using SEOmator CLI. Returns LLM-optimized reports with health scores across 373 rules and 20 categories, and can diff two audits to show what a deploy changed. Use when analyzing websites, debugging SEO issues, checking site health, or comparing a site before and after a change.
Install
npx vskill@latest install seo-skills/seo-audit-skill/skillSKILL.md
SEO Audit Skill
Audit websites for SEO, technical, content, performance, security, JavaScript rendering, and AI readiness using the SEOmator CLI.
SEOmator provides comprehensive website auditing by analyzing website structure and content against 373 rules across 20 categories.
It provides a list of issues with severity levels, affected URLs, and actionable fix suggestions.
Links
- SEOmator npm package: npmjs.com/package/@seomator/seo-audit
- GitHub repository: github.com/seo-skills/seo-audit-skill
- Web UI: seomator.com/free-seo-audit-tool
What This Skill Does
This skill enables AI agents to audit websites for 373 rules in 20 categories, including:
- Core SEO (24 rules): Canonical URLs, indexing directives, title uniqueness, canonical conflicts/loops
- Performance (28 rules): LCP, CLS, FCP, TTFB, INP, compression, caching, minification, HTTP/2
- Links (27 rules): Broken links, redirect chains, anchor text, localhost/fragment links, plus click depth and inbound internal links from the site graph (
--crawl) - Images (14 rules): Alt text, dimensions, lazy loading, modern formats, alt length, background images
- Security (26 rules): HTTPS, HSTS, CSP, external link safety, leaked secrets, SSL expiry/protocol, cookie flags and lifetime
- Technical SEO (18 rules): robots.txt, sitemap.xml, URL structure, 404 pages, soft 404s, error codes
- Crawlability (38 rules): Sitemap conflicts, indexability signals, canonical chains, pagination issues, sitemap lastmod quality
- Structured Data (19 rules): Schema.org markup, Article, Organization, FAQ, Product, Breadcrumb
- JavaScript Rendering (16 rules): Rendered DOM checks, raw vs rendered mismatches, SSR detection, console errors, failed resource requests
- Accessibility (36 rules): ARIA labels, color contrast, form labels, landmarks, touch targets
- Content (27 rules): Word count, readability, keyword density, duplicate detection, pixel widths
- Social (9 rules): Open Graph tags, Twitter cards, share buttons, profile links
- E-E-A-T (16 rules): Author bylines, citations, trust signals, about/contact pages, YMYL detection
- URL Structure (14 rules): Keyword slugs, stop words, uppercase, underscores, session IDs, tracking params
- Redirects (11 rules): Redirect loops, types (301/302), meta refresh, JavaScript redirects, broken redirects
- Mobile (12 rules): Font sizes, horizontal scroll, interstitials, viewport, mobile-first parity (content, title, canonical, structured data, links) via
--mobile - Internationalization (13 rules): lang attribute, hreflang validation (return links, conflicts, mismatches)
- HTML Validation (11 rules): Doctype, charset, head structure, lorem ipsum, multiple titles/descriptions
- AI/GEO Readiness (13 rules): Semantic HTML, AI bot access, llms.txt, schema drift
- Legal Compliance (1 rule): Cookie consent
The audit crawls the website, analyzes each page against audit rules, and returns a comprehensive report with:
- Overall health score (0-100) with letter grade (A-F)
- Category breakdowns with pass/warn/fail counts
- Specific issues with affected URLs grouped by rule
- Actionable fix recommendations
When to Use
Use this skill when you need to:
- Analyze a website's SEO health
- Debug technical SEO issues
- Check for broken links and redirect chains
- Validate meta tags, canonical URLs, and structured data
- Audit security headers, SSL, and HTTPS
- Check accessibility compliance
- Analyze JavaScript rendering and SSR compatibility
- Evaluate AI/GEO readiness (semantic HTML, llms.txt, bot access)
- Detect duplicate content across pages
- Validate hreflang and internationalization setup
- Check HTML document structure and validation
- Generate site audit reports in multiple formats
- Compare site health before/after changes
Prerequisites
This skill requires the SEOmator CLI to be installed.
Installation
Verify Installation
Check that seomator is installed and the system is ready:
This checks:
- Node.js version (20.3 or later required)
- npm availability
- Chrome/Chromium for Core Web Vitals and JS rendering
- Write permissions for ~/.seomator
- Local config file presence
Setup
Running seomator init creates a seomator.toml config file in the current directory.
If there is no seomator.toml in the directory, CREATE ONE with seomator init -y before running audits. Plain seomator init asks questions, and without a terminal it exits 0 without writing a file.
Usage
AI Agent Best Practices
YOU SHOULD always prefer `--format llm` - it provides token-optimized XML output specifically designed for AI agents (50-70% smaller than JSON).
When auditing:
- Prefer live websites over local dev servers for accurate performance and rendering data
- Use `--no-cwv` for faster audits, but know what it costs: it skips the
browser render, so Core Web Vitals, the JavaScript rendering rules, js-console-errors, js-failed-requests and all mobile-parity-* rules report unmeasured rather than passing or failing
- Match the flags to the question. Rules that need more than one page or
more than one render are unmeasured without the right flag:
| To check | Run with | |
|---|---|---|
| Click depth, inbound internal links | --crawl (builds the site graph) | |
| Mobile-first indexing parity | --mobile (second render at a phone viewport) | |
| JS errors, failed subresources, Core Web Vitals | default (omit --no-cwv) | |
| What a deploy changed | run before and after, then seomator compare <domain> |
- Scope fixes as concurrent tasks when implementing multiple fixes
- Run typechecking/formatting after implementing fixes (tsc, eslint, prettier, etc.)
Website Discovery
If the user doesn't provide a website to audit:
- Check for local dev server configurations (package.json scripts, .env files)
- Look for Vercel/Netlify project links
- Check environment variables for deployment URLs
- Ask the user which URL to audit
If you have both local and live websites available, suggest auditing the live site for accurate results.
Basic Workflow
Advanced Options
Audit specific categories only:
Save HTML report for sharing:
Verbose output for debugging:
Exit codes
An agent must be able to tell "the audit failed" from "the site scored badly". audit and compare use these codes (other commands, such as config and self doctor, exit 1 on an error of their own):
| Code | Meaning | |
|---|---|---|
0 | Success | |
1 | The run worked, and the result is below a threshold — audit/analyze scored under 70, or compare --fail-on-regression found a regression | |
2 | The command failed: unreachable URL, HTTP error, missing crawl, bad --config path | |
130 | Cancelled with Ctrl-C |
A non-zero exit is not automatically a failure. 1 means the tool worked and is telling you something about the site. Only 2 means it could not do the job. Under --format json, a 2 also puts a structured error on stdout with a stable code field (hint appears only when there is one):
Under --format llm the same error is XML: <seo-audit ok="false"><error code="http-error"><message>…</message><hint>…</hint></error></seo-audit>.
A command line the parser rejects (an unknown flag, an invalid URL or option value) exits 1 with the reason on stderr and nothing on stdout. Treat a 1 with empty stdout as a usage error, not as a low score.
code is one of dns, unreachable (nothing answered: refused, reset or no route), tls (certificate rejected), timeout, http-error, non-html, playwright-missing, no-pages, config, aborted or unknown.
Command Reference
Audit Command Options
| Option | Alias | Description | Default | |
|---|---|---|---|---|
--format <fmt> | -f | Output format: console, json, html, markdown, llm | console | |
--max-pages <n> | -m | Maximum pages to crawl | 10 | |
--crawl | Enable multi-page crawl | false | ||
--categories <list> | -c | Comma-separated categories to audit | All | |
--no-cwv | Skip Core Web Vitals + JS rendering | false | ||
--mobile | Render mobile viewport + mobile-first parity (single-page) | false | ||
--verbose | -v | Show progress | false | |
--output <path> | -o | Output file path | ||
--config <path> | Config file path | |||
--no-save | Do not store this audit in ~/.seomator | |||
--staging | Audit a staging site: waive the noindex and robots.txt caps and crawl past robots.txt; the waived caps are listed | false |
Audits are stored by default, so compare and report always have history.
Dashboard
seomator serve runs a local web dashboard over the stored audits (history, per-rule detail, comparisons, exports). For scripted access, read the token from ~/.seomator/serve.json and send it as X-SEOmator-Token; GET /api lists every route. See docs/WEB-DASHBOARD.md.
Compare Command Options
seomator compare <domain> diffs two stored audits of the same site. Every audit is stored unless it ran with --no-save.
| Option | Description | Default | |
|---|---|---|---|
--against <auditId> | Compare against a specific audit instead of the previous run | latest-but-one | |
--trend | Show score history for the domain instead of a two-run diff | false | |
--json / -j | Machine-readable diff | false | |
--fail-on-regression | Exit 1 when the score dropped or any rule's status got worse. Two audits measured differently (Core Web Vitals, scoring model, rule filters, staging) are reported as not like-for-like and never fail | false |
Rules are diffed by ID, so a rule that broke and a different one that was fixed are reported separately rather than cancelling out in a count.
Other Commands
Output Formats
| Format | Flag | Best For | |
|---|---|---|---|
| console | --format console | Human terminal output (default) | |
| json | --format json | CI/CD, programmatic processing | |
| html | --format html | Standalone reports, sharing | |
| markdown | --format markdown | Documentation, GitHub | |
| llm | --format llm | AI agents (recommended) |
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskill/SKILL.md
Popularity
- Repository stars
- 438
- Repository forks
- 60
- 7-day trend score
- 30
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/seo-skills/seo-audit-skill/skill)