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.
Advanced full SEO audit skill. An agent skill from JeffLi1993/seo-audit-skill.
$ npx skills add JeffLi1993/seo-audit-skill --skill seo-audit-full -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit-full --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-full .claude/skills/seo-audit-full && 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-full" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit-full into .claude/skills/seo-audit-full/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit-full", 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-audit-fullType 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-full -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit-full --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-full .agents/skills/seo-audit-full && 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-full" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit-full into .agents/skills/seo-audit-full/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit-full", 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-full -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit-full --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-full .cursor/skills/seo-audit-full && 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-full" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit-full into .cursor/skills/seo-audit-full/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit-full", 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-full--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-full -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JeffLi1993/seo-audit-skill seo-audit-full --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-full .gemini/skills/seo-audit-full && 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-full" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit-full into .gemini/skills/seo-audit-full/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit-full", 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-audit-fullInstalls 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-full -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-full .github/skills/seo-audit-full && 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-full" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit-full into .github/skills/seo-audit-full/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit-full", 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-full -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-full --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-full .opencode/skills/seo-audit-full && 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-full" agent skill from https://github.com/JeffLi1993/seo-audit-skill/tree/main/seo-audit-full into .opencode/skills/seo-audit-full/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-audit-full", 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-audit-fullAdvanced full SEO audit skill. An agent skill from JeffLi1993/seo-audit-skill.
SEO Audit Full is an agent skill from JeffLi1993/seo-audit-skill. Advanced full SEO audit skill. Runs its own full workflow from local scripts, including the basic SEO checks plus PageSpeed, social metadata, and advanced review modules when available.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts, reference files and assets (for example `references/REFERENCE.md`, `scripts/check-page.py` and `scripts/check-pagespeed.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.
2 steps, taken from the step headings 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 6 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.
Hosts in commands or code, which the agent is likely to contact:
developers.google.compagespeed.web.devFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PAGESPEED_API_KEYGOOGLE_PAGESPEED_API_KEYUSER_PROVIDED_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
SEO Audit Full loads about 4.8k tokens when it runs, and up to ~7k if it reads all its reference files. Until then it costs about 50 tokens; SKILL.md has 1,822 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,822 words, ~4,791 tokens.
.claude/skills/seo-audit-full/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.This skill runs a full single-page SEO audit from the seo-audit-full directory.
It does not route to seo-audit when only a URL is provided.
Use seo-audit-full when the user asks for:
URL-only requests are valid. When external datasets are not supplied, run the full public-signal workflow and clearly note missing data sources in the report.
| Input | Required | Notes |
|---|---|---|
| Page URL | Yes | The primary page to audit |
| Primary keyword | Recommended | Improves content relevance scoring |
| PageSpeed API key | Yes | Required for full audit PageSpeed checks. Ask at the start and do not run PageSpeed without it. |
| Raw HTML or page content | Optional | Enables more accurate content checks when supplied |
| GSC / crawl / analytics data | Optional | Include when supplied, otherwise mark unavailable |
| Competitor benchmark data | Optional | Include when supplied |
At the start of a full audit, ask the user for a PageSpeed Insights API key:
For PageSpeed checks, please provide a Google PageSpeed Insights API key.
Get one here: https://developers.google.com/speed/docs/insights/v5/get-started
Open "Acquiring and using an API key" → "Get a Key".
If you do not provide one, I will stop before running the full audit because
PageSpeed is a required full-audit module.Do not run seo-audit-full PageSpeed checks without a PageSpeed API key supplied
by --api-key, PAGESPEED_API_KEY, or GOOGLE_PAGESPEED_API_KEY. If the key is
missing, stop and ask the user to configure it instead of rendering a full report
with missing PageSpeed data.
┌─────────────────────────────────────────────────────────────┐
│ seo-audit-full Workflow │
│ │
│ Phase 1: Run core scripts (./scripts/) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ check-site.py → robots.txt, sitemap, 404, URL │ │
│ │ check-page.py → title, H1, meta desc, slug │ │
│ │ check-schema.py → JSON-LD validation │ │
│ │ fetch-page.py → raw HTML for analysis │ │
│ └──────────────────────────────────────────────────────┘ │
│ ↓ │
│ Phase 2: Run performance + full-only scripts (./scripts/) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ check-pagespeed.py → Lighthouse scores + metrics │ │
│ │ check-social.py → OG Tags + Twitter Card │ │
│ │ (more scripts added here as modules grow) │ │
│ └──────────────────────────────────────────────────────┘ │
│ ↓ │
│ Phase 3: LLM-only advanced checks │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ E-E-A-T content quality scoring │ │
│ │ Duplicate content signals │ │
│ │ Anchor text quality assessment │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘Produce an Advanced Full 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>-full-audit.html
https://example.com/blog/best-tools → reports/example-com-blog-best-tools-full-audit.html
https://example.com/ → reports/example-com-full-audit.htmlAfter saving, tell the user:
✅ Full Report saved → reports/example-com-full-audit.html
Open it now? (yes / no)If yes → run: open reports/example-com-full-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 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> |
{{pagespeed_checks_html}} | Full PageSpeed module using check-pagespeed.py output |
{{site_checks_html}} | Site-level check tables |
{{eeat_checks_html}} | E-E-A-T trust page table |
{{page_checks_html}} | Page-level check tables, including full-only additions |
{{priority_actions_html}} | Ordered priority action list |
{{insights_html}} | Optional finding walkthrough cards |
Run full scripts from this directory. All output is structured JSON — use it directly as evidence.
Dependencies: pip install requests
# 1. site-level checks (robots.txt + sitemap.xml + 404 + URL canonicalization)
python scripts/check-site.py https://example.com
# 2. page-level checks (H1, title, meta description, canonical, URL slug)
python scripts/check-page.py https://example.com --keyword "primary keyword"
# 3. fetch raw HTML for downstream scripts
python scripts/fetch-page.py https://example.com --output /tmp/page.html
# 4. JSON-LD schema validation
python scripts/check-schema.py --file /tmp/page.html# 5. PageSpeed / Lighthouse checks
python scripts/check-pagespeed.py https://example.com --strategy mobile --timeout 180 --api-key "USER_PROVIDED_KEY"
# If no key was provided, do not run this command. Ask the user to configure a PageSpeed API key first.
# 6. Social tags: OG + Twitter Card validation
python scripts/check-social.py --file /tmp/page.html
# Or directly from URL:
python scripts/check-social.py https://example.comEach script exits with code 0 (all pass/warn) or 1 (any fail/error).
PageSpeed can take 200 seconds. Use a 180-second timeout by default. If it
still times out, mark the Page Speed module as error and state that the
PageSpeed API timed out; do not treat that as confirmed page performance failure.
If PageSpeed fails because Google returns a quota/API-key error after a key was
provided, keep the audit running and render the PageSpeed module as error with
this instruction:
Get a PageSpeed API key at https://developers.google.com/speed/docs/insights/v5/get-started → "Acquiring and using an API key" → "Get a Key".
Full runs its own core checks plus the full-only items marked ★ below.
{{site_checks_html}})Core checks:
Staging Subdomain Indexation rules:
test., staging., dev., preview., beta., uat.noindex, or a blocking robots.txt.noindex, or Disallow: /.test.example.com and www.example.com as separate but near-identical URLs, splitting ranking signals and competing with the production site.User-agent: * + Disallow: /; add page-level noindex if pages can still be accessed.Sitemap URL Inventory rules:
{{site_checks_html}}, before the Crawlability table.check-site.py sitemap_inventory output to summarize first-level directories, URL counts, inferred page types, and one representative example URL.info unless sitemap URLs cannot be parsed; do not penalize a site for having many or few URLs in a directory without deeper evidence./blog/, /tools/, /alternatives/, /templates/, or /use-cases/.{{pagespeed_checks_html}})Full-only:
{{eeat_checks_html}})Core checks:
Contact logic (Contact row only):
/contact page is not required/contact alone is not a fail when About or footer/nav already expose contact infoE-E-A-T infrastructure rules — two layers per trust page:
| Page | Required |
|---|---|
| About Us | Yes |
| Contact | Yes — dedicated page optional; About or footer/nav contact details satisfy this |
| Privacy Policy | Yes |
| Terms of Service | Yes |
| Media / Partners | No — include only if present |
Status rules (About, Privacy, Terms, Media/Partners):
Contact-specific rules:
/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{{page_checks_html}}), output in this exact order:Core checks: URL Slug · Title Tag · Meta Description · H1 Tag · Canonical Tag · Image Alt Text · Word Count · Keyword Placement · Heading Structure · Internal Links · Schema (JSON-LD)
Schema (JSON-LD) rules:
@type, required fields, recommended rich-result fields, nested fields, and primary-type conflicts.inLanguage, or localized schema cannot be fully confirmed.inLanguage, language-specific headline/description where present, and url / mainEntityOfPage pointing to the current localized canonical URL.★ Full-only additions:
Same rules across full audit modules — map each field's status directly to the report check table:
status → pass / warn / fail / error → badge in reportdetail → starting point for Evidence lineFor check-site.py output:
staging_subdomains.status → Staging Subdomain Indexation row statusstaging_subdomains.detail → Staging Subdomain Indexation row detailstaging_subdomains.public_hosts → evidence for public staging/test hostsstaging_subdomains.similar_hosts → fail evidence for production-like staging duplicatesrobots.status → robots.txt row statussitemap.status → sitemap.xml row statussitemap_inventory.status → Sitemap URL Inventory module statussitemap_inventory.directories[] → table rows with path, url_count, page_type, and example_urlsitemap_inventory.detail → short explanatory note below the inventory tableFor check-schema.py output:
status → Schema (JSON-LD) row statusdetail → Schema (JSON-LD) row detailparse_errors → fail evidence for malformed JSON-LDschemas[].fields_missing → fail evidence for missing required schema fieldsschemas[].recommended_missing and schemas[].nested_issues → warning evidencelocalized_schema.status → language/URL alignment status for multilingual schemalocalized_schema.issues → evidence for schema language or URL mismatchFor check-social.py output:
og.status → OG Tags row statustwitter_card.status → Twitter Card row statusog.fields.* → individual field details for the detail celltwitter_card.fields.* → individual field details, note fallback fieldsFor check-pagespeed.py output:
status → overall Page Speed statuscategory_status → Lighthouse Scores badge statusmetric_status → Core Lab Metrics badge statusfinal_url → Final URL linecategories.performance.score → Performance scorecategories.accessibility.score → Accessibility scorecategories["best-practices"].score → Best Practices scorecategories.seo.score → SEO scorecompact_metrics.fcp.display_value → FCPcompact_metrics.lcp.display_value → LCPcompact_metrics.tbt.display_value → TBTcompact_metrics.cls.display_value → CLScompact_metrics.si.display_value → Speed Indexscreenshot truthy → Screenshot availableDo not use overall status for the Lighthouse Scores badge. Category scores use
Lighthouse thresholds: 90–100 pass, 50–89 warn, 0–49 fail. Example: Performance
60, Accessibility 84, Best Practices 100, SEO 100 means category_status is
warn. If LCP or Speed Index fails, metric_status and overall status may be
fail while the Lighthouse Scores panel remains warn.
Inside {{pagespeed_checks_html}}, include a short Priority Actions list after
the score/metric cards. Keep it to 2–4 concise items based on failing or warning
PageSpeed fields:
Always include the official diagnostic link:
https://pagespeed.web.dev/
Resolve every llm_review_required: true field before writing the report:
H1 semantic judgment, Title keyword position, URL Slug evaluation, and Meta
Description quality must all receive an explicit judgment.
OG Tags quality (always review):
og:title : Does it differ meaningfully from <title>? It should be optimized for social sharing.
og:description : Is it compelling for social feeds? Different focus than meta description is OK.
og:image : Is the URL an actual image path (not a page URL)?Twitter Card completeness:
If twitter:card is "summary_large_image", twitter:image (or og:image fallback) must be
at least 300x157px. Flag if the image URL looks like a small icon or favicon.reports/<hostname>-<slug>-full-audit.htmlUse strict formatting:
Pass → one short phrase. No lists, no elaboration.
Warn → one <div class="detail-issue"> with ≤2 bullet points. One <div class="detail-fix">.
Fail → same as Warn. Lead with the exact failure.
**Finding: [Finding Title]**
- **Evidence:** [Observable fact, data point, or marked assumption]
- **Impact:** [SEO / UX consequence]
- **Fix:** [Actionable recommendation with example]For Priority Actions, add effort/impact tags:
1. [High Impact / Low Effort] Fix og:image — social shares currently show no preview.© 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 8 other files (scripts, references, assets) in seo-audit-full of JeffLi1993/seo-audit-skill.
Open the folder on GitHubat commit 523bdfb
SEO Audit Full 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 Full this skillJeffLi1993/seo-audit-skill | 764 | — | ~4.8k | Automated safety check: Pass | MIT | |
| 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 | |
| GEO-First SEO Audit Toolzubair-trabzada/geo-seo-claude | 11k | — | ~2.8k | Automated safety check: Notes | MIT |
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.
zubair-trabzada/geo-seo-claude
Compares a baseline and a current GEO audit for a client, calculates score changes and action item progress, and writes a monthly progress report.
JeffLi1993/seo-audit-skill
An SEO agent skill for quick, lightweight, default single-page SEO audits.
Categories
Advanced full SEO audit skill. An agent skill from JeffLi1993/seo-audit-skill. SEO Audit Full is an agent skill from JeffLi1993/seo-audit-skill. Advanced full SEO audit skill.
SEO Audit Full fits situations like: tasks that involve SEO audit.
Run `npx skills add JeffLi1993/seo-audit-skill --skill seo-audit-full -a claude-code`. Or copy the skill folder (seo-audit-full in JeffLi1993/seo-audit-skill) into .claude/skills/seo-audit-full in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JeffLi1993/seo-audit-skill --skill seo-audit-full -a codex`. Or copy the skill folder (seo-audit-full in JeffLi1993/seo-audit-skill) into .agents/skills/seo-audit-full 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-full -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-full, .gemini/skills/seo-audit-full, .github/skills/seo-audit-full and .opencode/skills/seo-audit-full in your project.
Going by SKILL.md and its folder, SEO Audit Full needs Python for the scripts in its folder, the command-line tools its instructions call (python and pip) and credentials named PAGESPEED_API_KEY, GOOGLE_PAGESPEED_API_KEY and USER_PROVIDED_KEY. Our summary lists: Python 3; A credential in PAGESPEED_API_KEY; A credential in GOOGLE_PAGESPEED_API_KEY.
SKILL.md names 2 domains. In commands or code: developers.google.com and pagespeed.web.dev; the agent is likely to contact these when it follows the instructions. 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 Full 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.8k tokens (SKILL.md is roughly 19k 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 2.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with SEO Audit Full: Hreflang and International SEO (AgriciDaniel/claude-seo, 19k stars), Google SEO APIs (AgriciDaniel/claude-seo, 19k stars), Evaluate Skill (every-app/open-seo, 23k stars) and FLOW SEO Framework (AgriciDaniel/claude-seo, 19k 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.