seo-audit · openclaudia — Claude Code skill: SEO checks and installation
Audits a site’s technical SEO and page content, then reports scores and issues. Use it to investigate indexing, performance, and on-page problems.
npx skills add OpenClaudia/openclaudia-skills --skill seo-audit -a claude-codeWhat seo-audit does
The skill checks robots.txt, sitemaps, canonical tags, redirects, and whether key pages can be crawled. It uses PageSpeed Insights to assess mobile and desktop performance. Its checks also cover HTTPS, Core Web Vitals, metadata, headings, images, and internal links.
The audit groups findings into crawlability, technical foundations, on-page optimization, content quality, and links. It scores each category based on issue severity, then combines the results using category weights. When given a project codebase, it can inspect Next.js configuration and the generation of metadata, sitemaps, and robots.txt.
PageSpeed Insights access is needed for its speed checks, so a service outage limits that part of the assessment. The skill reports issues and suggested fixes; it does not automatically repair the site.
What it helps with
- find pages blocked from indexing
- check sitemap entries and redirect chains
- assess Core Web Vitals and page speed
- spot missing or conflicting page metadata
- review content quality and internal links
Example prompts for the agent
- Audit this site’s SEO and rank the issues by severity.
- Check the technical SEO and page speed of the homepage.
- Review the SEO setup in this Next.js project and prepare a report.
How to install seo-audit
1Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill seo-audit -a claude-code2Manually: put the files in place
~/.claude/skills/seo-audit/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/seo-audit/
1Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill seo-audit -a codex2Manually: put the files in place
.agents/skills/seo-audit/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill seo-audit -a cursor2Manually: put the files in place
.cursor/skills/seo-audit/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install OpenClaudia/openclaudia-skills seo-audit2Manually: put the files in place
.github/skills/seo-audit/SKILL.md1Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill seo-audit -a gemini-cli2Platform CLI
gemini skills install https://github.com/OpenClaudia/openclaudia-skills --path skills/seo-auditManually: put the files in place
.devin/skills/seo-audit/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill seo-audit -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about seo-audit
How do I install seo-audit in Claude Code?
Run npx skills add OpenClaudia/openclaudia-skills --skill seo-audit -a claude-code. The skill file is located at ~/.claude/skills/seo-audit/SKILL.md.
What does seo-audit do?
It reviews technical SEO, page content, and links, then scores the audit categories and lists issues with suggested fixes.
Which Next.js files can seo-audit inspect?
It can inspect next.config.js, app/layout.tsx, and middleware.ts, along with metadata generation, <head> contents, sitemap logic, and robots.txt.
Source text
SKILL.md · MIT
---
name: seo-audit
description: Run a full technical and on-page SEO audit on any website or page. Use when the user says "audit my site", "SEO check", "technical SEO review", "site health", "check my SEO", "what's wrong with my site", or provides a URL and asks for SEO feedback.
---
# SEO Audit Skill
You are an expert SEO auditor. When given a URL or domain, perform a comprehensive technical and on-page SEO audit. Produce a structured report with scores, issues, and prioritized fix recommendations.
## Audit Process
### Step 1: Gather Data
Use the available tools to collect information about the target site:
1. **Fetch the page** using WebFetch to get the HTML content
2. **Check robots.txt** at `{domain}/robots.txt`
3. **Check sitemap** at `{domain}/sitemap.xml` (also check robots.txt for sitemap location)
4. **Fetch key pages** - homepage, a few inner pages, blog post if available
5. **Check PageSpeed** via `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url={URL}&strategy=mobile` and `&strategy=desktop`
If the user provides a project codebase, also inspect:
- Next.js `next.config.js`, `app/layout.tsx`, `middleware.ts`
- Meta tag generation in page components
- `<head>` contents, Open Graph tags
- Sitemap generation logic
- Robots.txt file
### Step 2: Audit Categories
Evaluate each category below. Score each 0-100 and list specific issues found.
---
#### Category 1: Crawlability & Indexation (Weight: 20%)
Check these items:
| Check | What to look for | Severity |
|-------|-----------------|----------|
| robots.txt | Exists, not blocking important pages, allows search engines | Critical |
| XML Sitemap | Exists, valid XML, includes all important URLs, no 404s listed | Critical |
| Canonical tags | Present on all pages, self-referencing, no conflicting canonicals | High |
| Hreflang tags | Present if multi-language, valid language codes, reciprocal tags | Medium |
| Noindex tags | Not accidentally applied to important pages | Critical |
| URL structure | Clean slugs, no excessive parameters, logical hierarchy | Medium |
| Redirect chains | No chains longer than 2 hops, no redirect loops | High |
| 404 pages | Custom 404, no soft 404s, broken internal links | Medium |
| Pagination | rel=prev/next or proper infinite scroll handling | Low |
| Crawl depth | Important pages within 3 clicks of homepage | Medium |
**Scoring formula:**
- Start at 100
- Critical issue: -25 each
- High issue: -15 each
- Medium issue: -8 each
- Low issue: -3 each
- Minimum score: 0
---
#### Category 2: Technical Foundations (Weight: 25%)
| Check | What to look for | Severity |
|-------|-----------------|----------|
| HTTPS | Site uses HTTPS, no mixed content, proper redirects from HTTP | Critical |
| Mobile-friendliness | Responsive design, viewport meta tag, no horizontal scroll, tap targets 48px+ | Critical |
| Core Web Vitals - LCP | Largest Contentful Paint < 2.5s (good), < 4s (needs improvement) | High |
| Core Web Vitals - FID/INP | First Input Delay < 100ms / Interaction to Next Paint < 200ms | High |
| Core Web Vitals - CLS | Cumulative Layout Shift < 0.1 (good), < 0.25 (needs improvement) | High |
| Page speed - mobile | Performance score > 90 (good), > 50 (needs improvement) | High |
| Page speed - desktop | Performance score > 90 (good), > 50 (needs improvement) | Medium |
| Render blocking resources | Critical CSS inlined, JS deferred/async | Medium |
| Image optimization | WebP/AVIF format, proper sizing, lazy loading below fold | Medium |
| Server response time | TTFB < 200ms (good), < 500ms (acceptable) | High |
| Compression | Gzip or Brotli enabled | Medium |
| HTTP/2 or HTTP/3 | Modern protocol in use | Low |
| JavaScript rendering | Content visible without JS (for search engines) | High |
**Scoring:** Same formula as Category 1.
---
#### Category 3: On-Page Optimization (Weight: 25%)
For each page analyzed, check:
| Check | What to look for | Severity |
|-------|-----------------|----------|
| Title tag | Exists, 50-60 characters, includes primary keyword, unique per page | Critical |
| Meta description | Exists, 150-160 characters, includes keyword, compelling CTA | High |
| H1 tag | Exactly one per page, includes primary keyword | Critical |
| Heading hierarchy | Logical H1 > H2 > H3 nesting, no skipped levels | Medium |
| Keyword in first 100 words | Primary keyword appears naturally in opening paragraph | Medium |
| Content length | Adequate for topic (check against SERP competitors) | Medium |
| Internal links | 3-10 relevant internal links per page, descriptive anchor text | High |
| External links | Links to authoritative sources where appropriate | Low |
| Image alt text | All images have descriptive alt text with keywords where natural | Medium |
| URL slug | Includes primary keyword, short, hyphenated, lowercase | Medium |
| Open Graph tags | og:title, og:description, og:image present and correct | Medium |
| Twitter Card tags | twitter:card, twitter:title, twitter:description present | Low |
**Scoring:** Same formula as Category 1.
---
#### Category 4: Content Quality (Weight: 15%)
Evaluate these qualitative factors:
| Factor | What to assess | Score range |
|--------|---------------|-------------|
| E-E-A-T signals | Author bios, credentials, about page, contact info, bylines | 0-20 |
| Content freshness | Last updated dates, regular publishing cadence | 0-15 |
| Content depth | Comprehensive coverage vs. thin content, word count vs. competitors | 0-20 |
| Originality | Unique insights, not just rehashed competitor content | 0-15 |
| Readability | Short paragraphs, subheadings, lists, Flesch reading ease 60-70 | 0-15 |
| Media richness | Images, videos, infographics, interactive elements | 0-15 |
**Score:** Sum of all factors (max 100).
---
#### Category 5: Authority & Links (Weight: 15%)
| Check | What to look for | Score range |
|-------|-----------------|-------------|
| Internal linking structure | Logical silo structure, hub pages, orphan pages | 0-25 |
| Anchor text diversity | Natural anchor text distribution, not over-optimized | 0-25 |
| Backlink profile indicators | Links from authoritative domains, relevance, diversity | 0-25 |
| Social signals | Social sharing buttons, engagement indicators | 0-10 |
| Brand mentions | Brand appears consistently, NAP consistent (local) | 0-15 |
**Score:** Sum of all factors (max 100).
---
### Step 3: Calculate Overall Score
```
Overall = (Crawlability * 0.20) + (Technical * 0.25) + (On-Page * 0.25) + (Content * 0.15) + (Authority * 0.15)
```
**Rating scale:**
- 90-100: Excellent - minor optimizations only
- 75-89: Good - some important fixes needed
- 50-74: Needs Improvement - significant issues to address
- 25-49: Poor - major overhaul required
- 0-24: Critical - fundamental issues present
### Step 4: Output Report
Format the report exactly as follows:
```markdown
# SEO Audit Report: {domain}
**Date:** {date}
**Pages Analyzed:** {count}
**Overall Score:** {score}/100 ({rating})
## Score Summary
| Category | Score | Weight | Weighted |
|----------|-------|--------|----------|
| Crawlability & Indexation | {}/100 | 20% | {} |
| Technical Foundations | {}/100 | 25% | {} |
| On-Page Optimization | {}/100 | 25% | {} |
| Content Quality | {}/100 | 15% | {} |
| Authority & Links | {}/100 | 15% | {} |
| **Overall** | | | **{}/100** |
## Critical Issues (Fix Immediately)
1. **{Issue title}** - {Description}
- **Impact:** {What this costs in traffic/rankings}
- **Fix:** {Exact steps to fix}
- **Effort:** {Low/Medium/High}
## High Priority Issues
{Same format as critical}
## Medium Priority Issues
{Same format}
## Low Priority Issues
{Same format}
## Quick Wins (High Impact, Low Effort)
{Numbered list of easy fixes with the biggest impact}
## Detailed Findings
### Crawlability & Indexation
{Detailed findings with evidence}
### Technical Foundations
{Detailed findings with PageSpeed data}
### On-Page Optimization
{Detailed findings per page}
### Content Quality
{Detailed assessment}
### Authority & Links
{Detailed findings}
## Recommended Action Plan
### Week 1: Critical Fixes
{List}
### Week 2-3: High Priority
{List}
### Month 2: Medium Priority
{List}
### Ongoing: Monitoring
{List}
```
## Important Notes
- Always be specific. Instead of "improve page speed", say "compress hero image from 2.4MB to ~200KB using WebP format".
- Include actual data points: real title tag lengths, actual PageSpeed scores, specific URLs with issues.
- If you cannot access a resource (blocked by robots.txt, auth required), note it explicitly.
- Compare findings against the site's top 3 competitors when possible.
- For Next.js sites, provide code-level fix suggestions (e.g., specific component changes, next.config.js updates).
- Never fabricate metrics. If you cannot measure something, say "Unable to measure - manual check recommended."
© OpenClaudia · MIT · OpenClaudia/openclaudia-skills
Similar skills
All skills for SEO and GEO →seo-audit by other authors comes first.