SEO content audit

Comprehensive SEO footprint analysis.

How to use it

  1. Hit Copy SKILL.md — or use the Claude Code line below to get every file.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/seo/composites/seo-content-audit#main ~/.claude/skills/seo-content-audit

For one project only, change the path to .claude/skills/seo-content-audit. This skill also uses content-inventory.md, seo-profile.md, brand-voice.md — copying SKILL.md alone won't be enough. See the folder on GitHub.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text347 lines
seo-content-audit/SKILL.md347 lines10.8 KBpushed 96d agoRawView on GitHub

SEO Content Audit

The complete SEO footprint analysis — content inventory, real SEO metrics, competitor comparison, gap matrices, and prioritized recommendations in one report.

Quick Start

Run an SEO content audit for [company]. Website: [url]. Competitors: [list].

Inputs

Input Required Description
Company name Yes User provides
Company domain Yes e.g., "example.com"
Seed competitors Recommended 2-5 competitor domains; system discovers more
Target keywords Optional User provides; system also auto-discovers

Cost

Component Est. Cost
Content catalog (target) ~$0-0.50 (free unless Apify fallback needed)
Semrush data (target) ~$0.10
Ahrefs data (target) ~$0.10
Google rank checks (~30 keywords) ~$0.06
Competitor Semrush data (3-5 competitors) ~$0.30-0.50
Content catalog (competitors, lighter) ~$0-1.00
Brand voice extraction Free (WebFetch)
Total typical audit ~$1-3

Step-by-Step Process

Phase 1: Context & Setup

Gather basics from the user: company name, domain, seed competitors, target keywords.

Phase 2: Content Inventory

Crawl the target domain to build a complete content inventory:

  1. Fetch sitemap.xml (or RSS, blog index as fallback)
  2. Catalog every page: URL, title, date, content type, topic cluster
  3. Group content by type (blog posts, landing pages, case studies, comparisons, etc.)
  4. Analyze publishing cadence (posts/month, trend, recency)
  5. Optionally deep-analyze top 20 pages for word count, funnel stage, CTA presence

Phase 3: SEO Performance Data

Pull SEO metrics for the target domain:

  1. Domain overview — authority score, organic traffic estimate, keyword count, traffic trend (via Apify Semrush scraper if APIFY_API_TOKEN is set, or web search probes as fallback)
  2. Backlink profile — domain rating, referring domains, top linking sites (via Apify Ahrefs scraper)
  3. Keyword rankings — check actual Google rankings for target keywords (via web search or Apify Google Search scraper)
  4. Competitor discovery — identify competing domains from keyword overlap
  5. Competitor metrics — run a lighter version of steps 1-2 for each competitor

Phase 4: Competitor Content Analysis

For each competitor (3-5 max), crawl their site to get:

  • Content type breakdown (blog posts, case studies, comparisons, etc.)
  • Topic clusters (what topics they cover)
  • Publishing cadence (how often they publish)

No deep analysis needed for competitors — just structure and volume.

Phase 5: Build Gap Matrices

Using data from Phases 2-4, build two matrices:

A) Topic/Keyword Gap Matrix

Cross-reference the target's keyword rankings and content topics against competitors:

| Topic / Keyword | [Target] | [Comp 1] | [Comp 2] | [Comp 3] | Gap? |
|-----------------|----------|----------|----------|----------|------|
| cloud cost optimization | #4, 3 posts | #1, 12 posts | #2, 8 posts | #7, 5 posts | Partial |
| aws savings plans | No content | #3, 4 posts | No content | #1, 6 posts | YES |
| finops best practices | 1 post, not ranking | #5, 3 posts | #2, 7 posts | — | YES |

For each topic/keyword:

  • Does the target have content? How much?
  • Does the target rank for it? What position?
  • Which competitors rank? How much content do they have?
  • Is this a gap? (target has no/weak content, competitors are strong)

How to build this:

  1. Collect all unique topic clusters from target + all competitors
  2. For each topic, count content pieces per company
  3. Cross-reference with keyword ranking data (from Phase 3)
  4. Flag gaps where competitors have coverage and target doesn't

