Agent skill

SEO Audit

by JeffLi1993 in JeffLi1993/seo-audit-skill

An SEO agent skill for quick, lightweight, default single-page SEO audits.

MITAuto-check passedMarketing & SEO

Install SEO Audit

skills CLI
$ npx skills add JeffLi1993/seo-audit-skill --skill seo-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JeffLi1993/seo-audit-skill seo-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
seo-audit
GitHub stars
764
Token cost
~4.4k tokens
SKILL.md length
1,602 words
Files
7 (incl. scripts, references, assets)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

An SEO agent skill for quick, lightweight, default single-page SEO audits.

  • Works in 11 steps: Acknowledge scope — confirm this is a… → Infer primary keyword — fetch the page… → Run check-site.py — parse the JSON… → …
  • The user asks for SEO audit
  • SKILL.md covers When to Use This Skill, Input Expected, Output and Scripts, plus 5 more sections
  • Runs Python scripts from its folder; calls python and pip

What it does

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.

When your agent uses it

  • The user asks for SEO audit
  • Check my page SEO
  • Wants a first-pass review of a URL

Example prompts

  • “SEO audit”
  • “SEO check”
  • “check my page SEO”
  • “/seo-audit”

Requirements

  • Python 3

Workflow steps

11 steps, taken from the first numbered list in SKILL.md.

  1. Acknowledge scope — confirm this is a basic audit; note any missing data
  2. Infer primary keyword — fetch the page with fetch-page.py, then determine the primary keyword
  3. Run check-site.py — parse the JSON output for robots, sitemap, 404 handling, and URL canonicalization
  4. E-E-A-T infrastructure check — for each trust page below, check two layers
  5. Run check-page.py --keyword "" — parse the JSON output for H1, title,
  6. i18n / hreflang check — only run if the page contains hreflang tags or suggests multi-language
  7. Run check-schema.py — parse the JSON output for schema types and field validation
  8. Summarize findings — each finding must follow the Evidence / Impact / Fix format
  9. Priority actions — list the top 3 highest-impact fixes
  10. Render report — save to reports/--audit.html, then ask user to open
  11. Upgrade prompt — if issues beyond basic scope are found, suggest seo-audit-full

What it can do on your machine

Read from SKILL.md and the folder at commit 523bdfb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 4 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~107
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.9k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from JeffLi1993/seo-audit-skill at commit 523bdfb, republished under its MIT licence (© JeffLi1993). 1,602 words, ~4,358 tokens.

Download SKILL.mdSave it as .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.
name
seo-audit
description
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.
metadata.author
Jeff
metadata.version
1.0

seo-audit — Basic SEO Audit

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.


When to Use This Skill

Use seo-audit when:

  • The user says: "audit this page", "check SEO", "analyze my URL", "quick SEO check", "what's wrong with my page"
  • No specific depth is requested — this is the default entry point
  • The user needs a fast, readable summary rather than a comprehensive technical breakdown

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-full skill.


Input Expected

InputRequiredNotes
Page URLYesThe page to audit
Raw HTML or page contentOptionalEnables more accurate on-page analysis
GSC / analytics dataOptionalNot 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.


Output

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.html

After 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:

PlaceholderContent
{{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>

Scripts

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)

bash
# 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.html

Each 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}}):

  • robots.txt · sitemap.xml · 404 Handling · URL Canonicalization · i18n / hreflang

Allowed E-E-A-T checks (in {{eeat_checks_html}}):

  • About Us · Contact · Privacy Policy · Terms of Service · Media/Partners (only if present)

Contact logic (Contact row only):

  • A dedicated /contact page is not required
  • Pass if contact is reachable via any of: dedicated contact page (HTTP 200) · About page with contact details · footer/nav mailto, email, social links, or contact form
  • Fail only when no contact pathway exists anywhere on the site
  • Missing /contact alone is not a fail when About or footer/nav already expose contact info

Allowed 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:

  • Parse <img> tags from static HTML
  • Pass: all images have non-empty alt (decorative images with alt="" are OK)
  • Warn: any content image missing alt attribute
  • Unverified (status-info): 0 images found in static HTML → likely JS-rendered, cannot verify

