claude-code-framework/essential/skills/business/seo-audit/SKILL.md
Run technical SEO audits on web applications. Checks meta tags, performance, crawlability, structured data, and Core Web Vitals. Use for client sites or your own projects. Triggers on "SEO audit", "meta tags", "search ranking", "Core Web Vitals", "page speed", "search optimization".
npx skillsauth add tokenized2027/claude-initilization-v7 seo-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Systematic technical SEO audit that checks everything search engines care about.
Check every page for required meta tags:
// Required meta tags for every page
interface SEORequirements {
title: string // 50-60 chars, unique per page
description: string // 150-160 chars, unique per page
canonical: string // Full URL, self-referencing
ogTitle: string // Can match title
ogDescription: string // Can match description
ogImage: string // 1200x630px recommended
ogType: string // 'website' | 'article'
twitterCard: string // 'summary_large_image'
viewport: string // 'width=device-width, initial-scale=1'
robots: string // 'index, follow' (or 'noindex' for private pages)
}
Next.js implementation:
// app/layout.tsx or per-page metadata
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: {
template: '%s | Brand Name',
default: 'Brand Name — Tagline Under 60 Chars',
},
description: 'Compelling description under 160 characters that includes primary keyword.',
openGraph: {
type: 'website',
locale: 'en_US',
siteName: 'Brand Name',
images: [{ url: '/og-image.png', width: 1200, height: 630 }],
},
twitter: { card: 'summary_large_image' },
robots: { index: true, follow: true },
}
# Check robots.txt
curl -s https://[SITE]/robots.txt
# Check sitemap
curl -s https://[SITE]/sitemap.xml | head -20
# Check for broken links (if lighthouse/CLI available)
# Or manually check key pages return 200
for url in "/" "/about" "/pricing" "/blog"; do
status=$(curl -s -o /dev/null -w "%{http_code}" "https://[SITE]${url}")
echo "${url}: ${status}"
done
Checklist:
robots.txt exists and doesn't block important pagessitemap.xml exists and lists all public pages| Metric | Good | Needs Work | Poor | |--------|------|------------|------| | LCP (Largest Contentful Paint) | ≤2.5s | 2.5-4s | >4s | | FID (First Input Delay) | ≤100ms | 100-300ms | >300ms | | CLS (Cumulative Layout Shift) | ≤0.1 | 0.1-0.25 | >0.25 | | INP (Interaction to Next Paint) | ≤200ms | 200-500ms | >500ms |
Quick fixes for common issues:
// Optimize images (Next.js)
import Image from 'next/image'
<Image src="/hero.jpg" alt="Description" width={1200} height={600} priority />
// Lazy load below-fold content
import dynamic from 'next/dynamic'
const HeavyChart = dynamic(() => import('./Chart'), {
loading: () => <Skeleton />,
ssr: false
})
// Preload critical fonts
// In layout.tsx <head>
<link rel="preload" href="/fonts/main.woff2" as="font" type="font/woff2" crossOrigin="anonymous" />
// JSON-LD for organization/website
const structuredData = {
'@context': 'https://schema.org',
'@type': 'Organization',
name: 'Company Name',
url: 'https://example.com',
logo: 'https://example.com/logo.png',
sameAs: [
'https://twitter.com/handle',
'https://linkedin.com/company/name',
],
}
// Add to page <head>
<script type="application/ld+json">
{JSON.stringify(structuredData)}
</script>
## SEO Audit Report — [Site Name]
**Date:** [Date]
**Audited by:** [Agent/Person]
### Score: [X/100]
### Critical Issues (Fix Immediately)
- [ ] [Issue]: [Description + Fix]
### Warnings (Fix This Sprint)
- [ ] [Issue]: [Description + Fix]
### Passed Checks
- [x] HTTPS active
- [x] Sitemap exists
- [x] Robots.txt configured
- [x] [etc.]
### Recommendations
1. [Top priority action]
2. [Second priority]
3. [Third priority]
✅ Use seo-audit when:
❌ Don't use for:
development
Methodical debugging using reproducible steps, instrumentation, and root-cause analysis. Use when something is broken and you don't know why. Triggers on "bug", "broken", "not working", "error", "fails intermittently", "regression", "unexpected behavior".
development
Optimize prompts for Claude Code agents, API calls, and multi-agent orchestration. Use when writing system prompts, agent instructions, or refining LLM interactions. Triggers on "improve prompt", "write a prompt", "agent instructions", "system prompt", "prompt not working", "LLM output quality".
tools
Structured ideation and design review before any creative or constructive work. Use before building features, components, architecture, dashboards, or automation workflows. Triggers on "plan this", "design this", "brainstorm", "think through", "what should we build", "how should I approach".
testing
Generates test files for components and functions with setup, basic tests, and mocks. Use when user says "add tests", "create test", "test this component", or mentions testing.