Claude-rank rank-audit
Full SEO/GEO/AEO/Citability/Content/Performance/Vertical/Security audit with auto-fix. Scans, reports, fixes, and verifies.
git clone https://github.com/Houseofmvps/claude-rank
T=$(mktemp -d) && git clone --depth=1 https://github.com/Houseofmvps/claude-rank "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/rank-audit" ~/.claude/skills/houseofmvps-claude-rank-rank-audit && rm -rf "$T"
skills/rank-audit/SKILL.mdFull Audit
Comprehensive search optimization audit across 8 dimensions. Finds issues AND fixes them.
Phase 1: Parallel Scan
Run all eight scanners:
node ${CLAUDE_PLUGIN_ROOT}/tools/seo-scanner.mjs <project-directory> node ${CLAUDE_PLUGIN_ROOT}/tools/geo-scanner.mjs <project-directory> node ${CLAUDE_PLUGIN_ROOT}/tools/aeo-scanner.mjs <project-directory> node ${CLAUDE_PLUGIN_ROOT}/tools/citability-scorer.mjs <project-directory> node ${CLAUDE_PLUGIN_ROOT}/tools/content-analyzer.mjs <project-directory> node ${CLAUDE_PLUGIN_ROOT}/tools/perf-scanner.mjs <project-directory> node ${CLAUDE_PLUGIN_ROOT}/tools/vertical-scanner.mjs <project-directory> node ${CLAUDE_PLUGIN_ROOT}/tools/security-scanner.mjs <project-directory>
Parse JSON output from each for findings and scores.
Phase 2: Report
Present findings grouped by all 8 categories with severity.
Show scores table:
| Category | Score |
|---|---|
| SEO | -- |
| GEO | -- |
| AEO | -- |
| Citability | -- |
| Content | -- |
| Performance | -- |
| Vertical | -- |
| Security | -- |
| Overall | -- |
Show summary: X critical, Y high, Z medium, W low across all categories.
Phase 3: Auto-Fix
For each finding, apply the appropriate fix:
SEO fixes (Edit tool on HTML files):
- Missing title → add
in<title><head> - Missing meta description → add
<meta name="description"> - Missing OG tags → generate from page content
- Missing H1 → add heading from page content
- Missing alt text → add descriptive alt attributes
- Missing canonical → add
<link rel="canonical"> - Missing sitemap → run:
node ${CLAUDE_PLUGIN_ROOT}/tools/sitemap-analyzer.mjs generate <dir> <url> - Missing robots.txt → run:
node ${CLAUDE_PLUGIN_ROOT}/tools/robots-analyzer.mjs generate <dir> <url>
GEO fixes:
- Missing llms.txt → run:
node ${CLAUDE_PLUGIN_ROOT}/tools/llms-txt-generator.mjs <dir> - Missing structured data → run:
node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs generate <type> --out=<path> - Blocked AI bots → update robots.txt to allow GPTBot, PerplexityBot, ClaudeBot, Google-Extended
- Improve content structure: add question-based H2s, TL;DR summaries, definition patterns
AEO fixes:
- Missing FAQ schema → generate FAQPage from Q&A content on page
- Missing speakable → add speakable schema for key content sections
- Snippet optimization → restructure answers to 40-60 word direct answers
Performance fixes:
- Missing image dimensions → add
andwidth
attributes to allheight
tags<img> - Render-blocking scripts → add
orasync
to third-partydefer
tags<script> - Font display issues → add
tofont-display: swap
declarations@font-face - Lazy loading → add
to below-fold imagesloading="lazy" - LCP priority → add
to the LCP image (hero/above-fold)fetchpriority="high" - Missing preconnect → add
hints for third-party origins (fonts, CDNs, analytics)<link rel="preconnect">
Security fixes:
- Missing CSP → add
in<meta http-equiv="Content-Security-Policy" content="..."><head> - Missing referrer policy → add
<meta name="referrer" content="strict-origin-when-cross-origin"> - Unsafe target="_blank" → add
to allrel="noopener noreferrer"
linkstarget="_blank" - Unsandboxed iframes → add
attribute tosandbox
elements<iframe> - Mixed content → fix
URLs tohttp://
in src, href, and content attributeshttps://
Content fixes:
- Long paragraphs → break up paragraphs longer than 150 words into smaller chunks
- Complex sentences → simplify sentences with Flesch-Kincaid grade level > 12
- Passive voice → rewrite passive voice constructions to active voice
Vertical fixes:
- Missing Product schema → add Product JSON-LD for e-commerce product pages
- Missing LocalBusiness schema → add LocalBusiness JSON-LD with business details
- Missing NAP data → add Name, Address, Phone in structured data and visible on page
- Missing opening hours → add
to LocalBusiness schemaopeningHoursSpecification
Phase 4: Verify
Re-run all eight scanners. Show before/after score comparison for each category.
Phase 5: Save History
node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> seo <score> node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> geo <score> node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> aeo <score> node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> citability <score> node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> content <score> node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> performance <score> node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> vertical <score> node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> security <score>
Phase 6: Content Strategy
Advise on content optimizations the scanner cannot automate:
- Rewrite H2 headers as questions for AI citation
- Add concise TL;DR summaries under key sections
- Write in citation-ready format: factual, quotable, 134-167 word passages
- Create comparison tables, statistics pages, glossaries
Phase 7: Backlink Strategy
Guide link building: create link-worthy assets, guest posting, broken link building, digital PR, expert roundups.
Phase 8: Search Console Action Plan
After fixing issues, guide the user through submitting their improved site to search engines.
Google Search Console (GSC)
- Submit Sitemap — GSC → Sitemaps → Enter
→ Submitsitemap.xml - Request Indexing for Money Pages — URL Inspection → paste each fixed page → Request Indexing (10-12/day limit, prioritize homepage, pricing, top landing pages)
- Check Index Coverage — Pages → review "Not indexed" list. "Crawled - currently not indexed" = needs content/links. "Discovered - currently not indexed" = needs internal links.
- Validate Robots.txt — Settings → Crawling → verify AI bots are unblocked
- Check Rich Results — Enhancements → review schema types. Test with Rich Results Test.
- Monitor Core Web Vitals — Experience → Core Web Vitals → fix "Poor" URLs (LCP, CLS, INP)
Bing Webmaster Tools
- Submit Sitemap — Configure Sitemaps → submit sitemap.xml URL
- Submit URLs — URL Submission → submit top pages (10,000/day limit)
- Enable IndexNow — Generate key at indexnow.org → place key file at domain root. Feeds Bing, Yandex, Seznam.
- Verify Robots.txt — Configure My Site → Block URLs → Robots.txt Tester. Bingbot feeds Copilot and ChatGPT Browse.
AI Search Verification
- Test AI Visibility (2-4 weeks after deploy) — search brand + keywords in ChatGPT, Perplexity, Gemini, Google AI Overviews
- Verify llms.txt — confirm
returns contenthttps://yourdomain.com/llms.txt - Monitor AI Citations Weekly — track which pages get cited vs competitors in Perplexity and ChatGPT
Phase 9: Next Steps
Recommend which
/claude-rank sub-commands to run next based on lowest scores. Prioritize by score:
- If SEO < 60, run
for detailed on-page analysis/claude-rank:rank-seo - If GEO < 60, run
for AI visibility deep-dive/claude-rank:rank-geo - If AEO < 60, run
for snippet and voice optimization/claude-rank:rank-aeo - If Citability < 50, run
for detailed per-page citation breakdown across all 7 dimensions/claude-rank:rank-citability - If Content < 50, run
for readability analysis and thin page identification/claude-rank:rank-content - If Performance < 50, run
for CLS/LCP/blocking resource analysis/claude-rank:rank-performance - If Vertical < 50, run
for industry-specific schema and optimization/claude-rank:rank-vertical - If Security < 50, run
for header analysis and CSP configuration/claude-rank:rank-security
Present the user with a prioritized action checklist ordered by impact (lowest scores first).