Files
seo-tool/proposal.md
T

382 lines
17 KiB
Markdown

# ITPP SEO Audit Tool — Product Proposal
**Status:** PROPOSED
**Date:** 2026-08-10
**Product Type:** ITPP Toolset — Hosting Add-on
**Git Repo:** `git.itpropartner.com/ippadmin/seo-tool`
---
## Executive Summary
IT Pro Partner sells web hosting. Every hosting client launches a site with SEO problems they don't know about — missing meta tags, no sitemap, broken canonical, zero structured data. These problems cost them traffic and conversions. They don't find out until they hire an SEO consultant 6 months later, by which point they've lost thousands in potential revenue.
The SEO Audit Tool flips this: every ITPP hosting client gets a launch-day audit, monthly monitoring, and actionable fix-it snippets. It's an automated system — not a manual checklist — that catches issues before the client notices them.
**The competitive moat:** Bluehost, GoDaddy, SiteGround, Cloudways — none of them bundle automated SEO auditing into hosting. This is a retention tool first (clients see value every month) and a revenue add-on second ($49/mo per site).
---
## Market Context
### The Problem
Small business websites have predictable SEO failures:
- **Missing meta descriptions** — 63% of small business sites have no meta descriptions (source: Ahrefs study of 1M domains)
- **No structured data** — under 5% of small business sites use JSON-LD
- **Missing sitemap** — a silent killer; Google can still crawl without one, but slower
- **No OG tags** — social shares look broken, reducing referral traffic
- **Dead internal links** — every site accumulates rot over time, Google penalizes this
- **No analytics/tracking** — the client has no idea if their site works
### The Current Alternatives
| Option | What Happens | Cost |
|--------|--------------|------|
| Hire SEO consultant | Manual audit, one-time, $500-2,000 | High, one-shot |
| Semrush / Ahrefs | Full suite, overkill for SMB | $129-449/mo |
| Screaming Frog | Desktop crawler, technical | $259/yr |
| Free tools (Google Search Console) | Fragmented, no synthesis | $0 but nobody uses them |
| **Nothing** | Site launches with problems, loses traffic | $0 upfront, costs revenue |
**Nobody does "launch-day audit + monthly watch" for small business sites.** It's either expensive one-time consultant, expensive ongoing enterprise tooling, or nothing. The gap is the integrated hosting add-on.
---
## Product Description
### Core Features
1. **Launch Audit** — runs automatically when a site goes live on ITPP hosting. Crawls all pages, checks:
- Meta titles and descriptions (presence, length, uniqueness)
- Heading hierarchy (H1-H6)
- OG tags and Twitter cards
- Canonical URLs
- JSON-LD structured data
- robots.txt and sitemap.xml
- Image alt text
- Internal link health
- Page load performance
- Mobile responsiveness
- SSL certificate status
2. **Fix-It Snippets** — not just "your meta description is missing." The audit produces:
- Exact HTML to paste (per page)
- Priority-ranked fix list
- Before/after previews
- Copy-paste ready code blocks
3. **Monthly Crawl & Trend Report** — every 30 days:
- Issues introduced vs resolved
- Score trend (0-100) per page
- New pages detected
- Broken links found
- Ranking changes (via GSC integration)
4. **White-Label Dashboard** — hosted at `seo.itpropartner.com` (or client-branded):
- Per-site audit scores
- Issue lists with fix status
- Historical trends
- Export to PDF for client reports
5. **Email Reports** — monthly digest per site, configurable:
- Summary score + trend arrow
- Top 3 urgent issues
- Link to full report
### Architecture
```
┌─────────────────────────────────────────────────┐
│ ITPP Hosting │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Site A │ │ Site B │ │ Site C │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ SEO Crawler (Cron Job) │ │
│ │ • Crawls all hosting subdirectories │ │
│ │ • Runs per-site: 5 min crawl │ │
│ │ • Detects new/deleted pages │ │
│ └─────────────────┬────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ Audit Engine (Python) │ │
│ │ • BeautifulSoup + lxml parsing │ │
│ │ • 50+ checks per page │ │
│ │ • De-dupes across pages │ │
│ │ • Generates fix snippets │ │
│ └─────────────────┬────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ AI Enhancement (Optional) │ │
│ │ • DeepSeek V4 Pro via admin-ai │ │
│ │ • Keyword opportunity analysis │ │
│ │ • Content gap detection │ │
│ │ • Competitor comparison │ │
│ └─────────────────┬────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ Dashboard (Flask/FastAPI) │ │
│ │ • seo.itpropartner.com │ │
│ │ • Per-site reports │ │
│ │ • PDF export │ │
│ │ • Email delivery (Mailgun/SES) │ │
│ └──────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
```
### Technical Stack
| Layer | Technology | Rationale |
|-------|-----------|-----------|
| Crawler | Python + requests + BeautifulSoup | Fast, no JS rendering needed for audit |
| Checks engine | Python library (standardized check classes) | Extensible — add new checks without touching core |
| AI layer | admin-ai (DeepSeek V4 Pro) | $0.25/audit, only for paid tier |
| Dashboard | FastAPI + HTMX | Lightweight, server-rendered, no SPA overhead |
| Database | SQLite per-site | Zero config, portable, works at scale for this use case |
| Scheduling | Systemd timers + cron | Built-in, no additional dependency |
| Email | Mailgun API | Reliable, cheap, already in ITPP stack |
| PDF | WeasyPrint | HTML → PDF with CSS, no headless browser needed |
---
## Pricing & Packaging
### Tier Structure
| | Free (All Hosting) | Pro ($49/mo) | Agency ($149/mo) |
|---|---|---|---|
| **Launch Audit** | ✅ | ✅ | ✅ |
| **Fix-It Snippets** | ✅ | ✅ | ✅ |
| **Monthly Crawl** | ✅ | ✅ | ✅ |
| **Email Reports** | ✅ | ✅ | ✅ |
| **Dashboard Access** | ✅ | ✅ | ✅ |
| **AI Enhancement** | ❌ | ✅ | ✅ |
| **GSC Integration** | ❌ | ✅ | ✅ |
| **Sites Included** | 1 | 1 | 5 |
| **White-Label Reports** | ❌ | ❌ | ✅ |
| **PDF Export** | ❌ | ✅ | ✅ |
| **Competitor Tracking** | ❌ | ❌ | ✅ |
### Revenue Model
- Every ITPP hosting client gets Free tier at launch (retention)
- Conversion target: 15-20% of clients upgrade to Pro
- Agency tier: target web design agencies who host client sites with ITPP
- Annual billing: Pro = $499/yr (save 15%), Agency = $1,499/yr
### Unit Economics (per 100 clients)
| Metric | Value |
|--------|-------|
| Free tier cost/site/month | $0.08 (crawler + storage) |
| Pro tier cost/site/month | $0.35 (crawler + AI + GSC) |
| Agency tier cost/site/month | $0.65 (crawler + AI + multi-site) |
| Pro LTV (24 months) | $1,176 |
| Pro CAC (hosting upsell) | ~$15 (email campaign + dashboard prompt) |
| LTV:CAC | 78:1 |
---
## Competitive Analysis
### Direct Competitors (White-Label SEO Audits)
| Tool | Pricing | Target | Gap vs ITPP |
|------|---------|--------|-------------|
| **MetricSpot** | $29-99/mo | Agencies | Not hosting-integrated; separate platform |
| **WooRank** | $79-249/mo | Agencies/enterprise | Expensive; overkill for SMB |
| **marketgoo** | $49-149/mo | Hosting add-on | Closest competitor; but partners with hosts, doesn't own the hosting |
| **SEOptimer** | $19-59/mo | SMB/agencies | Good reports, no hosting integration |
| **SiteGuru** | $29-99/mo | SMB | Technical SEO focus, no AI, limited whitespace |
### Indirect Competitors
| Tool | Pricing | Why Indirect |
|------|---------|-------------|
| **Semrush** | $129-449/mo | Full marketing suite; overkill for SMB owner |
| **Ahrefs** | $99-999/mo | SEO power tool; steep learning curve |
| **Screaming Frog** | $259/yr | Desktop app; technical; one-shot |
| **Google Search Console** | Free | Fragmented; no synthesis; nobody checks it |
### Moat Analysis
| Moat Factor | ITPP | Competitors |
|-------------|------|-------------|
| **Hosting integration** | ✅ Native — runs on our servers, no config | ❌ None (marketgoo partners but doesn't own infra) |
| **Auto-discovery** | ✅ Detects new sites and pages automatically | ❌ Manual setup or API integration required |
| **Fix-it snippets** | ✅ Exact copy-paste HTML per page | ⚠️ Some generate generic recommendations |
| **AI analysis** | ✅ admin-ai stack, cost-controlled | ⚠️ Some offer AI; pricing uncertain |
| **Price point** | ✅ Free tier → $49/mo upsell | ⚠️ $19-249/mo range |
| **Client retention** | ✅ SEO scores as monthly value proof | ❌ Standalone tools; client can cancel anytime |
---
## Build Plan
### Phase 1: Core Crawler + Audit Engine (Week 1-2)
- Python crawler that walks `/home/*/htdocs/*/` directory trees
- Page parser: BeautifulSoup + lxml
- 20 core checks: meta tags, headings, OG, canonical, structured data, images, links
- JSON output per site
### Phase 2: Dashboard + Snippets (Week 2-3)
- FastAPI backend with SQLite per-site
- HTMX dashboard at seo.itpropartner.com
- Fix-it snippet generator (exact HTML per issue)
- Launch audit auto-trigger on new site detection
### Phase 3: AI Layer + Email (Week 3-4)
- Optional AI enhancement using admin-ai
- Keyword gap analysis
- Competitor content analysis
- Monthly email reports via Mailgun
- PDF export (WeasyPrint)
### Phase 4: Agency Tier + GSC (Week 4-5)
- Multi-site dashboard for agencies
- White-label branding (logo, colors, domain)
- Google Search Console API integration
- Ranking trend data
- Competitor tracking
### Phase 5: Launch + Hosting Integration (Week 5-6)
- Auto-enable Free tier for all ITPP hosting clients
- Dashboard prompt: "Upgrade to Pro for AI analysis"
- Client onboarding email sequence
- Documentation and KB articles
---
## Risk Assessment
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| Low conversion to Pro | Medium | High | Make Free tier genuinely useful; prompt upgrade at pain points |
| AI cost overrun | Low | Medium | Rate limit AI analysis; cost per audit is <$0.25 |
| Competitor entry | Medium | Low | Hosting integration is hard to replicate without owning the servers |
| Google algorithm changes | Low | Low | Checks are standards-based (schema.org, W3C); adapt checks, not architecture |
| Crawler load on servers | Low | Low | Run off-peak; rate-limit; incremental only |
---
## Git Repository Structure
```
seo-tool/
├── README.md
├── proposal.md
├── architecture.md
├── LICENSE
├── src/
│ ├── crawler/
│ │ ├── __init__.py
│ │ ├── site_discovery.py # Walk hosting directories
│ │ ├── page_fetcher.py # HTTP fetch + local file read
│ │ └── sitemap_parser.py # Sitemap XML parsing
│ ├── checks/
│ │ ├── __init__.py
│ │ ├── base.py # Abstract check class
│ │ ├── meta_tags.py # Title, description, robots
│ │ ├── headings.py # H1-H6 hierarchy
│ │ ├── social.py # OG, Twitter cards
│ │ ├── structured_data.py # JSON-LD, schema.org
│ │ ├── seo_files.py # robots.txt, sitemap.xml
│ │ ├── images.py # Alt text, dimensions
│ │ ├── links.py # Internal links, broken links
│ │ └── performance.py # Page size, load time
│ ├── engine/
│ │ ├── __init__.py
│ │ ├── auditor.py # Run all checks, produce report
│ │ ├── scorer.py # 0-100 scoring algorithm
│ │ └── snippet_gen.py # Fix-it HTML generator
│ ├── ai/
│ │ ├── __init__.py
│ │ ├── keyword_analysis.py # Keyword opportunities via admin-ai
│ │ ├── content_gap.py # Content gap detection
│ │ └── competitor.py # Competitor page analysis
│ ├── dashboard/
│ │ ├── __init__.py
│ │ ├── app.py # FastAPI application
│ │ ├── templates/ # HTMX templates
│ │ ├── static/ # CSS, JS
│ │ └── pdf.py # WeasyPrint PDF export
│ ├── integrations/
│ │ ├── __init__.py
│ │ ├── gsc.py # Google Search Console API
│ │ └── mailgun.py # Email delivery
│ └── cli.py # Command-line interface
├── config/
│ ├── checks.yaml # Enabled checks + thresholds
│ └── scoring.yaml # Scoring weights
├── tests/
│ ├── test_crawler.py
│ ├── test_checks.py
│ ├── test_engine.py
│ └── fixtures/ # Sample HTML pages
├── docs/
│ ├── api.md
│ ├── checks-reference.md
│ └── deployment.md
└── cron/
├── launch-audit.sh # Triggered on site creation
├── monthly-crawl.sh # Monthly scheduled audit
└── weekly-cleanup.sh # Rotate old reports
```
---
## Financial Projections
### 12-Month Revenue Ramp
| Quarter | Hosting Clients | Pro Conversions | Agency Conversions | MRR |
|---------|----------------|-----------------|-------------------|-----|
| Q1 | 20 | 2 (10%) | 0 | $98 |
| Q2 | 30 | 5 (17%) | 1 | $394 |
| Q3 | 45 | 8 (18%) | 2 | $690 |
| Q4 | 60 | 12 (20%) | 3 | $1,035 |
**Y1 total revenue:** ~$6,600
**Y1 cost:** ~$1,200 (AI, Mailgun, negligible computing)
**Y1 net:** ~$5,400
### 3-Year Projection
| Year | Clients | Pro (20%) | Agency (5%) | ARR | Net |
|------|---------|-----------|-------------|-----|-----|
| Y1 | 60 | 12 | 3 | $12,420 | ~$5,400 |
| Y2 | 120 | 24 | 6 | $24,840 | ~$18,000 |
| Y3 | 200 | 40 | 10 | $41,400 | ~$33,000 |
---
## The Ask
| Resource | Need |
|----------|------|
| Dev time | ~40 hours total (5-6 weeks part-time) |
| AI costs | ~$5-10/month during development (testing) |
| Mailgun | Already in ITPP stack ($0 incremental) |
| Domain | seo.itpropartner.com (subdomain, $0) |
| Git repo | Create on git.itpropartner.com |
---
## Next Steps
1. Create `git.itpropartner.com/ippadmin/seo-tool` repo
2. Build Phase 1 (crawler + check engine) — 2 weeks
3. Deploy dashboard stub at seo.itpropartner.com
4. Run pilot audit on modelortho.com (validation)
5. Launch Free tier for all ITPP hosting clients
---
*ITPP SEO Audit Tool — A product of IT Pro Partner*