# Playbook — SEO Audit

_A methodology for running a comprehensive SEO audit on any site, by hand, with nothing but a browser and a search engine._

---

## Usage

1. **Identify the target site** (your domain, a client's, or a site you are about to build)
2. **Run the technical audit** using the checklist below
3. **Run the keyword analysis** using WebSearch
4. **Run the content gap analysis** comparing against competitors
5. **Compile the report** following the output template
6. **Prioritize actions** into quick wins vs. strategic investments

---

## Step 1: Technical Audit

Use `WebFetch` on the target site + key pages. Check each item:

| Check | How to Verify | Tool |
|-------|--------------|------|
| HTTPS | Check if URL redirects to https:// | WebFetch |
| robots.txt | Fetch /robots.txt — check for blocked paths, sitemap reference | WebFetch |
| XML Sitemap | Fetch /sitemap.xml — count URLs, check structure | WebFetch |
| Structured Data | Check page source for JSON-LD (EducationalOrganization, Organization, Product, FAQ) | WebFetch |
| Meta Titles | Present on all key pages, contain keywords, under 60 chars | WebFetch |
| Meta Descriptions | Present, descriptive, contain keywords, under 155 chars | WebFetch |
| H1 Tags | Exactly ONE per page, contains primary keyword | WebFetch |
| H2/H3 Tags | Logical hierarchy, target secondary keywords | WebFetch |
| Mobile Responsive | Check for viewport meta tag, responsive design indicators | WebFetch |
| Clean URLs | Semantic, keyword-containing, no query strings | WebFetch |
| Internal Linking | Navigation structure, footer links, cross-page links | WebFetch |
| Image Alt Text | Descriptive, keyword-aware | WebFetch |
| Canonical Tags | Present, correct (no duplicate content) | WebFetch |
| Page Speed | Check for large resources, render-blocking scripts | WebFetch (limited) |
| Indexation | `site:[domain]` in Google via WebSearch | WebSearch |

### Common Issues to Look For
- Multiple H1 tags on a single page
- Duplicate URLs (old/new) without 301 redirects
- Missing meta descriptions on key pages
- Client-side rendering without SSR (blank page to crawlers)
- Broken internal links
- Images without alt text
- Missing sitemap or robots.txt

## Step 2: Keyword Research

### Process
1. **WebSearch** the target domain to see what it currently ranks for
2. **WebSearch** competitor domains to see what they rank for
3. **Identify gaps** — keywords competitors rank for but the target doesn't
4. **Categorize by intent:**
   - **Navigational:** Branded searches (e.g., "[your brand] admissions")
   - **Informational:** Questions and how-to (e.g., "how to become a sonographer in Ghana")
   - **Commercial:** Comparison and evaluation (e.g., "best health science university Ghana")
   - **Transactional:** Ready to act (e.g., "apply to [programme] online")

### Keyword Table Template

| Keyword | Est. Difficulty | Opportunity | Current Ranking | Intent | Recommended Content |
|---------|----------------|-------------|-----------------|--------|---------------------|
| [keyword] | Easy/Medium/Hard | High/Medium/Low | Ranking/Not ranking | Nav/Info/Commercial | [content type] |

### Difficulty Estimation (Without Ahrefs)
- **Easy:** Niche query, few competitors, long-tail (4+ words)
- **Medium:** Some competition, moderate search volume, mixed results
- **Hard:** Competitive, established players dominating, short-tail (1-2 words)

## Step 3: Content Gap Analysis

### Process
1. List the target site's existing content (from sitemap + WebFetch)
2. List competitor content (WebSearch + WebFetch their blogs/pages)
3. Identify content types the target is missing:
   - Blog posts / articles
   - FAQ pages
   - Comparison / vs pages
   - Career guides / how-to guides
   - Case studies / testimonials
   - Video content
   - Downloadable resources (PDFs, guides)

### Gap Table Template

| Gap | Why It Matters | Format | Priority | Effort |
|-----|---------------|--------|----------|--------|
| [missing content] | [user need it serves] | [blog/page/FAQ] | High/Medium/Low | Quick win / Moderate / Large |

## Step 4: Competitor Comparison

### Process
1. Identify 3-5 competitors
2. For each, check:
   - Number of indexed pages (`site:[domain]` via WebSearch)
   - Blog/content frequency
   - Structured data usage
   - Keyword rankings overlap
   - Social media presence
   - Unique content they have that the target doesn't

### Comparison Table Template

| Dimension | Target | Competitor 1 | Competitor 2 | Competitor 3 |
|-----------|--------|-------------|-------------|-------------|
| Indexed pages | [N] | [N] | [N] | [N] |
| Blog content | [frequency] | [frequency] | [frequency] | [frequency] |
| Structured data | [yes/no] | [yes/no] | [yes/no] | [yes/no] |
| Unique content | [types] | [types] | [types] | [types] |

## Step 5: Compile Report

### Output Template

```markdown
# SEO Audit Report — [Site]
**Date:** [DATE] | **Status:** Actionable

## Executive Summary
[3-5 sentences: biggest strength, top 3 priorities, overall assessment]

## Technical SEO Checklist
[Table from Step 1]

## Keyword Opportunity Table
[Table from Step 2 — top 15-20 keywords]

## Content Gap Analysis
[Table from Step 3]

## Competitor Comparison
[Table from Step 4]

## Prioritized Action Plan

### Quick Wins (This Week)
1. [High impact, low effort]
2. ...

### Strategic Investments (This Quarter)
1. [High impact, higher effort]
2. ...

## Key Metrics to Track
[Table with targets]
```

---

## Audit Cadence

| Audit Type | Frequency | Scope |
|-----------|-----------|-------|
| Full audit | Quarterly | Complete technical + content + competitor |
| Keyword ranking check | Monthly | Your priority keyword list |
| Technical spot-check | After any site update | HTTPS, sitemap, meta tags, structured data |
| Content gap refresh | Quarterly | New competitor content, new keyword opportunities |

---

_Work the templates in order. The output is a prioritized action plan split into quick wins and strategic bets, not a wall of data._
