← 返回公开榜单
se

JeffLi1993/seo-audit-skill

SEO agent skill for OpenClaw,Claude Code, and AI agents. Generate beginner SEO audits and advanced technical SEO reports for any page.

本周新增
—
近 3 周倍数
—
距上次推送
211 天
距上次发布
—
许可证
—

星标增长

每根柱子是这个周期记录下来的 star 增长:优先取逐个 stargazer 到达时间分桶的到达数,还没被 stargazer 扫描覆盖的仓库改用该周期的 star 净增;两个写者都没记录的周期画成虚线空档,而不是当成 0。柱高按各自窗口的峰值归一,两张图不共用坐标轴。指向任意一根柱子, tooltip 里是该周期的九项指标:当前值与周期内的净增。

还没有日粒度数据。每次采集会补齐最近 90 天,下一次采集后这里才会有曲线。

证据时间轴

这个项目还没有记录到异动、发布或许可证变化。

README
该仓库存储的文档,若已生成中文翻译则一并显示

seo-audit-skill

English · 中文 · SEO Audit Agent Skill

Reusable Agent Skills for single-page SEO auditing. Give it a URL — get a structured HTML report with actionable findings.

Built on a Script + LLM two-layer architecture: Python scripts handle deterministic checks (HTTP status, XML parsing, string matching), while the LLM handles semantic judgment (keyword intent, content quality, page type inference). Works with Claude Code, Cursor, and any agent runtime that supports SKILL.md.