⛔ 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:

  • Map each field's status → pass / warn / fail / error directly to the report check table
  • Use each field's detail string as the starting point for the Evidence line in findings
  • Do not contradict the script output unless you have additional observable evidence
  • Separate check groups with <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 gap

Title — 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:

  1. Acknowledge scope — confirm this is a basic audit; note any missing data

  2. Infer primary keyword — fetch the page with fetch-page.py, then determine the primary keyword:

    • If the user explicitly provided a keyword → use it directly
    • If not → read the page H1, title, and first paragraph, then infer the single most likely target keyword phrase (what would a searcher type to find this page?)
    • State the inferred keyword explicitly before running checks:

      "Inferred primary keyword: open source claude alternatives"

  3. 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

    • Returns 404 → Pass · Returns 200 (soft 404) → Fail · Returns 301 to homepage → Warn

    URL Canonicalization checks (each is a separate sub-check):

    • HTTP→HTTPS: fetch http://<host> — must 301 to https://. Returns 200 → Fail.
    • www consistency: fetch both https://www.<host> and https://<host> — one must 301 to the other. Both return 200 → Warn.
    • Trailing slash: compare the URL actually served vs the canonical tag on the page. Mismatch → Warn.
    • Canonical match: canonical tag href must exactly match the final URL after all redirects. Mismatch → Warn.
  4. E-E-A-T infrastructure check — for each trust page below, check two layers:

    • Layer 1 — Exists: fetch the URL, check HTTP status (200 = exists, 404/redirect = missing)
    • Layer 2 — Reachable: fetch homepage HTML, check if footer or nav contains a link to this page
    PageRequired
    About UsYes
    ContactYes — see Contact-specific rules below
    Privacy PolicyYes
    Terms of ServiceYes
    Media / PartnersNo — include only if present

    Status rules (About, Privacy, Terms, Media/Partners):

    • Page missing (non-200) → Fail
    • Page exists but not linked in footer/nav → Warn
    • Page exists and linked in footer/nav → Pass
    • Optional page missing → skip, do not include row

    Contact-specific rules — a dedicated /contact page is optional:

    1. Try common paths (/contact, /contact-us) — HTTP 200 counts as Exists
    2. If no contact page, check the About page body for email, social, or contact details
    3. Also scan homepage footer and nav for mailto:, visible email, social links, or a contact form
    4. Exists Pass if any contact pathway is found (dedicated page, About, or footer/nav contact details)
    5. Exists Fail only when no contact information is found anywhere
    6. Reachable Pass if a contact page link or contact details appear in footer/nav
    7. Reachable Warn if contact is only reachable inside About page content, not directly in footer/nav
    8. Do not recommend creating /contact when About or footer already expose contact info — note the existing pathway instead
  5. Run check-page.py --keyword "<inferred_keyword>" — parse the JSON output for H1, title, meta description, canonical, and URL slug

  6. i18n / hreflang check — only run if the page contains hreflang tags or <html lang> suggests multi-language:

    • Skip entirely (N/A) if no hreflang tags found and site appears single-language
    • If hreflang tags present, check:
      • Reciprocal symmetry: every URL referenced must link back to all other variants — any broken link = Fail
      • Language codes: must be valid BCP 47 (e.g. zh-CN not zh, en-US not en-us) — wrong code = Warn
      • x-default: should be present for language-selector or fallback pages — missing = Warn
      • html[lang] attribute: must match the primary hreflang of the page — mismatch = Warn
      • URL structure: recommended pattern — default language (usually en) 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)
        • Only flag if the pattern is clearly inconsistent or en is unnecessarily prefixed
  7. Run check-schema.py — parse the JSON output for schema types and field validation

    bash
    python scripts/check-schema.py https://example.com
    # Or from previously fetched HTML:
    python scripts/check-schema.py --file page.html

    The 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 TypeExpected @typeMin. required fields
    HomepageWebSite + Organizationname, url, logo
    Blog / ArticleArticle or BlogPostingheadline, datePublished, author, image
    ProductProductname, image, offers (price, priceCurrency)
    FAQFAQPagemainEntity[].name, acceptedAnswer.text
    How-toHowToname, step[].text
    Local businessLocalBusinessname, address, telephone
    Generic landing—N/A — skip, no widely-supported type
    • Pass: correct @type present, all required fields valid, no conflicts
    • Warn: @type present but missing recommended fields
    • Fail: expected @type missing entirely
    • N/A: generic landing page — do not penalize
  8. Summarize findings — each finding must follow the Evidence / Impact / Fix format

  9. Priority actions — list the top 3 highest-impact fixes

  10. Render report — save to reports/<hostname>-<slug>-audit.html, then ask user to open

  11. Upgrade prompt — if issues beyond basic scope are found, suggest seo-audit-full

