Site Architecture
AvdLee/RocketSimApp
When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking.
An SEO agent skill for quick, lightweight, default single-page SEO audits.
$ npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JeffLi1993/seo-audit-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/seo-audit .claude/skills/seo-audit && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "seo-audit" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit into .claude/skills/seo-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-auditType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JeffLi1993/seo-audit-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/seo-audit .agents/skills/seo-audit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "seo-audit" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit into .agents/skills/seo-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JeffLi1993/seo-audit-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/seo-audit .cursor/skills/seo-audit && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "seo-audit" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit into .cursor/skills/seo-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JeffLi1993/seo-audit-skill.git --path seo-audit--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JeffLi1993/seo-audit-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/seo-audit .gemini/skills/seo-audit && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "seo-audit" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit into .gemini/skills/seo-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JeffLi1993/seo-audit-skill seo-auditInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JeffLi1993/seo-audit-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/seo-audit .github/skills/seo-audit && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "seo-audit" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit into .github/skills/seo-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JeffLi1993/seo-audit-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/seo-audit .opencode/skills/seo-audit && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "seo-audit" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit into .opencode/skills/seo-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
seo-auditAn SEO agent skill for quick, lightweight, default single-page SEO audits.
SEO Audit is an agent skill from JeffLi1993/seo-audit-skill. An SEO agent skill for quick, lightweight, default single-page SEO audits. Performs basic on-page and site-level checks and outputs a structured basic SEO audit report. Use when the user asks for "SEO audit", "SEO check", "check my page SEO", "page analysis", or wants a first-pass review of a URL. If the user requests "deep audit", "full report", "technical SEO audit", or "advanced SEO", use seo-audit-full instead.
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts, reference files and assets (for example `references/REFERENCE.md`, `scripts/check-page.py` and `scripts/check-schema.py`).
It sits in Marketing & SEO, covering SEO audit. The repository describes itself as: SEO agent skill for OpenClaw,Claude Code, and AI agents. Generate beginner SEO audits and advanced technical SEO reports for any page. The licence is MIT.
11 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 523bdfb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 4 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
SEO Audit loads about 4.4k tokens when it runs, and up to ~5.9k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 1,602 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from JeffLi1993/seo-audit-skill at commit 523bdfb, republished under its MIT licence (© JeffLi1993). 1,602 words, ~4,358 tokens.
.claude/skills/seo-audit/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.A lightweight SEO agent skill designed for quick, default single-page SEO audits. Powered by OpenClaw. Suitable for first-time page checks or when a rapid assessment is needed without full technical depth.
Use seo-audit when:
If the user wants more depth, upgrade to seo-audit-full:
Tip: For deep technical audits, advanced on-page SEO, or full reports, use the
seo-audit-fullskill.
| Input | Required | Notes |
|---|---|---|
| Page URL | Yes | The page to audit |
| Raw HTML or page content | Optional | Enables more accurate on-page analysis |
| GSC / analytics data | Optional | Not required for basic audit |
If only a URL is provided and no source code or crawler data is available, clearly state:
Limitation: This audit is based on visible page content and publicly available signals only. Source code, GSC data, crawl logs, and performance metrics are not available for this audit.
Produce a Basic SEO Audit Report by filling the template at assets/report-template.html, then save it to a file — never print raw HTML to the terminal.
File naming: reports/<hostname>-<slug>-audit.html
https://example.com/blog/best-tools → reports/example-com-blog-best-tools-audit.html
https://example.com/ → reports/example-com-audit.htmlAfter saving, tell the user:
✅ Report saved → reports/example-com-audit.html
Open it now? (yes / no)If yes → run: open reports/example-com-audit.html
Template placeholders — fill each independently:
| Placeholder | Content |
|---|---|
{{summary_verdict}} | One sentence: total checks run, how many failed/warned/passed |
{{summary_critical_html}} | <li> per critical (fail) item, or <li class="summary-empty">None</li> |
{{summary_warnings_html}} | <li> per warning item, or <li class="summary-empty">None</li> |
{{summary_passing_html}} | <li> per passing check, or <li class="summary-empty">None</li> |
Run these scripts before writing any findings. They output structured JSON — use the JSON directly as evidence; do not re-fetch the same URLs manually.
Dependencies: pip install requests (html parsing uses Python stdlib)
# Step 1: site-level checks (robots.txt + sitemap.xml)
python scripts/check-site.py https://example.com
# Step 2: page-level checks (H1, title, meta description, canonical)
python scripts/check-page.py https://example.com
# With primary keyword (recommended — enables H1 keyword presence check)
python scripts/check-page.py https://example.com --keyword "running shoes"
# Optional: fetch raw page HTML for further inspection
python scripts/fetch-page.py https://example.com --output page.html
# Step 3: JSON-LD schema validation
python scripts/check-schema.py https://example.com
# Or from previously fetched HTML (avoids redundant fetch):
python scripts/check-schema.py --file page.htmlEach script exits with code 0 (all pass/warn) or 1 (any fail/error).
STRICT SCOPE — do not add any check not listed below. No exceptions.
Allowed site-level checks (in {{site_checks_html}}):
Allowed E-E-A-T checks (in {{eeat_checks_html}}):
Contact logic (Contact row only):
/contact page is not required/contact alone is not a fail when About or footer/nav already expose contact infoAllowed page-level checks (in {{page_checks_html}}), output in this exact order:
URL Slug · Title Tag · Meta Description · H1 Tag · Canonical Tag · Image Alt Text · Word Count · Keyword Placement · Heading Structure · Internal Links · Schema (JSON-LD)
Image Alt Text logic:
<img> tags from static HTML⛔ HARD RULE — Output ONLY the check rows defined in report-template.html. If a check is not in the allowed lists above, do NOT output it — not even if you find issues. No exceptions. No "bonus" checks. No improvisation. The template is the single source of truth. Treat it as a strict whitelist.
Still BANNED (belong to seo-audit-full): OG tags · Twitter Card · Social tags · Page Weight · Core Web Vitals · Robots Meta
How to use the JSON output:
status → pass / warn / fail / error directly to the report check tabledetail string as the starting point for the Evidence line in findings<div class="subsection-label">Label</div> inside {{site_checks_html}}:
Crawlability · URL Canonicalization · i18n / hreflang · Schema (JSON-LD)
and <div class="subsection-label">E-E-A-T Trust Pages</div> before {{eeat_checks_html}}LLM review — mandatory when llm_review_required: true:
The script flags fields that require semantic or quality judgment it cannot perform.
Never leave llm_review_required: true unresolved — always make an explicit judgment call.
H1 — triggered when keyword_match == "partial":
h1_text : (from h1.values[0])
keyword : (the --keyword passed to the script)
Judge: Does this H1 semantically cover the keyword's search intent?
- Consider synonyms, natural variants, topic coverage
- yes → downgrade to "pass", note the variant
- no → keep "warn" or upgrade to "fail", explain the gapTitle — triggered when keyword_match == "partial" OR keyword_position != "start":
title : (from title.value)
keyword : (the --keyword passed)
Judge:
1. Does the title semantically cover the keyword's search intent?
2. Is the title grammatically correct and naturally readable?
3. Keyword position — apply different standards by page type:
- Homepage : Brand + core keyword is correct (e.g. "Acme | AI Workflow Automation")
Do NOT flag brand-first as a problem.
- Inner pages: Core keyword should lead (e.g. "AI Workflow Automation for Teams — Acme")
Flag if keyword is buried mid-title without good reason.
IMPORTANT — do NOT flag these as negatives:
- Years (e.g. "2026") → signal freshness, increase CTR — treat as positive unless
the page is explicitly evergreen content where dating would hurt longevity.
- Numbers (e.g. "5 best", "Top 10", "3 steps") → set clear expectations,
consistently outperform non-numeric titles in CTR — always treat as a plus.
- Specific qualifiers ("Open-Source", "Self-Hosted", "Free") → narrow intent
and attract higher-quality clicks — do not penalize.URL Slug — triggered when keyword_match != "full" or is_homepage == false:
slug : (from url_slug.slug)
keyword : (the --keyword passed)
Judge:
1. Does the slug contain the primary keyword or a natural variant?
2. Is the path hierarchy logical? (/category/keyword is ideal)
3. Is it concise and human-readable?
Homepage (is_homepage: true): skip — no judgment needed.Meta Description — always triggered when content is present:
meta_description : (from meta_description.value)
keyword : (the --keyword passed)
Judge all four:
1. Complete sentence(s)? (1-2 sentences, no fragments)
2. Mentions a concrete result — not vague fluff?
Good: "Cut design time by 60% with AI-powered templates"
Bad: "The best tool for all your design needs"
3. Keyword or natural synonym used once — not stuffed?
4. More specific than what a typical competitor would write?
IMPORTANT — do NOT flag these as negatives:
- Years (e.g. "2026") → signal freshness, improve CTR for time-sensitive queries.
Only note the year if the page is explicitly evergreen content where dating hurts.
- Numbers (e.g. "5 best", "3 steps") → concrete specificity, strong CTR signal.
- Trailing "and more." → minor style note at most, never a Warning or Fail.Follow these steps in order:
Acknowledge scope — confirm this is a basic audit; note any missing data
Infer primary keyword — fetch the page with fetch-page.py, then determine the primary keyword:
"Inferred primary keyword: open source claude alternatives"
Run check-site.py — parse the JSON output for robots, sitemap, 404 handling, and URL canonicalization
404 check: fetch <origin>/this-page-definitely-does-not-exist-seo-audit-check
URL Canonicalization checks (each is a separate sub-check):
http://<host> — must 301 to https://. Returns 200 → Fail.https://www.<host> and https://<host> — one must 301 to the other. Both return 200 → Warn.E-E-A-T infrastructure check — for each trust page below, check two layers:
| Page | Required |
|---|---|
| About Us | Yes |
| Contact | Yes — see Contact-specific rules below |
| Privacy Policy | Yes |
| Terms of Service | Yes |
| Media / Partners | No — include only if present |
Status rules (About, Privacy, Terms, Media/Partners):
Contact-specific rules — a dedicated /contact page is optional:
/contact, /contact-us) — HTTP 200 counts as Existsmailto:, visible email, social links, or a contact form/contact when About or footer already expose contact info — note the existing pathway insteadRun check-page.py --keyword "<inferred_keyword>" — parse the JSON output for H1, title,
meta description, canonical, and URL slug
i18n / hreflang check — only run if the page contains hreflang tags or <html lang> suggests multi-language:
zh-CN not zh, en-US not en-us) — wrong code = Warnen) at root with no prefix,
other languages under subpaths (/zh/, /es/)./page (en) + /zh/page + /es/page → Pass/en/page + /zh/page → Warn (en prefix is redundant, wastes crawl depth)Run check-schema.py — parse the JSON output for schema types and field validation
python scripts/check-schema.py https://example.com
# Or from previously fetched HTML:
python scripts/check-schema.py --file page.htmlThe script extracts JSON-LD blocks, validates @type and required fields per Schema.org spec.
llm_review_required: true is always set — confirm inferred_page_type matches actual page content.
Page type → expected @type reference:
| Page Type | Expected @type | Min. required fields |
|---|---|---|
| Homepage | WebSite + Organization | name, url, logo |
| Blog / Article | Article or BlogPosting | headline, datePublished, author, image |
| Product | Product | name, image, offers (price, priceCurrency) |
| FAQ | FAQPage | mainEntity[].name, acceptedAnswer.text |
| How-to | HowTo | name, step[].text |
| Local business | LocalBusiness | name, address, telephone |
| Generic landing | — | N/A — skip, no widely-supported type |
Summarize findings — each finding must follow the Evidence / Impact / Fix format
Priority actions — list the top 3 highest-impact fixes
Render report — save to reports/<hostname>-<slug>-audit.html, then ask user to open
Upgrade prompt — if issues beyond basic scope are found, suggest seo-audit-full
The Detail cell in check tables must follow these rules — no exceptions:
Pass → one short phrase. No lists, no elaboration.
Good: "Valid XML urlset · 104 URLs · referenced in robots.txt."
Bad: "Valid XML urlset with 104 URLs. Correctly referenced in robots.txt.
Blog posts are likely indexed through this sitemap."Warn → one <div class="detail-issue"> with ≤2 bullet points. One <div class="detail-fix"> with the fix.
Good:
<div class="detail-issue">· Title 48 chars — 2 below minimum. · Year "2026" will date the page.</div>
<div class="detail-fix">Expand to 50–60 chars; remove year if evergreen.</div>
Bad: three-sentence prose explaining what a title tag is and why length matters.Fail → same as Warn. Lead with the exact failure. No background explanations.
Do NOT explain what a check is, do NOT repeat information already visible in the status badge, do NOT treat the reader as unfamiliar with SEO basics.
Every important finding must follow this structure:
**Finding: [Finding Title]**
- **Evidence:** [What was observed — direct quote, screenshot ref, or measurable data]
- **Impact:** [Why this matters for SEO or UX]
- **Fix:** [Specific, actionable recommendation]Do not write vague conclusions. If evidence is insufficient, state assumptions explicitly.
Include this at the end of every basic audit report:
Want a deeper analysis? This was a basic SEO audit covering site-level signals and core on-page checks. For advanced technical SEO, content quality scoring, structured data analysis, and full crawl-based findings, use the
seo-audit-fullskill.
© JeffLi1993, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (scripts, references, assets) in seo-audit of JeffLi1993/seo-audit-skill.
Open the folder on GitHubat commit 523bdfb
SEO Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| SEO Audit this skillJeffLi1993/seo-audit-skill | 764 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Site ArchitectureAvdLee/RocketSimApp | 804 | 11 repos | ~3.3k | Automated safety check: Pass | Custom licence | |
| Hreflang and International SEOAgriciDaniel/claude-seo | 19k | 5 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Google SEO APIsAgriciDaniel/claude-seo | 19k | 1 repos | ~4.2k | Automated safety check: Pass | MIT | |
| Evaluate Skillevery-app/open-seo | 23k | — | ~1.8k | Automated safety check: Notes | MIT | |
| FLOW SEO FrameworkAgriciDaniel/claude-seo | 19k | 2 repos | ~1.4k | Automated safety check: Pass | MIT |
AvdLee/RocketSimApp
When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking.
AgriciDaniel/claude-seo
Audits, validates and generates hreflang tags for multi-language and multi-region sites in HTML, HTTP headers or XML sitemaps, flagging common code and return-tag mistakes.
AgriciDaniel/claude-seo
Pulls real Google data for SEO work: Search Console, PageSpeed Insights, CrUX field data, the Indexing API and GA4 organic traffic, through /seo google commands.
every-app/open-seo
Test a candidate OpenSEO skill end to end by running fresh, isolated Codex sessions against the local backend and scoring the reports they save.
AgriciDaniel/claude-seo
Brings the FLOW framework's stage-specific SEO prompts into the agent, from keyword discovery through backlinks, on-page work and conversion to local SEO, loaded on demand.
zubair-trabzada/geo-seo-claude
Audits a website for AI search visibility across ChatGPT, Claude, Perplexity and Google AI Overviews while checking traditional SEO, schema and E-E-A-T content quality.
JeffLi1993/seo-audit-skill
Advanced full SEO audit skill. An agent skill from JeffLi1993/seo-audit-skill.
Categories
An SEO agent skill for quick, lightweight, default single-page SEO audits. SEO Audit is an agent skill from JeffLi1993/seo-audit-skill. An SEO agent skill for quick, lightweight, default single-page SEO audits.
SEO Audit fits situations like: the user asks for SEO audit; check my page SEO; wants a first-pass review of a URL.
Run `npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a claude-code`. Or copy the skill folder (seo-audit in JeffLi1993/seo-audit-skill) into .claude/skills/seo-audit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a codex`. Or copy the skill folder (seo-audit in JeffLi1993/seo-audit-skill) into .agents/skills/seo-audit in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-audit, .gemini/skills/seo-audit, .github/skills/seo-audit and .opencode/skills/seo-audit in your project.
Going by SKILL.md and its folder, SEO Audit needs Python for the scripts in its folder and the command-line tools its instructions call (python and pip). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
SEO Audit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with SEO Audit: Site Architecture (AvdLee/RocketSimApp, 804 stars), Hreflang and International SEO (AgriciDaniel/claude-seo, 19k stars), Google SEO APIs (AgriciDaniel/claude-seo, 19k stars) and Evaluate Skill (every-app/open-seo, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JeffLi1993 (a GitHub user) maintains it in JeffLi1993/seo-audit-skill, which has 764 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on June 17, 2026.
Source: JeffLi1993/seo-audit-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.