B) Content Type Gap Matrix

Compare what types of content each company produces:

| Content Type | [Target] | [Comp 1] | [Comp 2] | [Comp 3] | Gap? |
|-------------|----------|----------|----------|----------|------|
| Blog posts | 89 | 156 | 112 | 45 | Volume gap |
| Comparison pages | 0 | 12 | 8 | 3 | YES |
| Case studies | 5 | 22 | 15 | 8 | Weak |
| Glossary / educational | 0 | 45 | 0 | 30 | YES |
| Integration pages | 12 | 34 | 28 | 15 | Partial |
| ROI calculator / tools | 0 | 1 | 2 | 0 | Opportunity |
| Webinars / video | 3 | 18 | 12 | 6 | Weak |

How to build this:

  1. Use the content type classifications from all content catalogs
  2. Count per type per company
  3. Flag types where target is at zero or significantly behind competitors

Phase 6: Brand Voice Extraction (Optional)

If the audit will feed into content creation:

  1. From the content inventory (Phase 2), select 10-15 of the best blog posts (most recent, longest, most diverse topics)
  2. Fetch each page and analyze the writing style
  3. Produce brand voice guidelines: tone, vocabulary patterns, sentence structure, do's and don'ts

Phase 7: Synthesis & Report

Combine all findings into the final report. Save to the current working directory or wherever the user prefers.


Output Template

# SEO Content Audit: [Company Name]

**Date:** YYYY-MM-DD
**Domain:** [domain]
**Competitors analyzed:** [list]
**Data sources:** [Semrush (via Apify), Ahrefs (via Apify), Google SERP, sitemap crawl, RSS]

---

## Executive Summary

[3-5 sentences. Overall SEO health assessment. Biggest strength. Biggest gap.
Most important recommendation. How they compare to competitors overall.]

---

## 1. Content Inventory

### Overview
- **Total pages cataloged:** X
- **Blog posts:** X
- **Landing pages:** X
- **Case studies:** X
- **Comparison pages:** X
- **Other:** X

### Content by Topic Cluster
| Topic | Posts | % of Content | Most Recent |
|-------|-------|-------------|-------------|
| [Topic 1] | X | X% | YYYY-MM-DD |
| ... |

### Publishing Cadence
- **Average:** X posts/month
- **Trend:** [increasing/decreasing/stable]
- **Most recent publish:** YYYY-MM-DD
- **Unique authors:** X

### Content Depth Assessment
[From deep analysis of top 20 pages: average word count, funnel stage distribution,
how many have CTAs, internal linking patterns]

---

## 2. SEO Performance

### Domain Metrics
| Metric | [Target] | Industry Benchmark* |
|--------|----------|-------------------|
| Authority Score (Semrush) | X/100 | |
| Domain Rating (Ahrefs) | X/100 | |
| Monthly Organic Traffic | ~X | |
| Organic Keywords | X | |
| Backlinks | X | |
| Referring Domains | X | |

### Top Performing Pages
| # | URL | Est. Traffic | Top Keyword | Position |
|---|-----|-------------|-------------|----------|
| 1 | ... | ... | ... | ... |

### Keyword Rankings
| Keyword | Position | URL | Gap? |
|---------|----------|-----|------|
| [keyword 1] | #X | [url] | |
| [keyword 2] | Not ranking | — | YES |

### Backlink Profile
- Domain Rating: X/100
- Referring Domains: X
- Top linking sites: [list]
- Notable: [any insights about link profile quality]

---

## 3. Competitor Comparison

### Domain Metrics Comparison
| Metric | [Target] | [Comp 1] | [Comp 2] | [Comp 3] |
|--------|----------|----------|----------|----------|
| Authority Score | | | | |
| Organic Traffic | | | | |
| Keywords | | | | |
| Blog Posts | | | | |
| Content Types | | | | |

### Topic/Keyword Gap Matrix
| Topic / Keyword | [Target] | [Comp 1] | [Comp 2] | [Comp 3] | Gap? |
|-----------------|----------|----------|----------|----------|------|
| [topic 1] | X posts, #Y | ... | ... | ... | |
| ... |