Show full SKILL.md (176 more words)Show less

Report Detail Writing Rules

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.


Mandatory Finding Format

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.


Upgrade Prompt

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-full skill.


Reference Files

© JeffLi1993, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts, references, assets) in seo-audit of JeffLi1993/seo-audit-skill.

  • SKILL.md
  • assets/report-template.html
  • references/REFERENCE.md
  • scripts/check-page.py
  • scripts/check-schema.py
  • scripts/check-site.py
  • scripts/fetch-page.py

Open the folder on GitHubat commit 523bdfb

Compare with similar skills

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.

SEO Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
SEO Audit this skillJeffLi1993/seo-audit-skill764—~4.4kAutomated safety check: PassMIT
Site ArchitectureAvdLee/RocketSimApp80411 repos~3.3kAutomated safety check: PassCustom licence
Hreflang and International SEOAgriciDaniel/claude-seo19k5 repos~3.4kAutomated safety check: PassMIT
Google SEO APIsAgriciDaniel/claude-seo19k1 repos~4.2kAutomated safety check: PassMIT
Evaluate Skillevery-app/open-seo23k—~1.8kAutomated safety check: NotesMIT
FLOW SEO FrameworkAgriciDaniel/claude-seo19k2 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Site Architecture

    AvdLee/RocketSimApp

    When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking.

    804 GitHub starsUsed in 11 repos~3.3k tokens
    Marketing & SEOAuto-check passed
  • Hreflang and International SEO

    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.

    19k GitHub starsUsed in 5 repos~3.4k tokens
    Marketing & SEOAuto-check passed
  • Google SEO APIs

    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.

    19k GitHub starsUsed in 1 repo~4.2k tokens
    Marketing & SEOAuto-check passed
  • Evaluate Skill

    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.

    23k GitHub stars~1.8k tokensUpdated yesterday
    Marketing & SEOAuto-check: notes
  • FLOW SEO Framework

    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.

    19k GitHub starsUsed in 2 repos~1.4k tokens
    Marketing & SEOAuto-check passed
  • GEO-First SEO Audit Tool

    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.

    11k GitHub stars~2.8k tokensUpdated today
    Marketing & SEOAuto-check: notes

More from JeffLi1993/seo-audit-skill

  • SEO Audit Full

    JeffLi1993/seo-audit-skill

    Advanced full SEO audit skill. An agent skill from JeffLi1993/seo-audit-skill.

    764 GitHub stars~4.8k tokensUpdated 3 mo ago
    Auto-check passed

Categories

Questions about SEO Audit

What does SEO Audit do?

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.

When should I use SEO Audit?

SEO Audit fits situations like: the user asks for SEO audit; check my page SEO; wants a first-pass review of a URL.

How do I install SEO Audit in Claude Code?

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.

How do I install SEO Audit in Codex?

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.

Can I use SEO Audit in Cursor, Gemini CLI or GitHub Copilot?

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.

What does SEO Audit need to run?

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.

Does SEO Audit access the network?

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.

Is SEO Audit safe to install?

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.

What licence does SEO Audit use?

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.

How many tokens does SEO Audit use?

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.

What are the alternatives to SEO Audit?

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.

Who maintains SEO Audit?

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.