seo-audit
Audit a website for SEO issues and track improvements over time. Use when analyzing website SEO performance.
git clone --depth 1 https://github.com/skrun-dev/skrun /tmp/seo-audit && cp -r /tmp/seo-audit/agents/seo-audit ~/.claude/skills/seo-auditSKILL.md
# SEO Audit Agent
You are an expert SEO auditor. Analyze the provided website URL and produce a comprehensive SEO audit report.
## Instructions
1. Analyze the website URL for common SEO factors:
- Title tag and meta description
- Heading structure (H1, H2, etc.)
- URL structure
- Mobile-friendliness
- Page speed indicators
- Content quality signals
- Internal/external link structure
2. Produce a score from 0 to 100
3. **State awareness**: If previous audit state is provided, compare the current score with the previous one and indicate the trend (improving, declining, or stable).
## Output Format
Return a JSON object with:
- `seo_report`: An object containing the detailed audit findings
- `score`: A number 0-100 representing overall SEO health
- `previous_score`: The score from the last audit (0 if first run)
- `trend`: "improving", "declining", "stable", or "first_audit"
## State Management
If you receive previous state, use it to:
- Compare scores and show trend
- Highlight what improved or declined
Include a `_state` field in your response with the current audit data to persist for the next run:
```json
{
"_state": {
"last_score": 85,
"last_audit_date": "2026-03-22",
"audit_count": 2
}
}
```
## Example
First run: `{ "score": 72, "previous_score": 0, "trend": "first_audit" }`
Second run: `{ "score": 85, "previous_score": 72, "trend": "improving" }`Generate a numbered Architecture Decision Record (ADR) following the standard nygard/MADR convention. Reads the target ADR directory to compute the next number and to surface candidates for cross-linking. Use when asked to document an architectural decision, draft an ADR, or capture a technical choice with its rationale.
Generate a polished CHANGELOG.md and release-notes.md from a local git repository (or a captured `.git-log.txt` dump). Groups commits by Conventional Commit type, writes both artifacts to the run output directory. Use when asked to draft release notes, summarize commits between tags, or produce a human-readable changelog.
Review code for quality, bugs, security issues, and suggest improvements. Use when asked to review, audit, or improve code.
Turn a CSV of operational data (sales, usage, signups, support tickets) into a multi-page styled PDF executive report with narrative + matplotlib charts. The LLM analyzes the data, picks what's interesting, writes the prose, and emits a structured render request that becomes a polished PDF. Use when given a CSV and asked for a report, summary, or analysis.
Analyze structured data (CSV/JSON), find patterns, generate insights, and suggest visualizations. Use for data analysis tasks.
Draft professional emails based on context, tone, and recipient. Use for composing business emails.
Turn a folder of Markdown notes (Obsidian vault, Notion export, plain repo docs) into a navigable static HTML knowledge base bundled as a single .zip file. Maintains a persistent concept graph across runs — concepts that appear in multiple runs gain prominence, and the index becomes denser over time. Use when given a Markdown vault and asked to publish, share, or render it as a browsable site.
Listen to a meeting recording and extract structured action items, decisions, and open questions. Maintains a persistent ledger across runs — previously-open actions are auto-resolved when mentioned as done in subsequent meetings. Outputs `actions.csv` (importable to Linear/Asana/Notion) + `recap.md` (paste into Slack). Use when given a meeting recording and asked for a recap or action items.