Best practices

  1. Run npx skills add JeffLi1993/seo-audit-skill, then audit your page (for example: audit this page: https://example.com). Open the report at reports/<hostname>-audit.html and review it yourself: keep what matters for your goals, skip what does not.
  2. Share the report (or the key sections) with Cursor or Claude Code and have the assistant work through the findings and fixes item by item.

Report Output

Each basic audit produces a standalone HTML report saved to reports/<hostname>-audit.html. Full audits save to reports/<hostname>-full-audit.html.

SectionWhat you get
Audit SummaryOne-line verdict + critical / warnings / passing at a glance
Site ChecksSitemap URL Inventory · Crawlability · URL Canonicalization · i18n · Schema · E-E-A-T
Page SpeedFull only — Lighthouse scores, lab metrics, final URL, screenshot availability
Page ChecksTDK · H1 · Headings · Word Count · Internal Links · Social Tags
Priority ActionsTop 3 highest-impact fixes, ranked
Insight WalkthroughEvidence → Impact → Fix for each major finding
audit this page: https://openclaw.ai
→ ✅ Report saved → reports/openclaw-ai-audit.html
WebsiteAudit SummarySite ChecksPage Checks & insights
colaos.aiAudit SummarySite ChecksPage Checks and insights

Skills

SkillTierWhen to use
seo-auditBasicDefault — give it a URL, get a 20+ check structured report
seo-audit-fullFullDeep audit with PageSpeed, sitemap inventory, social tags, content quality, GSC data, competitor gap

seo-audit-full requires a Google PageSpeed Insights API key for PageSpeed checks. Set PAGESPEED_API_KEY / GOOGLE_PAGESPEED_API_KEY, or pass --api-key; without a key, the full audit stops and asks you to configure one.


Audit Coverage

Site-level

CheckWhat it verifiesBasicFull
Sitemap URL InventoryStandalone table of top sitemap directories: URL count, page type, representative example URL—✅
Staging Subdomain IndexationDetects public test., staging., dev., preview., beta., uat. hosts that mirror production and may be indexable—✅
robots.txtRFC 9309 group parsing, Allow/Disallow logic, Googlebot status, Sitemap directives✅✅
sitemap.xmlValid XML, URL count, follows Sitemap directive path from robots.txt, samples child sitemap URLs when needed✅✅
404 HandlingTrue 404 vs soft 404 (200) vs redirect-to-homepage (301)✅✅
URL CanonicalizationHTTP→HTTPS redirect, www consistency, trailing slash, canonical tag match✅✅
i18n / hreflangReciprocal symmetry, BCP 47 codes, x-default, default-language URL duplication, canonical/hreflang alignment✅✅
Schema (JSON-LD)Parseability, @type detection, required/recommended fields, nested fields, type conflicts, localized schema language/URL alignment✅✅
E-E-A-T Trust PagesAbout / Contact / Privacy / Terms — exists (HTTP 200) + reachable from footer/nav✅✅
GSC Crawl StatusIndex coverage, crawl errors, blocked resources—✅
PageSpeed / LighthousePerformance · Accessibility · Best Practices · SEO scores, lab metrics, final URL, screenshot availability—✅

Sitemap URL Inventory is intentionally rendered as its own table before Crawlability:

DirectoryURL CountPage TypeExample Page
/blog/300Blog / Content Pageshttps://xx.ai/blog/best-ai-video-tools
/tools/80Tool Pageshttps://xx.ai/tools/image-generator
/alternatives/40Alternative / Competitor Pageshttps://xx.ai/alternatives/synthesia

Use it as a site-level map, then choose representative URLs from important directories for deeper full audits.

Page-level

CheckWhat it verifiesBasicFull
URL SlugLowercase, hyphenated, keyword present, stop word & stuffing detection✅✅
Title Tag50–60 chars, keyword position, homepage vs inner page rules✅✅
Meta Description120–160 chars, keyword match, concrete value prop (not generic fluff)✅✅
H1 TagSingle H1, keyword match (full / partial / none), semantic intent review✅✅
Canonical TagSelf-referencing, matches final URL after redirects✅✅
Image Alt TextAlt attribute check on all <img>, JS-render detection✅✅
Word CountBody text ≥ 500 words, thin content flag✅✅
Keyword PlacementPrimary keyword within first 100 body words✅✅
Heading StructureH2 count (target 5–7), H3/H2 ratio, keyword distribution in H2s✅✅
Internal LinksSame-origin links (excl. nav/footer), equity distribution✅✅
OG / Social Tagsog:image, twitter:card, social preview completeness—✅
Content QualityE-E-A-T depth, readability, specificity vs competitors—✅
Robots Metanoindex, nofollow, max-snippet directives—✅

Structure

seo-audit-skill/
├── seo-audit/
│   ├── SKILL.md                       # Skill definition + agent workflow
│   ├── references/REFERENCE.md        # Field definitions, edge cases
│   ├── assets/report-template.html    # HTML output template
│   └── scripts/
│       ├── check-site.py              # robots.txt + sitemap → JSON
│       ├── check-page.py              # TDK + H1 + canonical + slug → JSON
│       ├── check-schema.py            # JSON-LD extraction + validation → JSON
│       └── fetch-page.py              # Raw HTML fetcher, SSRF protection
└── seo-audit-full/
    ├── SKILL.md
    ├── references/REFERENCE.md
    ├── assets/report-template.html
    └── scripts/
        ├── check-site.py              # staging + sitemap inventory + robots/sitemap → JSON
        ├── check-pagespeed.py         # PageSpeed Insights / Lighthouse → JSON
        ├── check-social.py            # OG + Twitter Card validation → JSON
        └── check-schema.py            # JSON-LD quality + localized schema validation → JSON

Architecture: Script + LLM

URL
 │
 ▼
┌──────────────────────────────────────────────────┐
│  Layer 1 · Python Scripts                        │
│  Deterministic checks → structured JSON          │
│                                                  │
│  check-site.py      sitemap inventory, staging   │
│  check-page.py      H1 / title / meta / canonical│
│  check-schema.py    JSON-LD fields + localization│
│  fetch-page.py      raw HTML + SSRF protection   │
└───────────────────────┬──────────────────────────┘
                        │ JSON + llm_review_required flag
                        ▼
┌──────────────────────────────────────────────────┐
│  Layer 2 · LLM Agent                             │
│  Semantic judgment on flagged fields only         │
│                                                  │
│  · Keyword intent alignment (H1 / title)         │
│  · Meta description quality & specificity        │
│  · Page type → expected Schema @type mapping     │
│  · E-E-A-T trust page reachability (footer/nav)  │
│  · Content analysis (word count, heading, links) │
└───────────────────────┬──────────────────────────┘
                        │
                        ▼
              report-template.html
              → reports/<hostname>-audit.html

Why two layers? Scripts handle the 80% of checks that are deterministic — does robots.txt exist? Is the title 55 characters? The LLM handles the 20% that require understanding — does this H1 semantically cover the intent of "AI workflow automation"? The llm_review_required flag ensures the LLM only intervenes when the script explicitly cannot make the call. No hallucination on factual checks, no blind spots on semantic ones.


Installation

Option 1: CLI (Recommended)

npx skills add JeffLi1993/seo-audit-skill

# Or install a specific tier
npx skills add JeffLi1993/seo-audit-skill --skill seo-audit
npx skills add JeffLi1993/seo-audit-skill --skill seo-audit-full

Option 2: Claude Code Plugin

/plugin marketplace add JeffLi1993/seo-audit-skill
/plugin install seo-audit-skill

Usage

audit this page: https://example.com

Scripts

All scripts output structured JSON to stdout. Exit code 0 = pass/warn, 1 = any fail.

ScriptWhat it does
check-site.pyrobots.txt + sitemap + sitemap inventory — RFC 9309 parsing, staging subdomain checks, top directory grouping
check-page.pyH1 / title / meta / canonical / URL slug — keyword match with stop-word-aware filter
check-schema.pyJSON-LD extraction, @graph flattening, @type + required field validation, localized schema alignment
fetch-page.pyRaw HTML fetch — SSRF protection, redirect chain tracking, Googlebot UA option
check-pagespeed.pyFull only — PageSpeed Insights / Lighthouse scores and lab metrics; requires API key
check-social.pyFull only — OG tags + Twitter Card validation

Dependency: pip install requests


License

MIT

页面上的每个数字都来自记录下来的 stargazer 到达时间,没有评分公式,也没有 AI 判定。 任何结论都可以用 /api/v1/repos/{id}/stats 里的原始增量自己重算。