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:
- Fetch the page using WebFetch to get the HTML content
- Check robots.txt at
{domain}/robots.txt
- Check sitemap at
{domain}/sitemap.xml (also check robots.txt for sitemap location)
- Fetch key pages - homepage, a few inner pages, blog post if available
- 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:
# 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."
1---2name: seo-audit3description: 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.4---5
6# SEO Audit Skill
7
8You 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.
9
10## Audit Process
11
12### Step 1: Gather Data
13
14Use the available tools to collect information about the target site:
15
161. **Fetch the page** using WebFetch to get the HTML content
172. **Check robots.txt** at `{domain}/robots.txt`
183. **Check sitemap** at `{domain}/sitemap.xml` (also check robots.txt for sitemap location)
194. **Fetch key pages** - homepage, a few inner pages, blog post if available
205. **Check PageSpeed** via `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url={URL}&strategy=mobile` and `&strategy=desktop`
21
22If the user provides a project codebase, also inspect:
23- Next.js `next.config.js`, `app/layout.tsx`, `middleware.ts`
24- Meta tag generation in page components
25- `<head>` contents, Open Graph tags
26- Sitemap generation logic
27- Robots.txt file
28
29### Step 2: Audit Categories
30
31Evaluate each category below. Score each 0-100 and list specific issues found.
32
33---
34
35#### Category 1: Crawlability & Indexation (Weight: 20%)
36
37Check these items:
38
39| Check | What to look for | Severity |
40|-------|-----------------|----------|
41| robots.txt | Exists, not blocking important pages, allows search engines | Critical |
42| XML Sitemap | Exists, valid XML, includes all important URLs, no 404s listed | Critical |
43| Canonical tags | Present on all pages, self-referencing, no conflicting canonicals | High |
44| Hreflang tags | Present if multi-language, valid language codes, reciprocal tags | Medium |
45| Noindex tags | Not accidentally applied to important pages | Critical |
46| URL structure | Clean slugs, no excessive parameters, logical hierarchy | Medium |
47| Redirect chains | No chains longer than 2 hops, no redirect loops | High |
48| 404 pages | Custom 404, no soft 404s, broken internal links | Medium |
49| Pagination | rel=prev/next or proper infinite scroll handling | Low |
50| Crawl depth | Important pages within 3 clicks of homepage | Medium |
51
52**Scoring formula:**
53- Start at 100
54- Critical issue: -25 each
55- High issue: -15 each
56- Medium issue: -8 each
57- Low issue: -3 each
58- Minimum score: 0
59
60---
61
62#### Category 2: Technical Foundations (Weight: 25%)
63
64| Check | What to look for | Severity |
65|-------|-----------------|----------|
66| HTTPS | Site uses HTTPS, no mixed content, proper redirects from HTTP | Critical |
67| Mobile-friendliness | Responsive design, viewport meta tag, no horizontal scroll, tap targets 48px+ | Critical |
68| Core Web Vitals - LCP | Largest Contentful Paint < 2.5s (good), < 4s (needs improvement) | High |
69| Core Web Vitals - FID/INP | First Input Delay < 100ms / Interaction to Next Paint < 200ms | High |
70| Core Web Vitals - CLS | Cumulative Layout Shift < 0.1 (good), < 0.25 (needs improvement) | High |
71| Page speed - mobile | Performance score > 90 (good), > 50 (needs improvement) | High |
72| Page speed - desktop | Performance score > 90 (good), > 50 (needs improvement) | Medium |
73| Render blocking resources | Critical CSS inlined, JS deferred/async | Medium |
74| Image optimization | WebP/AVIF format, proper sizing, lazy loading below fold | Medium |
75| Server response time | TTFB < 200ms (good), < 500ms (acceptable) | High |
76| Compression | Gzip or Brotli enabled | Medium |
77| HTTP/2 or HTTP/3 | Modern protocol in use | Low |
78| JavaScript rendering | Content visible without JS (for search engines) | High |
79
80**Scoring:** Same formula as Category 1.
81
82---
83
84#### Category 3: On-Page Optimization (Weight: 25%)
85
86For each page analyzed, check:
87
88| Check | What to look for | Severity |
89|-------|-----------------|----------|
90| Title tag | Exists, 50-60 characters, includes primary keyword, unique per page | Critical |
91| Meta description | Exists, 150-160 characters, includes keyword, compelling CTA | High |
92| H1 tag | Exactly one per page, includes primary keyword | Critical |
93| Heading hierarchy | Logical H1 > H2 > H3 nesting, no skipped levels | Medium |
94| Keyword in first 100 words | Primary keyword appears naturally in opening paragraph | Medium |
95| Content length | Adequate for topic (check against SERP competitors) | Medium |
96| Internal links | 3-10 relevant internal links per page, descriptive anchor text | High |
97| External links | Links to authoritative sources where appropriate | Low |
98| Image alt text | All images have descriptive alt text with keywords where natural | Medium |
99| URL slug | Includes primary keyword, short, hyphenated, lowercase | Medium |
100| Open Graph tags | og:title, og:description, og:image present and correct | Medium |
101| Twitter Card tags | twitter:card, twitter:title, twitter:description present | Low |
102
103**Scoring:** Same formula as Category 1.
104
105---
106
107#### Category 4: Content Quality (Weight: 15%)
108
109Evaluate these qualitative factors:
110
111| Factor | What to assess | Score range |
112|--------|---------------|-------------|
113| E-E-A-T signals | Author bios, credentials, about page, contact info, bylines | 0-20 |
114| Content freshness | Last updated dates, regular publishing cadence | 0-15 |
115| Content depth | Comprehensive coverage vs. thin content, word count vs. competitors | 0-20 |
116| Originality | Unique insights, not just rehashed competitor content | 0-15 |
117| Readability | Short paragraphs, subheadings, lists, Flesch reading ease 60-70 | 0-15 |
118| Media richness | Images, videos, infographics, interactive elements | 0-15 |
119
120**Score:** Sum of all factors (max 100).
121
122---
123
124#### Category 5: Authority & Links (Weight: 15%)
125
126| Check | What to look for | Score range |
127|-------|-----------------|-------------|
128| Internal linking structure | Logical silo structure, hub pages, orphan pages | 0-25 |
129| Anchor text diversity | Natural anchor text distribution, not over-optimized | 0-25 |
130| Backlink profile indicators | Links from authoritative domains, relevance, diversity | 0-25 |
131| Social signals | Social sharing buttons, engagement indicators | 0-10 |
132| Brand mentions | Brand appears consistently, NAP consistent (local) | 0-15 |
133
134**Score:** Sum of all factors (max 100).
135
136---
137
138### Step 3: Calculate Overall Score
139
140```
141Overall = (Crawlability * 0.20) + (Technical * 0.25) + (On-Page * 0.25) + (Content * 0.15) + (Authority * 0.15)
142```
143
144**Rating scale:**
145- 90-100: Excellent - minor optimizations only
146- 75-89: Good - some important fixes needed
147- 50-74: Needs Improvement - significant issues to address
148- 25-49: Poor - major overhaul required
149- 0-24: Critical - fundamental issues present
150
151### Step 4: Output Report
152
153Format the report exactly as follows:
154
155```markdown
156# SEO Audit Report: {domain}
157**Date:** {date}
158**Pages Analyzed:** {count}
159**Overall Score:** {score}/100 ({rating})
160
161## Score Summary
162
163| Category | Score | Weight | Weighted |
164|----------|-------|--------|----------|
165| Crawlability & Indexation | {}/100 | 20% | {} |
166| Technical Foundations | {}/100 | 25% | {} |
167| On-Page Optimization | {}/100 | 25% | {} |
168| Content Quality | {}/100 | 15% | {} |
169| Authority & Links | {}/100 | 15% | {} |
170| **Overall** | | | **{}/100** |
171
172## Critical Issues (Fix Immediately)
173
1741. **{Issue title}** - {Description}
175 - **Impact:** {What this costs in traffic/rankings}
176 - **Fix:** {Exact steps to fix}
177 - **Effort:** {Low/Medium/High}
178
179## High Priority Issues
180
181{Same format as critical}
182
183## Medium Priority Issues
184
185{Same format}
186
187## Low Priority Issues
188
189{Same format}
190
191## Quick Wins (High Impact, Low Effort)
192
193{Numbered list of easy fixes with the biggest impact}
194
195## Detailed Findings
196
197### Crawlability & Indexation
198{Detailed findings with evidence}
199
200### Technical Foundations
201{Detailed findings with PageSpeed data}
202
203### On-Page Optimization
204{Detailed findings per page}
205
206### Content Quality
207{Detailed assessment}
208
209### Authority & Links
210{Detailed findings}
211
212## Recommended Action Plan
213
214### Week 1: Critical Fixes
215{List}
216
217### Week 2-3: High Priority
218{List}
219
220### Month 2: Medium Priority
221{List}
222
223### Ongoing: Monitoring
224{List}
225```
226
227## Important Notes
228
229- Always be specific. Instead of "improve page speed", say "compress hero image from 2.4MB to ~200KB using WebP format".
230- Include actual data points: real title tag lengths, actual PageSpeed scores, specific URLs with issues.
231- If you cannot access a resource (blocked by robots.txt, auth required), note it explicitly.
232- Compare findings against the site's top 3 competitors when possible.
233- For Next.js sites, provide code-level fix suggestions (e.g., specific component changes, next.config.js updates).
234- Never fabricate metrics. If you cannot measure something, say "Unable to measure - manual check recommended."