seo-audit
Skill1 starsChanged 7 months agoMITView on GitHub
Use when the user wants an SEO audit of a website — technical issues, on-page problems, Core Web Vitals, and (optionally) real GSC query data. Runs SE Ranking's website audit API, PageSpeed Insights, and optional Google Search Console, then writes a prioritized report.
- Reads credentials
185 other projects use a version of this.
Adopted by
Most recently taken up by
- nisarth/claude-skills-storetheir own version, first seen Nov 8, 2026
- alpit-patel/seo-aeo-geo-kittheir own version, first seen Nov 8, 2026
- foverse/seoversetheir own version, first seen Nov 8, 2026
- insight68/Skillstheir own version, first seen Nov 8, 2026
- figueroaignacio/ignaciofigueroa.devtheir own version, first seen Nov 8, 2026
- ftzi/livespectheir own version, first seen Nov 8, 2026
Used with
Projects with it also use openseo-review-web-content, openseo-release-notes and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JwuthriSkillopenseo-review-web-content
Write and review content for the OpenSEO website (web/) — blog posts, guides, feature pages, FAQs. Distills the philosophy for on-brand, useful, accurate content. Use whenever adding or editing user-facing prose in web/content or web/src.
Also in 5 projects that use this
JwuthriSkillopenseo-release-notes
Cut an OpenSEO release — bump the version, draft user-facing release notes from commits since the last tag, run a review + subagent-verification pass, and open a "release: vX.X.X" PR. Use when the user asks to prepare a release, bump the version, or write release notes.
Also in 6 projects that use this
nicepkgSkillcommunity-led-growth
Expert in community-led growth (CLG) - leveraging user communities to drive acquisition, retention, and expansion. Covers building developer communities, user groups, ambassador programs, and turning customers into advocates. Knows the difference between community as a feature vs community as a growth engine, and how to measure community ROI. Use when "community-led, CLG, ambassador program, champion program, user community, developer community, word of mouth, user group, " mentioned.
Also in 5 projects that use this
nicepkgSkillph-community-outreach
Engage Reddit, Indie Hackers, Hacker News and other communities for Product Hunt launches. Use this skill to identify relevant communities, craft appropriate posts, and drive cross-platform engagement without appearing spammy.
Also in 5 projects that use this
xfstudioSkillmicro-saas-launcher
Expert in launching small, focused SaaS products fast - the indie hacker approach to building profitable software. Covers idea validation, MVP development, pricing, launch strategies, and growing to sustainable revenue. Ship in weeks, not months. Use when: micro saas, indie hacker, small saas, side project, saas mvp.
Also in 5 projects that use this
akii-technologies-ltdSkillkeyword-clustering
Cluster and organize keywords into topical groups for SEO. Use when the user asks to "cluster keywords", "group keywords", "organize keywords", "keyword mapping", "topic clusters", "keyword grouping", "build a content plan", "pillar pages", "topical authority", "semantic clustering", or pastes a list of keywords.
Also in 12 projects that use this
- +4 more from nicepkg
- +2 more from Jwuthri
Other versions185 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 185
- coreyhaines31/marketingskills★ 59ksame name
- anthropics/knowledge-work-plugins★ 35ksame name
- every-app/open-seo★ 27ksame name
- AgriciDaniel/claude-seo★ 20ksame name
- trycompai/crm★ 12ksame name
- Ryze-AI-Adgent/open-seo-mcp-skills★ 8.4ksame name
- TheCraigHewitt/seomachine★ 7.5ksame name
- legions-developer/evilcharts★ 3.2ksame name
- MaxMiksa/Auto-Company★ 3.2ksame name
- MaxMiksa/Autonomous-Company★ 3.2ksame name
175 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- blog-postSkill
- competitor-analysisSkill
- content-briefSkill
- content-calendarSkill
- content-marketingSkill
- editorial-guidelinesSkill
- email-copySkill
- landing-page-copySkill
- proofreading-style-checkSkill
- publish-webflowSkill
- publish-wordpressSkill
- repurpose-linkedin-carouselSkill
- repurpose-threads-xSkill
- social-postSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 3 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 167 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 31
Use AskUserQuestion for target type (site/URL) and audit depth.
- Very specific: line 37
Read {SKILL_BASE}/../_shared/seo-best-practices.md — this is the checklist the report is scored against.
- Very specific: line 41
Create an audit task and poll until complete.
- Distinctive: line 71
If the expected status string doesn't match, don't hard-fail — treat any terminal non-running state as "done" and fall back to whatever …
- Distinctive: line 99
If credentials are set, pull last 28 days of data:
- Distinctive: line 131
Use GSC traffic data to weight severity when available.
“Common” is measured: kept by at least 6 in 10 of the 167 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SEO Audit
Produce a prioritized SEO audit report for a website or a single URL. Combines SE Ranking's audit API for crawl-level issues, PageSpeed Insights for Core Web Vitals, and optional Google Search Console data for real query performance.
Setup
Required:
SE_RANKING_API_KEY— SE Ranking API key with Website Audit access. Docs: https://seranking.com/api-documentation.html
Optional:
PAGESPEED_API_KEY— raises quota; the endpoint works keyless with lower limits.GSC_SERVICE_ACCOUNT_JSON— path to a Google service account key file with Search Console read access.GSC_SITE_URL— the verified property URL (e.g.sc-domain:example.com).FIRECRAWL_API_KEY— used to pull the target pages' rendered HTML for on-page checks the APIs don't cover (heading structure, schema presence, internal link map).
Inputs
- Target — full site (domain) or a single URL.
- Audit depth —
quick(home + top 5 URLs),standard(top 50),full(whole site, may take minutes). - Include GSC data? — Y/N. Default Y if credentials are set.
- Include PageSpeed data? — Y/N. Default Y.
Use AskUserQuestion for target type (site/URL) and audit depth.
Process
1. Load context
- Read
{SKILL_BASE}/../_shared/seo-best-practices.md— this is the checklist the report is scored against.
2. SE Ranking crawl
Create an audit task and poll until complete. SE Ranking offers two audit variants — pick standard for HTML-rendered sites and advanced for JS/SPA sites that need headless rendering.
POST https://api.seranking.com/v1/site-audit/audits/standard
Authorization: Token ${SE_RANKING_API_KEY}
Content-Type: application/json
{
"url": "<target>",
"pages_limit": <50 or full>,
"include_subdomains": false
}For JS-heavy sites:
POST https://api.seranking.com/v1/site-audit/audits/advancedPoll the audits list by domain until the audit status reaches a completed state:
GET https://api.seranking.com/v1/site-audit/audits?search={domain}Then fetch issues and per-URL breakdown (the issues endpoint is queried by audit and optionally by URL):
GET https://api.seranking.com/v1/site-audit/audits/issues?audit_id={id}
GET https://api.seranking.com/v1/site-audit/audits/issues?audit_id={id}&url_id={url_id}If the expected status string doesn't match, don't hard-fail — treat any terminal non-running state as "done" and fall back to whatever data is available.
Group issues into four severity buckets:
- Critical — blocks indexing or ranking (noindex on money pages, 5xx, broken canonicals, duplicate titles on key pages, missing H1).
- High — significant ranking impact (slow pages, missing meta descriptions, thin content, broken internal links).
- Medium — best-practice violations (missing alt text, long titles, non-canonical duplicates).
- Low — nice-to-have (opengraph tags, minor schema gaps).
3. PageSpeed Insights
For each URL in the audit sample (cap at 10 for quick, 25 for standard, 50 for full):
GET https://www.googleapis.com/pagespeedonline/v5/runPagespeed
?url=<url>&strategy=mobile&category=performance&category=seo&category=accessibility
[&key=${PAGESPEED_API_KEY}]Capture:
- LCP, INP (or FID), CLS, TTFB
- Performance score (0–100)
- SEO score (0–100)
- Top 3 opportunities per page
Desktop strategy: run only for pages where the user flagged desktop as critical.
4. Google Search Console (optional)
If credentials are set, pull last 28 days of data:
- Query-level: top 100 queries by clicks, their impressions, CTR, avg position.
- Page-level: top 50 landing pages by clicks with the same dimensions.
- Declining queries: same data for the previous 28 days; flag queries with >20% click or position drop.
- Striking distance: queries with avg position 8–20 (quick wins — near page 1 or top of page 2).
5. On-page deep dive (optional, Firecrawl)
For the top 10 pages by traffic (from GSC) or by importance (home, pricing, top landing pages — if no GSC):
Scrape each via Firecrawl and check:
- H1 count and content
- Heading hierarchy (no skips)
- Meta title and description length
- Schema types present
- Internal link count (inbound from the sample) and anchor text variety
- Outbound link count
- Image count vs. image alt count
- Word count
Cross-reference findings with the seo-best-practices.md rules.
6. Score and prioritize
Compute an overall score (0–100) as weighted average:
- SE Ranking health score (40%)
- PageSpeed average performance score (30%)
- On-page compliance rate (20%)
- GSC striking distance opportunities (10%)
Build the prioritized fix list. Sort by (severity × traffic impact / effort):
- Use GSC traffic data to weight severity when available.
- Without GSC, weight home and top-nav pages higher than long-tail content.
7. Write the report
Write two files:
audits/<date>-<domain>.md— the readable reportaudits/<date>-<domain>.raw.json— all raw API responses, for future diffs
Report template:
# SEO Audit — {domain}
_Run: {YYYY-MM-DD}_
_Depth: {quick/standard/full}_
_Pages analyzed: {n}_
## Overall score: {n}/100
- SE Ranking health: {n}/100
- PageSpeed performance (avg mobile): {n}/100
- On-page compliance: {n}%
- Striking-distance opportunities: {n}
## TL;DR — top 10 actions
| # | Action | Severity | Estimated impact | Estimated effort |
|---|---|---|---|---|
| 1 | {action} | Critical | High | Low |
## Critical issues
### {issue name} — {n} pages affected
- **Why it matters:** {1 line}
- **Affected pages:** {first 5 + "…and N more"}
- **Fix:** {concrete instruction}
{repeat}
## High-severity issues
{same structure}
## Medium / low
{summarized table}
## Core Web Vitals
| Page | LCP | INP | CLS | Perf score | Top opportunity |
|---|---|---|---|---|---|
| / | 2.1s | 180ms | 0.05 | 78 | {…} |
## Google Search Console (last 28 days)
- **Top queries by clicks:** {top 10}
- **Declining queries (>20% drop):** {list}
- **Striking distance (pos 8–20):** {list with current pos and potential}
## On-page deep dive
{per-page findings for top 10}
## Appendix
- Raw data: `audits/<date>-<domain>.raw.json`
- Next audit recommended: {date + 30}8. Print summary
One block: overall score, number of criticals, number of striking-distance opportunities, report path.
Fallbacks
- SE Ranking unavailable: fall back to a Firecrawl-driven crawl of up to 25 pages + on-page rules only. Note that crawl-level issues (sitemap, robots, server errors) can't be scored. Report that clearly.
- PageSpeed rate limited: retry once with backoff; if still failing, skip and note.
- No GSC: skip query/page data, note in the report. Use importance-based prioritization instead of traffic-weighted.
- Audit task never finishes: save partial results and flag which steps didn't complete.
Verification
- Both files exist under
audits/. - Report contains all main sections or explicit notes on any that were skipped.
- TL;DR table has ≥1 action.
- Raw JSON file contains responses from every API that was called.
- Running the skill again in 30 days against the same domain should allow diffing the two raw JSON files to produce a progress delta.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