### Content Type Gap Matrix
| Content Type | [Target] | [Comp 1] | [Comp 2] | [Comp 3] | Gap? |
|-------------|----------|----------|----------|----------|------|
| Blog posts | X | X | X | X | |
| Comparison pages | X | X | X | X | |
| Case studies | X | X | X | X | |
| ... |

---

## 4. Gaps & Opportunities

### Critical Gaps (High Impact, Act Now)
1. **[Gap]:** [Description. What competitors have that target doesn't.
   Estimated search volume / traffic opportunity. Difficulty to address.]
2. ...

### Content Type Opportunities
1. **[Missing content type]:** [Why it matters. What competitors are doing.
   Estimated effort to create.]
2. ...

### Quick Wins (Low Effort, Immediate Impact)
1. **[Quick win]:** [What to do. Expected impact.]
2. ...

### Keyword Opportunities
| Keyword | Est. Search Volume | Competitor Positions | Difficulty | Priority |
|---------|-------------------|---------------------|------------|----------|
| ... |

---

## 5. Brand Voice Profile

### Voice Summary
[2-3 sentence summary of their writing voice]

### Tone
| Dimension | Position |
|-----------|----------|
| Formality | [e.g., Professional-casual] |
| Authority | [e.g., Expert/teacher] |
| Humor | [e.g., None] |
| Directness | [e.g., Very direct] |

### Writing Guidelines
**Do:**
- [Guideline 1]
- [Guideline 2]

**Don't:**
- [Anti-pattern 1]
- [Anti-pattern 2]

[Link to full brand voice profile if generated]

---

## 6. Recommendations (Prioritized)

### Tier 1: High Impact, Do First
1. **[Recommendation]**
   - What: [specific action]
   - Why: [evidence from audit]
   - Expected impact: [traffic/ranking improvement]
   - Effort: [Low/Medium/High]

2. ...

### Tier 2: Medium Impact, Plan For
1. ...

### Tier 3: Long-term Strategic
1. ...

---

## Appendix

### A. Full Content Catalog
[Link to content-inventory.md]

### B. Complete SEO Profile
[Link to seo-profile.md]

### C. Brand Voice Guidelines
[Link to brand-voice.md]

### D. Raw Data
- Content inventory JSON
- SEO profile JSON
- Competitor content JSONs

Tips

  • Run Phases 2-3 in parallel. Content cataloging and SEO metrics are independent — run them simultaneously to save time.
  • Start with 3 competitors, not 5. More competitors = more Apify costs. Start small, add more if the initial analysis shows gaps.
  • The gap matrices are the most valuable output. Focus your analysis effort there. They directly feed into content strategy recommendations.
  • Brand voice is optional but valuable. If you're pressed for time, skip it. But if this feeds into content creation or outreach, it's worth the 10 minutes.
  • Update quarterly. SEO landscapes shift. Re-run the audit every quarter to track progress and discover new gaps.
  • Combine with AEO visibility for a complete organic search picture — traditional SEO + AI answer engine coverage.
  • The free fallback works. If Apify is unavailable, the scripts fall back to web search probes. You get less precise data but still a useful audit.

Dependencies

  • APIFY_API_TOKEN env var (for Semrush/Ahrefs data via Apify; free web search probes work without it)
  • Web search and web fetch capabilities
