seo-audit
Skill6 starsChanged 8 months agoMITView on GitHub
Audit on-page SEO issues in source code files (HTML, JSX, TSX, Next.js pages) and produce a structured markdown report with findings and fix suggestions. Use this skill whenever the user mentions SEO, search engine optimization, meta tags, title tags, meta descriptions, heading structure, keyword optimization, image alt text for SEO, internal linking, Open Graph tags, or wants to improve their site's search ranking. Also trigger when the user asks about on-page SEO best practices, wants to check if their pages are SEO-friendly, or mentions Google indexing concerns related to their source code.
185 other projects use a version of this.
Adopted by
Most recently taken up by
- serejaris/personal-corp-ostheir own version, first seen Nov 15, 2026
- vercel/evetheir own version, first seen Nov 15, 2026
- compozy/compozytheir own version, first seen Nov 13, 2026
- theexperiencecompany/gaiatheir own version, first seen Nov 13, 2026
- vercel-labs/marketing-team-eve-templatetheir own version, first seen Nov 12, 2026
- umutxyp/Seo-Promt-Mastertheir own version, first seen Nov 11, 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★ 61ksame name
- anthropics/knowledge-work-plugins★ 36ksame name
- AgriciDaniel/claude-seo★ 30ksame name
- every-app/open-seo★ 27ksame name
- trycompai/crm★ 12ksame name
- Ryze-AI-Adgent/open-seo-mcp-skills★ 8.4ksame name
- TheCraigHewitt/seomachine★ 7.5ksame name
- vercel/eve★ 5.9ksame name
- legions-developer/evilcharts★ 3.2ksame name
- MaxMiksa/Auto-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 repository20 other files it gives its agents.
- a11y-auditSkill
- design-an-interfaceSkill
- edit-articleSkill
- find-skillsSkill
- grill-meSkill
- improve-codebase-architectureSkill
- nextjs-architectSkill
- perf-optimizerSkill
- prd-to-issuesSkill
- react-patternsSkill
- request-refactor-planSkill
- solana-devSkill
- tddSkill
- triage-issueSkill
- write-a-prdSkill
- write-a-skillSkill
- docxSkill
- frontend-designSkill
- mcp-builderSkill
- skill-creatorSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 4 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 165 edited versions we read keep these.
4
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 12
Identify the files to audit: If the user points to specific files, use those.
- Distinctive: line 57
Why it matters: Search engines use heading hierarchy to understand page structure and topic importance.
- Very specific: line 108
Look for JSON-LD (<script type="application/ld+json">), microdata, or RDFa.
- Distinctive: line 111
Not a hard requirement, but note if the page type would benefit from structured data (e.g., product pages, articles, FAQs, recipes, events)
- Distinctive: line 112
If structured data exists, check for obvious issues like missing required fields
- Distinctive: line 158
When auditing a whole site (multiple page files), add a summary table at the top:
- Very specific: line 177
When auditing Next.js App Router projects, be aware of:
“Common” is measured: kept by at least 6 in 10 of the 165 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
On-Page SEO Audit
Analyze source code files for on-page SEO issues and produce a clear, actionable markdown report. The goal is to catch real problems that hurt search rankings — not to nitpick or generate noise.
How to run an audit
- Identify the files to audit. If the user points to specific files, use those. If they say "audit my site" or similar, look for page-level files — things like
index.html, Next.js pages (app/**/page.tsx,pages/**/*.tsx), or layout files. Use Glob to find them. - Read each file and check against the checklist below.
- Produce the report in the format described at the bottom.
What to check
Work through each section for every page file. Not every check applies to every file — use judgment. A shared <Header> component won't have a <title> tag, and that's fine.
Title tag
The <title> element (or metadata.title in Next.js) is the single most important on-page SEO signal.
Check for:
- Missing title entirely
- Title that's too short (under 20 characters) or too long (over 60 characters) — search engines truncate long titles
- Generic/meaningless titles like "Home", "Page", "Untitled", or the framework default
- Duplicate titles across pages (if auditing multiple pages)
Why it matters: The title tag is displayed as the clickable headline in search results. A clear, descriptive title with relevant keywords directly affects click-through rate and ranking.
Meta description
The <meta name="description"> tag (or metadata.description in Next.js).
Check for:
- Missing entirely — search engines will auto-generate one, but it's usually worse
- Too short (under 50 characters) or too long (over 160 characters)
- Doesn't summarize the page content or include relevant keywords
- Duplicate descriptions across pages
Why it matters: While not a direct ranking factor, the meta description appears as the snippet in search results and heavily influences click-through rate.
Heading structure
The hierarchy of <h1> through <h6> tags.
Check for:
- Missing
<h1>— every page should have exactly one - Multiple
<h1>tags on the same page - Skipped heading levels (e.g.,
<h1>followed by<h3>with no<h2>) - Empty headings or headings with only icons/images
- Headings used purely for styling rather than structure (hard to detect in code, but flag if obvious)
Why it matters: Search engines use heading hierarchy to understand page structure and topic importance. A clean heading outline helps crawlers identify what the page is about.
Image alt text
The alt attribute on <img> tags and Next.js <Image> components.
Check for:
- Missing
altattribute entirely (different fromalt=""which is intentional for decorative images) - Very generic alt text like "image", "photo", "picture", "screenshot", "img1"
- Alt text that's just the filename (e.g., "IMG_2847.jpg", "hero-banner.png")
- Excessively long alt text (over 125 characters) — keep it concise
- Images that appear to be content-relevant but have
alt=""
Why it matters: Image alt text helps search engines understand image content, enables image search traffic, and is also an accessibility requirement. Good alt text describes what the image shows in context.
Internal links
Links between pages within the site.
Check for:
- Pages with no internal links pointing to other pages (orphan pages)
- Links using non-descriptive anchor text like "click here", "read more", "learn more", "link" — the anchor text should describe the destination
- Broken-looking links (relative paths that seem wrong,
href="#",href="",javascript:void(0)) - Important pages that are deeply nested (many clicks from the home page)
Why it matters: Internal links distribute page authority and help search engines discover and understand the relationship between pages. Descriptive anchor text tells crawlers what the linked page is about.
Open Graph & social meta tags
<meta property="og:*"> and <meta name="twitter:*"> tags.
Check for:
- Missing
og:title,og:description,og:image— these control how the page appears when shared on social media og:imagepointing to a path that might not resolve (relative paths without a base URL)- Missing
twitter:cardif the site is likely shared on X/Twitter
Why it matters: While not a direct Google ranking factor, social sharing drives traffic. Pages shared without proper OG tags look unprofessional and get fewer clicks.
Canonical URL
The <link rel="canonical"> tag.
Check for:
- Missing on pages that could have duplicate URLs (e.g., pages accessible with and without trailing slashes, with query parameters)
- Self-referencing canonical is fine and expected
- Canonical pointing to a different domain (flag as suspicious unless intentional)
Why it matters: Canonical tags prevent duplicate content issues by telling search engines which version of a page is the "official" one.
Structured data hints
Look for JSON-LD (<script type="application/ld+json">), microdata, or RDFa.
Check for:
- Not a hard requirement, but note if the page type would benefit from structured data (e.g., product pages, articles, FAQs, recipes, events)
- If structured data exists, check for obvious issues like missing required fields
Why it matters: Structured data enables rich snippets in search results (star ratings, FAQ dropdowns, product prices) which significantly boost click-through rate.
Report format
Structure the report as follows. Omit sections where nothing was found — a clean report is more useful than one padded with "no issues found" for every category.
# SEO Audit Report: [page name or file path]
## Summary
[1-2 sentences: overall SEO health and the most impactful issues to fix first]
## Critical Issues
[Issues that are very likely hurting search rankings right now]
### [Issue title]
- **File:** `path/to/file.tsx` (line X)
- **Problem:** [What's wrong]
- **Impact:** [Why this hurts SEO]
- **Fix:** [Specific suggestion, with code snippet if helpful]
## Warnings
[Issues that could be improved but aren't dealbreakers]
### [Issue title]
- **File:** `path/to/file.tsx` (line X)
- **Problem:** [What's wrong]
- **Impact:** [Why this matters]
- **Fix:** [Suggestion]
## Suggestions
[Nice-to-haves and optimizations]
- [Brief suggestion with rationale]Severity guidelines
- Critical: Missing title tag, missing h1, missing all alt text on content images, no meta description on key landing pages
- Warning: Title too long/short, generic alt text, non-descriptive link text, missing OG tags, skipped heading levels
- Suggestion: Adding structured data, improving meta description wording, adding canonical tags as a precaution
Auditing multiple pages
When auditing a whole site (multiple page files), add a summary table at the top:
# Site-Wide SEO Audit
## Overview
| Page | Critical | Warnings | Suggestions |
|------|----------|----------|-------------|
| `/` (home) | 1 | 3 | 2 |
| `/about` | 0 | 2 | 1 |
| `/blog/[slug]` | 2 | 1 | 3 |
## Page-by-page results
[Individual reports follow]Next.js-specific notes
When auditing Next.js App Router projects, be aware of:
- Metadata API: Title and meta description are often set via
export const metadataorgenerateMetadata()inpage.tsxorlayout.tsx, not as HTML tags. Check both. - Layouts:
<html>,<head>, and root structure live inlayout.tsx. A missing<h1>inpage.tsxisn't necessarily a problem if the layout provides it — but usually the page should have its own<h1>. - Image component: Next.js
<Image>requiresaltas a prop. If it's missing, it'll throw a build error — but check for empty strings (alt="") on content images. - Dynamic routes:
[slug]pages get their content at runtime, so the template might not have literal title/description text. Check thatgenerateMetadata()is implemented and uses the dynamic data. next/head: In Pages Router projects, metadata is set via<Head>fromnext/head. Check for this pattern too.
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.

