From local-seo-audit
Collects initial data for SEO audits: intake form, URL validation, project setup, and competitor identification. Phase 0 of multi-phase SEO audit workflow.
How this skill is triggered — by the user, by Claude, or both
Slash command
/local-seo-audit:audit-intakeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Phase 0 is the foundation of the entire 21-phase audit. The quality of intake data directly determines audit accuracy. Every subsequent phase reads `{AUDIT_DIR}/intake-data.md` — incomplete intake = cascading errors across all phases. In 2025–2026, intake has expanded beyond basic data collection: AI search now accounts for an estimated 25–40% of zero-click query resolution (Semrush 2025), mean...
Phase 0 is the foundation of the entire 21-phase audit. The quality of intake data directly determines audit accuracy. Every subsequent phase reads {AUDIT_DIR}/intake-data.md — incomplete intake = cascading errors across all phases. In 2025–2026, intake has expanded beyond basic data collection: AI search now accounts for an estimated 25–40% of zero-click query resolution (Semrush 2025), meaning business goals must explicitly address AI Overviews, ChatGPT, Perplexity, and Gemini visibility — not just traditional organic rankings. GBP signals are confirmed as the #1 local ranking factor (Whitespark 2024), making GBP URL and review count collection at intake critical for Phase 11 benchmarks. Competitor landscape snapshot at intake saves 2–3 hours later by pre-populating Phase 1.
2025–2026 intake benchmarks:
Numbered Action Plan:
python3 scripts/check_url.py --url [URL] --full. Captures HTTP status, SSL validity, redirect chain, TTFB, basic on-page signals (H1, title). Effort: 2 min. Flag if TTFB >800ms, SSL error, or 4xx/5xx.python3 scripts/setup_project.py --name "..." --url "..." --location "...". Sets all path variables used by all 21 phases. Effort: 1 min. Priority: 25 (5×5).site:[domain] indexed count; branded search Knowledge Panel check; BuiltWith.com for CMS detection. Effort: 5 min. Priority: 15 (3×5).site:[domain] count dramatically lower than expected? Any manual actions visible in GSC? Rank for branded name? Flag for Phase 20. Effort: 3 min.{AUDIT_DIR}/intake-data.md with YAML frontmatter. Display confirmation summary. Launch Phase 1. Effort: 5 min.| Tool | Purpose | Cost |
|---|---|---|
python3 scripts/setup_project.py | Create project directory + project.json | Free (local) |
python3 scripts/check_url.py --full | Validate URL: HTTP status, SSL, redirect chain, TTFB | Free (local) |
| Google Search | Identify competitors if not provided | Free |
| Google Maps | Find GBP listing URL, star rating, review count | Free |
| Semrush / Ahrefs | Quick traffic estimate + domain rating for competitors | Paid |
| BuiltWith | CMS detection, hosting stack, tech stack | Free |
When an audit is triggered, present this structured form:
==============================================
LOCAL BUSINESS SEO AUDIT — INTAKE FORM
==============================================
1. Business Name: [Required]
2. Website URL: [Required — full URL with https://]
3. Target Location(s): [Required — City, State, Country. All service areas.]
4. Primary Services: [Required — list all services offered]
5. Business Category: [Required — primary industry/niche]
6. Business Goals: [Select one or more:]
• Increase local visibility & foot traffic
• Generate more leads/calls/form submissions
• Outrank specific competitors
• Expand to new service areas
• Improve online reputation & reviews
• Dominate AI search (AI Overviews, ChatGPT, Perplexity, Gemini)
• Build topical authority
• Improve conversion rate
• Launch/optimize Google Business Profile
• Recover from traffic drop or penalty
• Other: [specify]
7. Competitors: [3-5 competitors — URLs preferred. Skip → auto-research.]
8. GBP URL: [Optional — Google Business Profile link]
9. Social Media URLs: [Optional — Facebook, Instagram, LinkedIn, YouTube, TikTok]
10. Analytics Access: [Optional — GA4 + GSC available? Critical for Phase 6 keyword data]
11. Previous SEO Work: [Optional — agency/in-house history, any known penalties?]
12. Budget Range: [Optional — helps calibrate effort estimates throughout audit]
Intake Rules:
Once URL is provided, run validation:
python3 scripts/check_url.py --url [WEBSITE_URL] --full
Interpret results — thresholds:
| HTTP Status | Action |
|---|---|
| 200 | Accessible — proceed |
| 301/302 | Note redirect destination; use final URL for all phases |
| 403/429 | May block crawlers — note for Phase 2 Technical SEO |
| 4xx/5xx | Alert user, confirm URL — DO NOT proceed until accessible |
| SSL error | Flag as CRITICAL — add to Phase 2 Technical findings immediately |
TTFB benchmarks:
1.8s → Critical speed issue (flag immediately in intake notes)
Additional checks during URL validation:
IMMEDIATELY after collecting required fields, create the project directory:
python3 scripts/setup_project.py \
--name "[Business Name]" \
--url "[Website URL]" \
--location "[City, State]" \
--json
This creates:
projects/[business-slug]/
project.json ← Business metadata (name, URL, location, slug, created date)
audit/ ← All 21 phase finding .md files
reports/ ← All HTML + PDF reports
data/crawl/ ← site_crawler.py output (CSV + JSON)
data/serp/ ← SERP snapshot data
data/scores/ ← LOCAL-IMPACT + SERP-TRUST YAML scoring data
Set these variables for all subsequent phases:
PROJECT_SLUG = [returned by script — e.g., acme-plumbing-chicago]
PROJECT_DIR = projects/[slug]
AUDIT_DIR = projects/[slug]/audit
REPORTS_DIR = projects/[slug]/reports
DATA_DIR = projects/[slug]/data
Slug generation rules:
acme-plumbing-chicagosmith-sons-law-firmIf competitors not provided, use this 3-search protocol:
[primary service] [city] → top 3 local pack + top 3 organic (non-directory)best [service] [city] → cross-reference new names[service] [city] reviews → confirm competitive landscapeFor each competitor, collect:
| Field | Source | Why |
|---|---|---|
| Business name | Google Maps | Identity |
| Website URL | Google Maps | All subsequent phases |
| GBP listing URL | Google Maps | Phase 11 Local SEO |
| Google star rating | Google Maps | Phase 15 Reputation |
| Review count | Google Maps | Competitive benchmark |
| Domain Rating (DR) | Ahrefs free / Moz | Phase 12 Backlinks baseline |
Competitor selection criteria:
Present list: "I've identified these competitors: [list]. Let me know if any should be swapped."
Before writing intake file, collect these quick intelligence signals:
# Check if site is indexed
# Search: site:[domain] — should return > 10 results for healthy site
# Check GBP presence
# Google: [Business Name] [City] — does Knowledge Panel appear?
# Quick tech stack check
# BuiltWith.com or: check page source for wp-content, Shopify, Wix, etc.
Red flags to note in intake (flag for relevant phases):
site:[domain] returns < 10 results → potential indexation issue (Phase 2 flag)Write to {AUDIT_DIR}/intake-data.md:
---
skill: research/audit-intake
phase: 0
date: [YYYY-MM-DD]
business: [Business Name]
url: [Website URL]
score: N/A
status: complete
project_dir: projects/[slug]
audit_dir: projects/[slug]/audit
reports_dir: projects/[slug]/reports
data_dir: projects/[slug]/data
---
# Audit Intake Data
## Business Profile
- **Name:** [Business Name]
- **Website:** [URL]
- **Final URL (after redirects):** [final URL]
- **Location(s):** [City, State, Country + all service areas]
- **Services:** [full list]
- **Category:** [industry/niche]
- **GBP URL:** [URL or N/A]
- **Tech Stack:** [CMS detected — WordPress/Wix/Squarespace/Custom/Unknown]
- **Domain Age:** [years or Unknown]
## Goals (Priority-Ordered)
1. [Primary goal]
2. [Secondary goal]
3. [Additional goals]
## Competitors
| # | Business | Website | DR | GBP Stars | Review Count | Local Pack Pos |
|---|---------|---------|----|-----------|--------------|-|
| 1 | [name] | [url] | [X] | [X.X] | [X] | #[X] |
| 2 | [name] | [url] | [X] | [X.X] | [X] | #[X] |
| 3 | [name] | [url] | [X] | [X.X] | [X] | #[X] |
## Analytics & Access
- GA4: [Yes (full access) / Yes (read only) / No / Unknown]
- GSC: [Yes / No / Unknown] — if No: use Ahrefs/Semrush for keyword data
- Previous SEO: [brief summary or N/A]
- Budget Range: [range or N/A]
## URL Validation Results
- HTTP Status: [200 / 301→ / error]
- TTFB: [Xms] — [Good (<800ms) / Needs Improvement / Critical (>1.8s)]
- SSL: [Valid until YYYY-MM / Error / Self-signed]
- Redirects: [None / HTTP→HTTPS / www→non-www / other]
- Immediate Issues Flagged: [list — e.g., "Missing H1 on homepage", "TTFB 2.1s"]
## Initial Intelligence
- Site indexed: [site:[domain] returns X results — Healthy/Low/Zero]
- Knowledge Panel: [Present / Partial / None]
- GBP claimed: [Yes / No / Unknown]
## Phase Flags (Pre-set from Intake)
- [ ] Phase 2 (Technical): [any technical flags]
- [ ] Phase 10 (Speed): [TTFB or speed flags]
- [ ] Phase 12 (Backlinks): [DR level, domain age]
- [ ] Phase 9 (Entity): [Knowledge Panel status]
## Project Context
- PROJECT_SLUG: [slug]
- PROJECT_DIR: projects/[slug]
- AUDIT_DIR: projects/[slug]/audit
- REPORTS_DIR: projects/[slug]/reports
- DATA_DIR: projects/[slug]/data
Display confirmation:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AUDIT INTAKE COMPLETE — Phase 0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Business: [Name]
Website: [URL]
Location: [City, State]
Services: [count] services
Project: projects/[slug]/
Competitors: [count] identified
URL Status: ✅ HTTP 200 / ⚠️ [issue]
SSL: ✅ Valid / ❌ Issue
TTFB: [Xms] — [Good/Slow/Critical]
Indexation: [X pages indexed]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Pre-flagged Issues: [X]
🔴 [Critical flag if any]
🟠 [High flag if any]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Next: /audit-competitors (Phase 1)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| Task | Impact (1–5) | Feasibility (1–5) | Priority | Effort |
|---|---|---|---|---|
| Collect all required fields (1–6) | 5 | 5 | 25 | 5–10 min |
| Run URL validation script | 5 | 5 | 25 | 2 min |
| Identify 3+ competitors | 5 | 5 | 25 | 10–15 min |
| Collect GA4/GSC access | 4 | 5 | 20 | 5 min |
| Record competitor DR/ratings | 3 | 4 | 12 | 5 min |
| Detect tech stack | 3 | 5 | 15 | 2 min |
After intake completes, {AUDIT_DIR}/intake-data.md is the single source of truth for:
Key consumers:
research/competitor-analysis — reads competitor list, begins profilingcross-cutting/local-impact-auditor — reads goal context for weight adjustmentaudit/penalty-check — reads previous SEO history for penalty risk flagsoutput/report-generation — reads project metadata for master report cover pageAfter completing Phase 0, ensure the following are noted in {AUDIT_DIR}/intake-data.md as recommendations for downstream phases:
| Flag | Condition | Downstream Phase | Recommended Action | Effort |
|---|---|---|---|---|
| 🔴 TTFB >800ms | check_url.py result | Phase 10 Speed | Server-level optimization, CDN, caching | High (1–3 days) |
| 🔴 No GBP URL | Item 8 not provided | Phase 11 Local | Create or claim GBP listing immediately | Medium (1–3 days) |
| 🔴 SSL error / no HTTPS | check_url.py result | Phase 2 Technical | Install SSL certificate, 301 HTTP→HTTPS | Medium (1 day) |
| 🟠 Domain <6 months | WHOIS check | Phase 12 Backlinks | Focus on link building vs. penalty recovery | Low (30 min note) |
| 🟠 No GSC access | Item 10 not provided | Phases 6, 7, 20 | Request GSC access; Ahrefs estimates as substitute | Low (10 min) |
| 🟠 Wix / Squarespace CMS | BuiltWith result | Phase 2 Technical | Note schema/speed limitations upfront | Low (15 min note) |
| 🟡 No GA4 | check_url.py / manual | Phase 17 CRO | Install GA4 before Phase 17; no baseline = CRO score capped at 60 | Medium (2–4 hrs) |
| 🟡 Review count <10 | Google Maps check | Phase 15 Reputation | Launch review velocity campaign immediately | Low (30 min plan) |
| 🟡 INP >200ms on homepage | check_url.py / PSI | Phase 10 Speed | INP replaced FID March 2024 — flag for urgent fix | Medium (2–8 hrs) |
INP (Interaction to Next Paint) replaced FID as a Core Web Vital. If python3 scripts/check_url.py --url [URL] --full returns INP >200ms, pre-flag Phase 10 as critical priority in intake-data.md. INP >500ms = Poor (ranking suppression confirmed across competitive keywords).
Output files:
{AUDIT_DIR}/intake-data.md — primary output, source of truth for all phases{REPORTS_DIR}/phase-0-intake.pdf — auto-generated summary PDF after intake completes{DATA_DIR}/crawl/ — populated later by site_crawler.py (Phase 2)2025 intake quality gate: Before launching Phase 1, confirm all 5 items are complete:
npx claudepluginhub mshahiddigital/agentic-local-seo-auditCore identity and expertise for SEO auditing. Defines 10-step audit protocol, scoring methodology, and file conventions for project-based audits.
Runs comprehensive SEO audits across 24 sub-skills: site/technical audits, Core Web Vitals, schema, sitemaps, E-E-A-T content quality, image optimization, AI overviews (GEO), hreflang, backlinks, local/maps, and drift monitoring.
Builds a phased, quarter-by-quarter SEO roadmap for a domain based on competitive position, content gaps, technical debt, and AI Search readiness. Use when asked for an overall SEO plan or strategy.