1---
2name: seo-content-audit
3description: >
4 Comprehensive SEO footprint analysis. Catalogs all content, pulls real SEO metrics
5 (via Apify Semrush/Ahrefs scrapers or free web search probes), runs competitor analysis,
6 builds topic/keyword and content-type gap matrices, and produces a prioritized
7 recommendations report. The complete SEO audit for any company.
8tags: [seo]
9---
10 
11# SEO Content Audit
12 
13The complete SEO footprint analysis — content inventory, real SEO metrics, competitor comparison, gap matrices, and prioritized recommendations in one report.
14 
15## Quick Start
16 
17```
18Run an SEO content audit for [company]. Website: [url]. Competitors: [list].
19```
20 
21## Inputs
22 
23| Input | Required | Description |
24|-------|----------|-------------|
25| **Company name** | Yes | User provides |
26| **Company domain** | Yes | e.g., "example.com" |
27| **Seed competitors** | Recommended | 2-5 competitor domains; system discovers more |
28| **Target keywords** | Optional | User provides; system also auto-discovers |
29 
30## Cost
31 
32| Component | Est. Cost |
33|-----------|-----------|
34| Content catalog (target) | ~$0-0.50 (free unless Apify fallback needed) |
35| Semrush data (target) | ~$0.10 |
36| Ahrefs data (target) | ~$0.10 |
37| Google rank checks (~30 keywords) | ~$0.06 |
38| Competitor Semrush data (3-5 competitors) | ~$0.30-0.50 |
39| Content catalog (competitors, lighter) | ~$0-1.00 |
40| Brand voice extraction | Free (WebFetch) |
41| **Total typical audit** | **~$1-3** |
42 
43## Step-by-Step Process
44 
45### Phase 1: Context & Setup
46 
47Gather basics from the user: company name, domain, seed competitors, target keywords.
48 
49### Phase 2: Content Inventory
50 
51Crawl the target domain to build a complete content inventory:
52 
531. Fetch sitemap.xml (or RSS, blog index as fallback)
542. Catalog every page: URL, title, date, content type, topic cluster
553. Group content by type (blog posts, landing pages, case studies, comparisons, etc.)
564. Analyze publishing cadence (posts/month, trend, recency)
575. Optionally deep-analyze top 20 pages for word count, funnel stage, CTA presence
58 
59### Phase 3: SEO Performance Data
60 
61Pull SEO metrics for the target domain:
62 
631. **Domain overview** — authority score, organic traffic estimate, keyword count, traffic trend (via Apify Semrush scraper if `APIFY_API_TOKEN` is set, or web search probes as fallback)
642. **Backlink profile** — domain rating, referring domains, top linking sites (via Apify Ahrefs scraper)
653. **Keyword rankings** — check actual Google rankings for target keywords (via web search or Apify Google Search scraper)
664. **Competitor discovery** — identify competing domains from keyword overlap
675. **Competitor metrics** — run a lighter version of steps 1-2 for each competitor
68 
69### Phase 4: Competitor Content Analysis
70 
71For each competitor (3-5 max), crawl their site to get:
72- Content type breakdown (blog posts, case studies, comparisons, etc.)
73- Topic clusters (what topics they cover)
74- Publishing cadence (how often they publish)
75 
76No deep analysis needed for competitors — just structure and volume.
77 
78### Phase 5: Build Gap Matrices
79 
80Using data from Phases 2-4, build two matrices:
81 
82#### A) Topic/Keyword Gap Matrix
83 
84Cross-reference the target's keyword rankings and content topics against competitors:
85 
86```markdown
87| Topic / Keyword | [Target] | [Comp 1] | [Comp 2] | [Comp 3] | Gap? |
88|-----------------|----------|----------|----------|----------|------|
89| cloud cost optimization | #4, 3 posts | #1, 12 posts | #2, 8 posts | #7, 5 posts | Partial |
90| aws savings plans | No content | #3, 4 posts | No content | #1, 6 posts | YES |
91| finops best practices | 1 post, not ranking | #5, 3 posts | #2, 7 posts | — | YES |
92```
93 
94For each topic/keyword:
95- Does the target have content? How much?
96- Does the target rank for it? What position?
97- Which competitors rank? How much content do they have?
98- Is this a gap? (target has no/weak content, competitors are strong)
99 
100**How to build this:**
1011. Collect all unique topic clusters from target + all competitors
1022. For each topic, count content pieces per company
1033. Cross-reference with keyword ranking data (from Phase 3)
1044. Flag gaps where competitors have coverage and target doesn't
105 
106#### B) Content Type Gap Matrix
107 
108Compare what types of content each company produces:
109 
110```markdown
111| Content Type | [Target] | [Comp 1] | [Comp 2] | [Comp 3] | Gap? |
112|-------------|----------|----------|----------|----------|------|
113| Blog posts | 89 | 156 | 112 | 45 | Volume gap |
114| Comparison pages | 0 | 12 | 8 | 3 | YES |
115| Case studies | 5 | 22 | 15 | 8 | Weak |
116| Glossary / educational | 0 | 45 | 0 | 30 | YES |
117| Integration pages | 12 | 34 | 28 | 15 | Partial |
118| ROI calculator / tools | 0 | 1 | 2 | 0 | Opportunity |
119| Webinars / video | 3 | 18 | 12 | 6 | Weak |
120```
121 
122**How to build this:**
1231. Use the content type classifications from all content catalogs
1242. Count per type per company
1253. Flag types where target is at zero or significantly behind competitors
126 
127### Phase 6: Brand Voice Extraction (Optional)
128 
129If the audit will feed into content creation:
130 
1311. From the content inventory (Phase 2), select 10-15 of the best blog posts (most recent, longest, most diverse topics)
1322. Fetch each page and analyze the writing style
1333. Produce brand voice guidelines: tone, vocabulary patterns, sentence structure, do's and don'ts
134 
135### Phase 7: Synthesis & Report
136 
137Combine all findings into the final report. Save to the current working directory or wherever the user prefers.
138 
139---
140 
141## Output Template
142 
143```markdown
144# SEO Content Audit: [Company Name]
145 
146**Date:** YYYY-MM-DD
147**Domain:** [domain]
148**Competitors analyzed:** [list]
149**Data sources:** [Semrush (via Apify), Ahrefs (via Apify), Google SERP, sitemap crawl, RSS]
150 
151---
152 
153## Executive Summary
154 
155[3-5 sentences. Overall SEO health assessment. Biggest strength. Biggest gap.
156Most important recommendation. How they compare to competitors overall.]
157 
158---
159 
160## 1. Content Inventory
161 
162### Overview
163- **Total pages cataloged:** X
164- **Blog posts:** X
165- **Landing pages:** X
166- **Case studies:** X
167- **Comparison pages:** X
168- **Other:** X
169 
170### Content by Topic Cluster
171| Topic | Posts | % of Content | Most Recent |
172|-------|-------|-------------|-------------|
173| [Topic 1] | X | X% | YYYY-MM-DD |
174| ... |
175 
176### Publishing Cadence
177- **Average:** X posts/month
178- **Trend:** [increasing/decreasing/stable]
179- **Most recent publish:** YYYY-MM-DD
180- **Unique authors:** X
181 
182### Content Depth Assessment
183[From deep analysis of top 20 pages: average word count, funnel stage distribution,
184how many have CTAs, internal linking patterns]
185 
186---
187 
188## 2. SEO Performance
189 
190### Domain Metrics
191| Metric | [Target] | Industry Benchmark* |
192|--------|----------|-------------------|
193| Authority Score (Semrush) | X/100 | |
194| Domain Rating (Ahrefs) | X/100 | |
195| Monthly Organic Traffic | ~X | |
196| Organic Keywords | X | |
197| Backlinks | X | |
198| Referring Domains | X | |
199 
200### Top Performing Pages
201| # | URL | Est. Traffic | Top Keyword | Position |
202|---|-----|-------------|-------------|----------|
203| 1 | ... | ... | ... | ... |
204 
205### Keyword Rankings
206| Keyword | Position | URL | Gap? |
207|---------|----------|-----|------|
208| [keyword 1] | #X | [url] | |
209| [keyword 2] | Not ranking | — | YES |
210 
211### Backlink Profile
212- Domain Rating: X/100
213- Referring Domains: X
214- Top linking sites: [list]
215- Notable: [any insights about link profile quality]
216 
217---
218 
219## 3. Competitor Comparison
220 
221### Domain Metrics Comparison
222| Metric | [Target] | [Comp 1] | [Comp 2] | [Comp 3] |
223|--------|----------|----------|----------|----------|
224| Authority Score | | | | |
225| Organic Traffic | | | | |
226| Keywords | | | | |
227| Blog Posts | | | | |
228| Content Types | | | | |
229 
230### Topic/Keyword Gap Matrix
231| Topic / Keyword | [Target] | [Comp 1] | [Comp 2] | [Comp 3] | Gap? |
232|-----------------|----------|----------|----------|----------|------|
233| [topic 1] | X posts, #Y | ... | ... | ... | |
234| ... |
235 
236### Content Type Gap Matrix
237| Content Type | [Target] | [Comp 1] | [Comp 2] | [Comp 3] | Gap? |
238|-------------|----------|----------|----------|----------|------|
239| Blog posts | X | X | X | X | |
240| Comparison pages | X | X | X | X | |
241| Case studies | X | X | X | X | |
242| ... |
243 
244---
245 
246## 4. Gaps & Opportunities
247 
248### Critical Gaps (High Impact, Act Now)
2491. **[Gap]:** [Description. What competitors have that target doesn't.
250 Estimated search volume / traffic opportunity. Difficulty to address.]
2512. ...
252 
253### Content Type Opportunities
2541. **[Missing content type]:** [Why it matters. What competitors are doing.
255 Estimated effort to create.]
2562. ...
257 
258### Quick Wins (Low Effort, Immediate Impact)
2591. **[Quick win]:** [What to do. Expected impact.]
2602. ...
261 
262### Keyword Opportunities
263| Keyword | Est. Search Volume | Competitor Positions | Difficulty | Priority |
264|---------|-------------------|---------------------|------------|----------|
265| ... |
266 
267---
268 
269## 5. Brand Voice Profile
270 
271### Voice Summary
272[2-3 sentence summary of their writing voice]
273 
274### Tone
275| Dimension | Position |
276|-----------|----------|
277| Formality | [e.g., Professional-casual] |
278| Authority | [e.g., Expert/teacher] |
279| Humor | [e.g., None] |
280| Directness | [e.g., Very direct] |
281 
282### Writing Guidelines
283**Do:**
284- [Guideline 1]
285- [Guideline 2]
286 
287**Don't:**
288- [Anti-pattern 1]
289- [Anti-pattern 2]
290 
291[Link to full brand voice profile if generated]
292 
293---
294 
295## 6. Recommendations (Prioritized)
296 
297### Tier 1: High Impact, Do First
2981. **[Recommendation]**
299 - What: [specific action]
300 - Why: [evidence from audit]
301 - Expected impact: [traffic/ranking improvement]
302 - Effort: [Low/Medium/High]
303 
3042. ...
305 
306### Tier 2: Medium Impact, Plan For
3071. ...
308 
309### Tier 3: Long-term Strategic
3101. ...
311 
312---
313 
314## Appendix
315 
316### A. Full Content Catalog
317[Link to content-inventory.md]
318 
319### B. Complete SEO Profile
320[Link to seo-profile.md]
321 
322### C. Brand Voice Guidelines
323[Link to brand-voice.md]
324 
325### D. Raw Data
326- Content inventory JSON
327- SEO profile JSON
328- Competitor content JSONs
329```
330 
331---
332 
333## Tips
334 
335- **Run Phases 2-3 in parallel.** Content cataloging and SEO metrics are independent — run them simultaneously to save time.
336- **Start with 3 competitors, not 5.** More competitors = more Apify costs. Start small, add more if the initial analysis shows gaps.
337- **The gap matrices are the most valuable output.** Focus your analysis effort there. They directly feed into content strategy recommendations.
338- **Brand voice is optional but valuable.** If you're pressed for time, skip it. But if this feeds into content creation or outreach, it's worth the 10 minutes.
339- **Update quarterly.** SEO landscapes shift. Re-run the audit every quarter to track progress and discover new gaps.
340- **Combine with AEO visibility** for a complete organic search picture — traditional SEO + AI answer engine coverage.
341- **The free fallback works.** If Apify is unavailable, the scripts fall back to web search probes. You get less precise data but still a useful audit.
342 
343## Dependencies
344 
345- `APIFY_API_TOKEN` env var (for Semrush/Ahrefs data via Apify; free web search probes work without it)
346- Web search and web fetch capabilities
347 

Discussion

Alternatives

Also in SEO & keywords