Skip to content
Back to skills

seo-audit

ASecurity

Run a full, weighted local & technical SEO audit on any website — entirely local, no SaaS, no per-domain pricing. Measures 8 discipline areas with a Python CLI (technical, on-page, schema.org/JSON-LD, local/GBP, Core Web Vitals, GEO/AI-Overview, content/E-E-A-T, images, sitemap, hreflang, content briefs, keyword clustering, drift, and Google APIs), then synthesises the findings into one prioritised report with weighted scoring, dependency-ordered actions and falsifiable recommendations.

  • 5 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 4, 2026
content-marketingpythongoapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned September 4, 2026

npx -y skills add Haniubub/seo-toolkit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of seo-audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for seo-audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/haniubub-seo-audit/badge)](https://www.skillsdirectory.com/skills/haniubub-seo-audit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: seo-audit
description: >-
  Run a full, weighted local & technical SEO audit on any website — entirely
  local, no SaaS, no per-domain pricing. Measures 8 discipline areas with a
  Python CLI (technical, on-page, schema.org/JSON-LD, local/GBP, Core Web
  Vitals, GEO/AI-Overview, content/E-E-A-T, images, sitemap, hreflang, content
  briefs, keyword clustering, drift, and Google APIs), then synthesises the
  findings into one prioritised report with weighted scoring, dependency-ordered
  actions and falsifiable recommendations.
whenToUse: >-
  Any request to audit or improve a website's search visibility, technical SEO,
  schema.org markup, E-E-A-T/content quality, local SEO or Google Business
  Profile, GEO/AI-Overview readiness, Core Web Vitals, sitemap/hreflang,
  keyword clustering, content briefs, or drift tracking.
---

# seo-audit — local & technical SEO audit toolkit

A two-layer audit engine. **Measurement** is deterministic (a Python CLI + 53
curated scripts). **Judgment** is where the model interprets those findings and
writes the plan. Both stay on your machine: no API keys for the core, no
third-party SaaS, no per-domain pricing.

## Use this first

1. **Broad, then deep.** Run `./seo audit <url>` once, then drill into the
   highest-impact findings. Starting with single commands optimises symptoms
   instead of root causes.
2. **Setup first.** If `./seo doctor` reports an error, run `./setup.sh`. Chromium
   is workspace-local; occasional sandbox hangs are caught by a subprocess
   timeout — just retry.
3. **Recommendations carry 4 fields.** Observation → Dependency → Failure signal →
   Early indicator. Field 2 sets the order, field 3 tells you how you'd know it
   worked.

## Command surface

| Command | Measures |
|---------|----------|
| `./seo doctor` | Environment health check |
| `./seo audit <url>` | Full weighted verdict (specialists + sitemap + structure) |
| `./seo technical <url>` | Technical SEO (9 categories) |
| `./seo page <url>` | On-page: content, links, keyword signals |
| `./seo schema <url>` | JSON-LD / LocalBusiness detection + validation |
| `./seo local <url>` | Local / NAP consistency |
| `./seo visual <url>` | Render, hydration, console errors, load time (lab) |
| `./seo sitemap <url>` | Sitemap discovery + validation |
| `./seo content <url\|file>` | QRG-style content-quality scoring |
| `./seo hreflang <url>` | hreflang / i18n extraction |
| `./seo backlinks <url>` | Free sources (Moz/Bing/Common Crawl); premium via DataForSEO |
| `./seo cluster <keyword>` | Keyword clustering |
| `./seo content-brief <topic> [kw]` | Content brief |
| `./seo drift baseline\|compare\|history <url>` | Time-series drift |
| `./seo google <sub> [args]` | PSI / CrUX / GSC / GA4 (key required) |
| `./seo run <script.py> [args]` | Run any of the 53 scripts directly |
| `./seo list` | Enumerate scripts, sub-skills, extensions |

## Judgment layer

For anything that needs interpretation — not just measurement — load the matching
sub-skill and execute it (optionally in parallel via `subagent`):

- **E-E-A-T / content quality** → `skills/seo-content/SKILL.md`
- **GEO / AI Overviews** → `skills/seo-geo/SKILL.md`
- **Local / GBP** → `skills/seo-local/SKILL.md`
- **Maps intelligence** → `skills/seo-maps/SKILL.md`
- **SXO** (search experience, personas) → `skills/seo-sxo/SKILL.md`
- **Strategy per industry** → `skills/seo-plan/SKILL.md`
- **Programmatic SEO** → `skills/seo-programmatic/SKILL.md`
- **Competitor pages** → `skills/seo-competitor-pages/SKILL.md`
- **E-commerce** → `skills/seo-ecommerce/SKILL.md`
- **Image SEO** → `skills/seo-images/SKILL.md`
- **FLOW framework** → `skills/seo-flow/SKILL.md`
- **Cluster (SERP-based)** → `skills/seo-cluster/SKILL.md`

## Orchestration — gated multi-agent fan-out

Only as many agents as the site actually needs (typically 7–10, never all 18):

1. **Detect business type** (SaaS / local-service / ecommerce / publisher /
   agency / other) from homepage signals.
2. **Choose the category set:**
   - **Always:** technical, content (E-E-A-T), schema, page, sxo, geo
   - **By industry:** saas → cluster/programmatic · local-service → local/maps
     · ecommerce → ecommerce · publisher → cluster/images
     · agency → competitor-pages
   - **By credential:** google, backlinks, dataforseo, firecrawl (only with keys)
3. **Run in parallel.** Each subagent loads its `skills/seo-<category>/SKILL.md`,
   runs measurement via `./seo <cmd>`, and returns structured findings with the
   4 fields.
4. **Synthesise** into one weighted score (in `lib/report.py`): Technical 22% ·
   Content 23% · On-Page 20% · Schema 10% · Performance 10% ·
   AI-Readiness 10% · Images 5%.
5. **Action plan** sorted by dependency, with a falsifiability check per
   recommendation.

## Quality gates (do not ignore)

- **30+ location pages** → warn (enforce 60% unique content); **50+ → hard stop**.
- **Never recommend HowTo schema** (deprecated since Sept 2023).
- **FAQ schema:** rich results withdrawn for all sites on 7 May 2026 → note only;
  use QAPage for genuine Q&A.
- **Core Web Vitals always INP, never FID.**

## Honest limits

- **Without a Google key:** load time is a lab estimate, no CrUX/PSI/GSC data.
- **Without third-party index:** no search volumes/backlink graph
  (DataForSEO/Ahrefs/Bing need their own keys).
- **Extensions** (DataForSEO, Firecrawl, Ahrefs, Bing, Banana, Profound,
  SE Ranking, Unlighthouse) are ported but only work once you supply credentials.
- **Scroll/hydration content** stays noisy → use `visual` as a cross-check.

## Cost

The measurement layer is pure local Python — **$0 in tokens**. Only the LLM
interpretation costs anything, which is typically **~12×–30× cheaper** than the
equivalent Claude-based audit. See the project README for the worked example.

Files in this skill

  • CHANGELOG.md670 B
  • CODE_OF_CONDUCT.md1.3 KB
  • CONTRIBUTING.md1.3 KB
  • ENTITY.md2.4 KB
  • INSTALL.md1.6 KB
  • README.zh.md15.9 KB
  • SKILL.md5.8 KB
  • agents/seo-backlinks.md6.7 KB
  • agents/seo-cluster.md3.5 KB
  • agents/seo-content.md3.7 KB
  • agents/seo-dataforseo.md1.7 KB
  • agents/seo-drift.md2.8 KB
  • agents/seo-ecommerce.md3.6 KB
  • agents/seo-flow.md2.3 KB
  • agents/seo-geo.md3.5 KB
  • agents/seo-google.md3.5 KB
  • agents/seo-image-gen.md2.3 KB
  • agents/seo-local.md5 KB
  • agents/seo-maps.md4.5 KB
  • agents/seo-performance.md4.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.