@houseofmvps/claude-rank 1.7.2 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +148 -27
- package/agents/citability-auditor.md +93 -0
- package/agents/content-auditor.md +102 -0
- package/agents/performance-auditor.md +107 -0
- package/agents/security-auditor.md +116 -0
- package/agents/vertical-auditor.md +101 -0
- package/bin/claude-rank.mjs +79 -15
- package/commands/rank-citability.md +23 -0
- package/commands/rank-content.md +22 -0
- package/commands/rank-perf.md +26 -0
- package/commands/rank-security.md +26 -0
- package/commands/rank-vertical.md +18 -0
- package/llms.txt +33 -9
- package/package.json +9 -2
- package/skills/rank/SKILL.md +5 -2
- package/skills/rank-audit/SKILL.md +81 -83
- package/tools/aeo-scanner.mjs +5 -3
- package/tools/brief-generator.mjs +438 -0
- package/tools/citability-scorer.mjs +235 -0
- package/tools/content-analyzer.mjs +631 -0
- package/tools/geo-scanner.mjs +177 -10
- package/tools/lib/formatter.mjs +911 -13
- package/tools/lib/html-parser.mjs +236 -0
- package/tools/lib/report-generator.mjs +317 -1
- package/tools/perf-scanner.mjs +216 -0
- package/tools/security-scanner.mjs +444 -0
- package/tools/seo-scanner.mjs +257 -1
- package/tools/vertical-scanner.mjs +326 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<img src="assets/hero-banner.png" alt="claude-rank — SEO/GEO/AEO Plugin for Claude Code" width="100%"/>
|
|
4
4
|
|
|
5
|
-
### The most comprehensive SEO/GEO/AEO plugin for Claude Code.
|
|
5
|
+
### The most comprehensive SEO/GEO/AEO plugin for Claude Code. 170+ rules. Competitive X-Ray. Auto-fix everything. Dominate search — traditional and AI.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@houseofmvps/claude-rank)
|
|
8
8
|
[](https://www.npmjs.com/package/@houseofmvps/claude-rank)
|
|
@@ -152,6 +152,8 @@ npx @houseofmvps/claude-rank geo ./my-project # AI search audit
|
|
|
152
152
|
npx @houseofmvps/claude-rank aeo ./my-project # Answer engine audit
|
|
153
153
|
npx @houseofmvps/claude-rank schema ./my-project # Structured data
|
|
154
154
|
npx @houseofmvps/claude-rank compete https://competitor.com . # Competitive X-Ray
|
|
155
|
+
npx @houseofmvps/claude-rank keyword ./my-project # Keyword clustering
|
|
156
|
+
npx @houseofmvps/claude-rank brief ./my-project "seo" # Content brief
|
|
155
157
|
npx @houseofmvps/claude-rank scan ./site --json # Raw JSON output
|
|
156
158
|
npx @houseofmvps/claude-rank scan ./site --report html # Agency-ready HTML report
|
|
157
159
|
npx @houseofmvps/claude-rank scan ./site --threshold 80 # CI/CD mode
|
|
@@ -188,13 +190,16 @@ That's not an SEO problem. That's a visibility problem across every search surfa
|
|
|
188
190
|
/claude-rank:rank-audit
|
|
189
191
|
```
|
|
190
192
|
|
|
191
|
-
One command.
|
|
193
|
+
One command. Ten scanners run in parallel — SEO, GEO, AEO, AI Citability, Content Intelligence, Keyword Clustering, Performance, Vertical SEO, Security, and Content Brief. 170+ rules checked. Every finding gets an automated fix. Score tracked over time. **Then it tells you exactly what to do in Google Search Console and Bing Webmaster Tools.**
|
|
192
194
|
|
|
193
195
|
```
|
|
194
|
-
SEO Score:
|
|
195
|
-
GEO Score:
|
|
196
|
-
AEO Score:
|
|
197
|
-
|
|
196
|
+
SEO Score: 87/100 ████████████░░ (50 rules)
|
|
197
|
+
GEO Score: 92/100 █████████████░ (45 rules + E-E-A-T)
|
|
198
|
+
AEO Score: 78/100 ██████████░░░░ (12 rules)
|
|
199
|
+
Citability Score: 65/100 ████████░░░░░░ (7 dimensions)
|
|
200
|
+
Performance: 90/100 █████████████░ (16 rules)
|
|
201
|
+
Security: 80/100 ███████████░░░ (15 rules)
|
|
202
|
+
Overall: 86/100 READY TO RANK
|
|
198
203
|
```
|
|
199
204
|
|
|
200
205
|
**Score below 80?** Run `/claude-rank:rank-fix` and it auto-generates what's missing — robots.txt, sitemap.xml, llms.txt, JSON-LD schema — then re-scans to show your improvement.
|
|
@@ -203,29 +208,31 @@ Overall: 86/100 READY TO RANK
|
|
|
203
208
|
|
|
204
209
|
## What It Does
|
|
205
210
|
|
|
206
|
-
### SEO Scanner —
|
|
211
|
+
### SEO Scanner — 50 Rules
|
|
207
212
|
|
|
208
213
|
Traditional search optimization. The foundation.
|
|
209
214
|
|
|
210
215
|
| Category | What it checks |
|
|
211
216
|
|---|---|
|
|
212
217
|
| **Meta** | Title (length, uniqueness), meta description, viewport, charset, canonical URL, lang attribute |
|
|
213
|
-
| **Content** | H1 presence, heading hierarchy, word count, image alt text, thin content
|
|
214
|
-
| **Technical** | robots.txt, sitemap.xml, HTTPS, mobile-friendly viewport, analytics detection, redirect chain detection |
|
|
215
|
-
| **Structured Data** | JSON-LD presence, schema validation against Google's required fields (14 schema types) |
|
|
216
|
-
| **Cross-Page** | Duplicate titles
|
|
218
|
+
| **Content** | H1 presence, heading hierarchy, word count, image alt text, thin content, readability (Flesch-Kincaid), passive voice, wall-of-text paragraphs |
|
|
219
|
+
| **Technical** | robots.txt, sitemap.xml, HTTPS, mixed content, mobile-friendly viewport, analytics detection (30+ providers), redirect chain detection, lazy loading, hreflang validation |
|
|
220
|
+
| **Structured Data** | JSON-LD presence, schema validation against Google's required fields (14 schema types), dateModified freshness |
|
|
221
|
+
| **Cross-Page** | Duplicate titles, duplicate descriptions, duplicate content (Jaccard similarity >80%), canonical conflicts, orphan pages, broken internal links (filesystem resolution) |
|
|
222
|
+
| **Keyword Relevance** | Title-content keyword alignment, meta description-content alignment |
|
|
217
223
|
|
|
218
|
-
### GEO Scanner —
|
|
224
|
+
### GEO Scanner — 45 Rules
|
|
219
225
|
|
|
220
226
|
Generative Engine Optimization. For AI search engines: ChatGPT, Perplexity, Gemini, Google AI Overviews.
|
|
221
227
|
|
|
222
228
|
| Category | What it checks |
|
|
223
229
|
|---|---|
|
|
224
|
-
| **AI Crawlers** | robots.txt rules for
|
|
230
|
+
| **AI Crawlers** | robots.txt rules for 11 bots (GPTBot, PerplexityBot, ClaudeBot, Claude-Web, Google-Extended, CCBot, AppleBot, Bytespider, Meta-ExternalAgent, Amazonbot, anthropic-ai) |
|
|
225
231
|
| **AI Discoverability** | llms.txt presence, sitemap.xml, structured data quality |
|
|
226
|
-
| **Content Structure** | Question-format H2s, definition patterns, statistics, data tables, lists |
|
|
227
|
-
| **Citation Readiness** | Passage length (134-167 word sweet spot), direct answers in first 40-60 words |
|
|
228
|
-
| **Authority Signals** | Author attribution, organization schema,
|
|
232
|
+
| **Content Structure** | Question-format H2s (with marketing header filtering), definition patterns, statistics, data tables, lists |
|
|
233
|
+
| **Citation Readiness** | Passage length (134-167 word sweet spot), direct answers in first 40-60 words, source citations to .edu/.gov/.org |
|
|
234
|
+
| **Authority Signals** | Author attribution, organization schema, dateModified freshness, content freshness |
|
|
235
|
+
| **E-E-A-T** | Author bio detection, credentials/expertise signals, about/team page links, review/testimonial trust signals, external authority links (.edu/.gov/.org) |
|
|
229
236
|
|
|
230
237
|
### AEO Scanner — 12 Rules
|
|
231
238
|
|
|
@@ -238,6 +245,98 @@ Answer Engine Optimization. Featured snippets, People Also Ask, voice search.
|
|
|
238
245
|
| **Voice Search** | Concise answers under 29 words (Google voice search average), conversational phrasing |
|
|
239
246
|
| **Rich Results** | Featured image, breadcrumb markup, review schema |
|
|
240
247
|
|
|
248
|
+
### AI Citability Score — 7 Dimensions (NEW)
|
|
249
|
+
|
|
250
|
+
Proprietary scoring algorithm based on GEO research. Scores how likely AI engines are to cite each page (0-100).
|
|
251
|
+
|
|
252
|
+
| Dimension | Weight | What it measures |
|
|
253
|
+
|---|---|---|
|
|
254
|
+
| **Statistic Density** | 0-15 | Data points per 200 words (+33.9% visibility boost) |
|
|
255
|
+
| **Front-loading** | 0-15 | Key answer in first 30% of content (44.2% of citations come from there) |
|
|
256
|
+
| **Source Citations** | 0-15 | Links to .edu/.gov/research domains (+30.3% visibility) |
|
|
257
|
+
| **Expert Attribution** | 0-15 | Person schema, author bios, expert quotes (+32% boost) |
|
|
258
|
+
| **Definition Clarity** | 0-10 | "X is..." / "X refers to..." extraction patterns |
|
|
259
|
+
| **Schema Completeness** | 0-15 | Organization + Author + Article + FAQ + Breadcrumb coverage |
|
|
260
|
+
| **Content Structure** | 0-15 | Heading hierarchy, lists, paragraph segmentation |
|
|
261
|
+
|
|
262
|
+
### Content Intelligence (NEW)
|
|
263
|
+
|
|
264
|
+
Deep content quality analysis across all pages.
|
|
265
|
+
|
|
266
|
+
| Category | What it analyzes |
|
|
267
|
+
|---|---|
|
|
268
|
+
| **Readability** | Flesch-Kincaid score, Gunning Fog index, per-page scoring |
|
|
269
|
+
| **Passive Voice** | Percentage of passive sentences per page |
|
|
270
|
+
| **Duplicate Detection** | Jaccard similarity fingerprinting across all page pairs |
|
|
271
|
+
| **Thin Content** | Pages under 300 words flagged |
|
|
272
|
+
| **Wall of Text** | Paragraphs over 150 words identified |
|
|
273
|
+
| **Internal Linking** | Suggestions for pages sharing H2 topics that should cross-link |
|
|
274
|
+
| **Orphan Content** | Pages with zero incoming internal links |
|
|
275
|
+
| **Hub Pages** | Identifies pillar pages with 5+ outgoing internal links |
|
|
276
|
+
| **Topic Clusters** | Groups pages by shared keywords, suggests missing cross-links |
|
|
277
|
+
|
|
278
|
+
### Keyword Clustering (NEW)
|
|
279
|
+
|
|
280
|
+
TF-IDF keyword analysis across all pages.
|
|
281
|
+
|
|
282
|
+
| Category | What it analyzes |
|
|
283
|
+
|---|---|
|
|
284
|
+
| **Primary Keyword** | Highest-weighted keyword per page (from H1/title) |
|
|
285
|
+
| **TF-IDF Scoring** | Term frequency / inverse document frequency across your content |
|
|
286
|
+
| **Topic Clusters** | Pages grouped by 3+ shared significant keywords |
|
|
287
|
+
| **Keyword Cannibalization** | Multiple pages targeting the same primary keyword |
|
|
288
|
+
| **Content Gaps** | Keywords only covered by 1 page — opportunity for more content |
|
|
289
|
+
| **Pillar Suggestions** | When 3+ pages share a theme, suggests creating a pillar page |
|
|
290
|
+
|
|
291
|
+
### Content Brief Generator (NEW)
|
|
292
|
+
|
|
293
|
+
Generate SEO-optimized writing briefs from your existing content.
|
|
294
|
+
|
|
295
|
+
| Category | What it generates |
|
|
296
|
+
|---|---|
|
|
297
|
+
| **Suggested Title** | H1 based on target keyword and existing content patterns |
|
|
298
|
+
| **Word Count Target** | Based on avg of related pages + 20% to outperform |
|
|
299
|
+
| **H2 Outline** | From analyzing related content structure |
|
|
300
|
+
| **Questions to Answer** | Extracted from existing FAQ patterns and question headings |
|
|
301
|
+
| **Internal Links** | Pages to link to/from for topical authority |
|
|
302
|
+
| **Related Keywords** | Extracted from related pages via TF-IDF |
|
|
303
|
+
| **GEO Tips** | Statistics to include, expert quotes, citation opportunities |
|
|
304
|
+
|
|
305
|
+
### Performance Risk Assessment — 16 Rules (NEW)
|
|
306
|
+
|
|
307
|
+
Performance risk detection from static HTML — no Chrome or Lighthouse needed.
|
|
308
|
+
|
|
309
|
+
| Category | What it checks |
|
|
310
|
+
|---|---|
|
|
311
|
+
| **CLS Risk** | Images without width/height dimensions |
|
|
312
|
+
| **Render Blocking** | Scripts without async/defer, excessive blocking scripts |
|
|
313
|
+
| **Payload** | Large inline CSS (>50KB), large inline JS (>50KB), too many external domains |
|
|
314
|
+
| **Loading** | Missing lazy loading, missing fetchpriority for LCP image |
|
|
315
|
+
| **Fonts** | Web fonts without font-display: swap (FOIT/FOUT risk) |
|
|
316
|
+
| **Resource Hints** | Missing preload/prefetch, missing preconnect |
|
|
317
|
+
| **Security** | Mixed content (HTTP resources on HTTPS pages) |
|
|
318
|
+
| **Images** | Responsive images (srcset/sizes), modern formats (WebP/AVIF), decorative image handling (alt="" valid per WCAG) |
|
|
319
|
+
|
|
320
|
+
### Vertical SEO — 20 Rules (NEW)
|
|
321
|
+
|
|
322
|
+
Auto-detects e-commerce and local business sites, then runs specialized checks.
|
|
323
|
+
|
|
324
|
+
| Type | Rules | What it checks |
|
|
325
|
+
|---|---|---|
|
|
326
|
+
| **E-Commerce** | 10 | Product schema, Offer schema, AggregateRating, reviews, product images, descriptions, breadcrumbs, pricing, availability, duplicate descriptions |
|
|
327
|
+
| **Local Business** | 10 | LocalBusiness schema, NAP data, geo coordinates, opening hours, Google Maps, clickable phone, local keywords, address element, service area pages, review schema |
|
|
328
|
+
|
|
329
|
+
### Security & Headers — 15 Rules (NEW)
|
|
330
|
+
|
|
331
|
+
Security compliance that directly affects SEO rankings (Google confirmed HTTPS as a ranking signal).
|
|
332
|
+
|
|
333
|
+
| Category | What it checks |
|
|
334
|
+
|---|---|
|
|
335
|
+
| **HTTPS** | HTTP-only canonical/og:url, mixed content (scripts vs resources), upgrade-insecure-requests |
|
|
336
|
+
| **Headers** | CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy (via meta tags) |
|
|
337
|
+
| **Integrity** | Subresource Integrity (SRI) on external scripts |
|
|
338
|
+
| **Safety** | Inline event handlers, form actions over HTTP, password autocomplete, target="_blank" noopener, iframe sandbox |
|
|
339
|
+
|
|
241
340
|
### Competitive X-Ray — NEW in v1.7
|
|
242
341
|
|
|
243
342
|
Point at any competitor URL. claude-rank fetches their page and compares everything side-by-side:
|
|
@@ -380,10 +479,17 @@ Each audit produces separate SEO, GEO, and AEO scores plus a composite. Same rul
|
|
|
380
479
|
|
|
381
480
|
| Command | Description |
|
|
382
481
|
|---------|-------------|
|
|
383
|
-
| `claude-rank scan ./project` | Full SEO scan (
|
|
482
|
+
| `claude-rank scan ./project` | Full SEO scan (50 rules) |
|
|
384
483
|
| `claude-rank scan https://example.com` | Crawl and scan a live site (up to 50 pages) |
|
|
385
|
-
| `claude-rank geo ./project` | GEO scan — AI search optimization (
|
|
484
|
+
| `claude-rank geo ./project` | GEO scan — AI search optimization (45 rules + E-E-A-T) |
|
|
386
485
|
| `claude-rank aeo ./project` | AEO scan — answer engine optimization (12 rules) |
|
|
486
|
+
| `claude-rank citability ./project` | AI Citability Score — 7-dimension analysis |
|
|
487
|
+
| `claude-rank content ./project` | Content intelligence — readability, duplicates, linking |
|
|
488
|
+
| `claude-rank keyword ./project` | Keyword clustering — TF-IDF, cannibalization, content gaps |
|
|
489
|
+
| `claude-rank brief ./project "keyword"` | Content brief generator — SEO-optimized writing outline |
|
|
490
|
+
| `claude-rank perf ./project` | Performance risk assessment (16 rules, no Chrome needed) |
|
|
491
|
+
| `claude-rank vertical ./project` | Vertical SEO — e-commerce + local business (20 rules) |
|
|
492
|
+
| `claude-rank security ./project` | Security headers audit (15 rules) |
|
|
387
493
|
| `claude-rank compete https://competitor.com .` | Competitive X-Ray — side-by-side comparison |
|
|
388
494
|
| `claude-rank cwv https://example.com` | Core Web Vitals via Lighthouse (optional) |
|
|
389
495
|
| `claude-rank schema ./project` | Detect and validate structured data |
|
|
@@ -403,6 +509,11 @@ Each audit produces separate SEO, GEO, and AEO scores plus a composite. Same rul
|
|
|
403
509
|
| `/claude-rank:rank-fix` | Auto-fix all findings in one command |
|
|
404
510
|
| `/claude-rank:rank-schema` | Detect, validate, generate, inject JSON-LD |
|
|
405
511
|
| `/claude-rank:rank-compete` | Competitive X-Ray — compare vs any competitor URL |
|
|
512
|
+
| `/claude-rank:rank-citability` | AI Citability Score — 7-dimension analysis |
|
|
513
|
+
| `/claude-rank:rank-content` | Content intelligence analysis |
|
|
514
|
+
| `/claude-rank:rank-perf` | Performance risk assessment |
|
|
515
|
+
| `/claude-rank:rank-vertical` | E-Commerce / Local Business SEO |
|
|
516
|
+
| `/claude-rank:rank-security` | Security headers audit |
|
|
406
517
|
|
|
407
518
|
---
|
|
408
519
|
|
|
@@ -410,8 +521,8 @@ Each audit produces separate SEO, GEO, and AEO scores plus a composite. Same rul
|
|
|
410
521
|
|
|
411
522
|
| Feature | claude-rank | claude-seo |
|
|
412
523
|
|---------|:-----------:|:----------:|
|
|
413
|
-
| SEO rules |
|
|
414
|
-
| GEO — AI search (Perplexity, ChatGPT, Gemini) |
|
|
524
|
+
| SEO rules | 50 | ~20 |
|
|
525
|
+
| GEO — AI search (Perplexity, ChatGPT, Gemini) | 45 rules | Basic |
|
|
415
526
|
| AEO — featured snippets, voice search | 12 rules | None |
|
|
416
527
|
| Core Web Vitals / Lighthouse | Yes (optional) | No |
|
|
417
528
|
| Redirect chain detection | Yes | No |
|
|
@@ -424,9 +535,19 @@ Each audit produces separate SEO, GEO, and AEO scores plus a composite. Same rul
|
|
|
424
535
|
| Multi-page URL crawling (up to 50 pages) | Yes | No |
|
|
425
536
|
| HTML report export (agency-ready) | Yes | No |
|
|
426
537
|
| CI/CD threshold mode | Yes | No |
|
|
538
|
+
| AI Citability Score (7-dimension) | Yes | No |
|
|
539
|
+
| Content Intelligence (readability, duplicates) | Yes | No |
|
|
540
|
+
| Performance Risk Assessment | Yes (no Chrome needed) | No |
|
|
541
|
+
| Vertical SEO (e-commerce + local) | Yes — auto-detection | No |
|
|
542
|
+
| Security Headers Audit | Yes | No |
|
|
543
|
+
| Keyword Clustering (TF-IDF) | Yes | No |
|
|
544
|
+
| Content Brief Generator | Yes | No |
|
|
545
|
+
| E-E-A-T Scoring | Yes — 5 rules | No |
|
|
546
|
+
| Broken Link Detection | Yes — filesystem resolution | No |
|
|
547
|
+
| Image Optimization Audit | Yes — srcset, WebP/AVIF | No |
|
|
427
548
|
| Competitive analysis (X-Ray) | Yes — side-by-side comparison | No |
|
|
428
549
|
| Tech stack detection (50+ patterns) | Yes | No |
|
|
429
|
-
| AI bot detection |
|
|
550
|
+
| AI bot detection | 11 bots | Basic |
|
|
430
551
|
| llms.txt generation | Yes | No |
|
|
431
552
|
| robots.txt generation | Yes | No |
|
|
432
553
|
| sitemap.xml generation | Yes | No |
|
|
@@ -452,7 +573,7 @@ Two terms that matter and are often confused:
|
|
|
452
573
|
| **SSRF protection** | All HTTP tools block private IPs, cloud metadata, non-HTTP schemes |
|
|
453
574
|
| **No telemetry** | Zero data collection. No phone-home. Ever. |
|
|
454
575
|
| **1 dependency** | `htmlparser2` only (30KB). No native bindings. No `node-gyp`. |
|
|
455
|
-
| **
|
|
576
|
+
| **372 tests** | Security module, all scanners, competitive X-Ray, CLI, integration tests |
|
|
456
577
|
| **File safety** | 10MB read cap. 5MB response cap. Restrictive write permissions. |
|
|
457
578
|
|
|
458
579
|
See [SECURITY.md](SECURITY.md) for the full vulnerability disclosure policy.
|
|
@@ -463,10 +584,10 @@ See [SECURITY.md](SECURITY.md) for the full vulnerability disclosure policy.
|
|
|
463
584
|
|
|
464
585
|
| Category | Count | Highlights |
|
|
465
586
|
|---|---|---|
|
|
466
|
-
| **Tools** |
|
|
587
|
+
| **Tools** | 17 | SEO scanner (50 rules), GEO scanner (45 rules + E-E-A-T), AEO scanner (12 rules), AI Citability scorer (7 dimensions), Content analyzer + keyword clustering, Content brief generator, Performance scanner (16 rules), Vertical scanner (20 rules), Security scanner (15 rules), Competitive X-Ray (50+ tech patterns), Lighthouse/CWV scanner, schema engine, robots analyzer, sitemap analyzer, llms.txt generator, audit history, formatter |
|
|
467
588
|
| **Skills** | 7 | /claude-rank:rank, /claude-rank:rank-audit, /claude-rank:rank-geo, /claude-rank:rank-aeo, /claude-rank:rank-fix, /claude-rank:rank-schema, /claude-rank:rank-compete |
|
|
468
|
-
| **Agents** |
|
|
469
|
-
| **Commands** |
|
|
589
|
+
| **Agents** | 9 | SEO auditor, GEO auditor, AEO auditor, Schema auditor, Citability auditor, Content auditor, Performance auditor, Vertical auditor, Security auditor |
|
|
590
|
+
| **Commands** | 14 | All slash commands + keyword, brief |
|
|
470
591
|
| **Research** | 3 | SEO benchmarks, GEO research, schema catalog |
|
|
471
592
|
|
|
472
593
|
---
|
|
@@ -487,7 +608,7 @@ Optional for Core Web Vitals: `lighthouse` + `chrome-launcher`
|
|
|
487
608
|
|
|
488
609
|
I built claude-rank alone — nights and weekends, between building my own SaaS products. No VC funding. No team. Just one person who got tired of being invisible to AI search and decided to fix it for everyone.
|
|
489
610
|
|
|
490
|
-
This plugin is **free forever.** No pro tier. No paywalls. No "upgrade to unlock." Every feature you just read about — all
|
|
611
|
+
This plugin is **free forever.** No pro tier. No paywalls. No "upgrade to unlock." Every feature you just read about — all 17 tools, 7 skills, 9 agents — is yours, completely free.
|
|
491
612
|
|
|
492
613
|
But building and maintaining something this comprehensive takes real time. Every scanner rule I add, every false positive I fix, every new AI crawler I track — that's time I'm not spending on my own products.
|
|
493
614
|
|
|
@@ -509,7 +630,7 @@ Found a bug? Want a new scanner rule? [Open an issue](https://github.com/Houseof
|
|
|
509
630
|
git clone https://github.com/Houseofmvps/claude-rank.git
|
|
510
631
|
cd claude-rank
|
|
511
632
|
npm install
|
|
512
|
-
npm test #
|
|
633
|
+
npm test # 372 tests, node:test
|
|
513
634
|
node tools/<tool>.mjs # No build step
|
|
514
635
|
```
|
|
515
636
|
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: citability-auditor
|
|
3
|
+
description: Runs AI citability audit, analyzes 7-dimension breakdown, and provides actionable recommendations to increase AI citation probability.
|
|
4
|
+
model: inherit
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the Citability Auditor agent for claude-rank. Analyze a site's likelihood of being cited by AI search engines (ChatGPT, Perplexity, Gemini, Google AI Overviews) and provide specific recommendations per dimension.
|
|
8
|
+
|
|
9
|
+
## Step 1: Detect Content Profile
|
|
10
|
+
|
|
11
|
+
Before scanning, assess the site's citation potential:
|
|
12
|
+
- **Authority signals**: Does the site have author bios, credentials, citations to sources?
|
|
13
|
+
- **Data density**: Does the content include statistics, percentages, research findings?
|
|
14
|
+
- **Structure quality**: Are answers front-loaded? Are passages self-contained and quotable?
|
|
15
|
+
- **Freshness**: Is content dated and regularly updated?
|
|
16
|
+
|
|
17
|
+
## Step 2: Run Scanner
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node ${CLAUDE_PLUGIN_ROOT}/tools/citability-scorer.mjs <project-directory>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Parse the JSON output for the 7-dimension breakdown and per-page scores.
|
|
24
|
+
|
|
25
|
+
## Step 3: Analyze Each Dimension
|
|
26
|
+
|
|
27
|
+
Interpret results across all 7 citability dimensions:
|
|
28
|
+
|
|
29
|
+
1. **Factual Density** — Does the content contain verifiable facts, numbers, and data?
|
|
30
|
+
- Fix: Add a statistic or data point every 200 words. Use specific numbers over vague claims.
|
|
31
|
+
- Example: Change "many users prefer X" to "73% of users prefer X (Source, 2025)."
|
|
32
|
+
|
|
33
|
+
2. **Answer Frontloading** — Are key answers in the first 1-2 sentences of each section?
|
|
34
|
+
- Fix: Start each section with a direct answer before elaborating. AI engines extract the first sentence.
|
|
35
|
+
- Example: "What is X? X is [definition]." not "In order to understand X, we must first consider..."
|
|
36
|
+
|
|
37
|
+
3. **Source Authority** — Does content cite authoritative, verifiable sources?
|
|
38
|
+
- Fix: Link to primary sources (research papers, official docs, gov data). Name the source inline.
|
|
39
|
+
- Example: "According to Google's Search Central documentation..." not "According to experts..."
|
|
40
|
+
|
|
41
|
+
4. **Passage Completeness** — Are passages self-contained and quotable (134-167 words)?
|
|
42
|
+
- Fix: Write paragraphs that make sense without surrounding context. Each passage = one complete idea.
|
|
43
|
+
|
|
44
|
+
5. **Structural Clarity** — Are headings questions? Are definitions formatted as "X is Y"?
|
|
45
|
+
- Fix: Rewrite H2s as questions users actually ask. Use "What is", "How does", "Why should" format.
|
|
46
|
+
|
|
47
|
+
6. **Uniqueness** — Does the content offer original insights, data, or perspectives?
|
|
48
|
+
- Fix: Add original research, case studies, proprietary data, or unique frameworks. Avoid rehashing common knowledge.
|
|
49
|
+
|
|
50
|
+
7. **Entity Consistency** — Is the brand/product name used consistently with clear definitions?
|
|
51
|
+
- Fix: Define your product in the first paragraph of every key page. Use consistent naming throughout.
|
|
52
|
+
|
|
53
|
+
## Step 4: Per-Page Recommendations
|
|
54
|
+
|
|
55
|
+
For each page scanned, provide:
|
|
56
|
+
- The overall citability score (0-100)
|
|
57
|
+
- The weakest 2-3 dimensions with specific rewrite suggestions
|
|
58
|
+
- A sample rewritten passage demonstrating the improvement
|
|
59
|
+
|
|
60
|
+
Prioritize pages by importance: homepage > pricing > product pages > blog posts.
|
|
61
|
+
|
|
62
|
+
## Step 5: Quick Wins
|
|
63
|
+
|
|
64
|
+
Identify the 3 fastest improvements across the entire site:
|
|
65
|
+
1. The single dimension dragging down the most pages
|
|
66
|
+
2. Template-level fixes (e.g., all pages missing author attribution)
|
|
67
|
+
3. The highest-traffic page with the lowest citability score
|
|
68
|
+
|
|
69
|
+
## Output Format
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"category": "citability",
|
|
74
|
+
"scores": { "citability": 45 },
|
|
75
|
+
"dimension_scores": {
|
|
76
|
+
"factual_density": 40,
|
|
77
|
+
"answer_frontloading": 55,
|
|
78
|
+
"source_authority": 30,
|
|
79
|
+
"passage_completeness": 50,
|
|
80
|
+
"structural_clarity": 60,
|
|
81
|
+
"uniqueness": 35,
|
|
82
|
+
"entity_consistency": 45
|
|
83
|
+
},
|
|
84
|
+
"findings": [...],
|
|
85
|
+
"quick_wins": [
|
|
86
|
+
"Add statistics to your top 5 pages — factual density is your weakest dimension at 40/100",
|
|
87
|
+
"Front-load answers in H2 sections — AI engines extract the first sentence",
|
|
88
|
+
"Cite authoritative sources by name — 'According to [Source]' increases citation probability"
|
|
89
|
+
],
|
|
90
|
+
"fixes_available": 7,
|
|
91
|
+
"lowest_dimensions": ["source_authority", "uniqueness", "factual_density"]
|
|
92
|
+
}
|
|
93
|
+
```
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-auditor
|
|
3
|
+
description: Runs content quality audit, reviews readability, identifies duplicate and thin content, and suggests internal linking improvements.
|
|
4
|
+
model: inherit
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the Content Auditor agent for claude-rank. Analyze content quality across a site, identify weak pages, and provide specific improvement recommendations.
|
|
8
|
+
|
|
9
|
+
## Step 1: Detect Content Strategy
|
|
10
|
+
|
|
11
|
+
Before scanning, identify the content architecture:
|
|
12
|
+
- **Content volume**: How many pages have substantive content?
|
|
13
|
+
- **Content types**: Blog posts, landing pages, documentation, product pages?
|
|
14
|
+
- **Update frequency**: Are dates present? Is content stale?
|
|
15
|
+
- **Internal linking**: Do pages link to each other effectively?
|
|
16
|
+
|
|
17
|
+
## Step 2: Run Scanner
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node ${CLAUDE_PLUGIN_ROOT}/tools/content-analyzer.mjs <project-directory>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Parse the JSON output for readability scores, duplicate content flags, and thin page warnings.
|
|
24
|
+
|
|
25
|
+
## Step 3: Readability Analysis
|
|
26
|
+
|
|
27
|
+
Interpret readability metrics for each page:
|
|
28
|
+
- **Flesch-Kincaid Grade Level**: Target 6-8 for general audiences, 10-12 for technical content
|
|
29
|
+
- **Average sentence length**: Flag sentences over 25 words for simplification
|
|
30
|
+
- **Paragraph length**: Flag paragraphs over 150 words for splitting
|
|
31
|
+
- **Passive voice ratio**: Target under 10%. Flag pages above 20%.
|
|
32
|
+
- **Transition word usage**: Recommend adding transitions where flow is choppy
|
|
33
|
+
|
|
34
|
+
For each page with poor readability, provide:
|
|
35
|
+
- The specific metric that failed
|
|
36
|
+
- A sample sentence rewrite demonstrating the fix
|
|
37
|
+
- Whether it is a page-level or template-level issue
|
|
38
|
+
|
|
39
|
+
## Step 4: Duplicate Content Detection
|
|
40
|
+
|
|
41
|
+
Identify content duplication issues:
|
|
42
|
+
- **Internal duplicates**: Pages with >60% content overlap (common with category/tag pages)
|
|
43
|
+
- **Near-duplicates**: Pages covering the same topic with slightly different wording
|
|
44
|
+
- **Boilerplate ratio**: Flag pages where >40% of content is repeated header/footer/sidebar text
|
|
45
|
+
|
|
46
|
+
For each duplicate found, recommend:
|
|
47
|
+
- Canonical tag pointing to the primary version
|
|
48
|
+
- Content consolidation (merge two thin pages into one comprehensive page)
|
|
49
|
+
- noindex for pure duplicate pages (tag archives, paginated lists)
|
|
50
|
+
|
|
51
|
+
## Step 5: Thin Content Identification
|
|
52
|
+
|
|
53
|
+
Flag pages with insufficient content:
|
|
54
|
+
- **Under 300 words**: Critical — likely to be seen as thin content by Google
|
|
55
|
+
- **300-600 words**: Warning — may underperform for competitive keywords
|
|
56
|
+
- **No unique value**: Pages that exist but add nothing (empty category pages, stub pages)
|
|
57
|
+
|
|
58
|
+
For each thin page, provide specific expansion recommendations:
|
|
59
|
+
- What subtopics to add (based on heading gaps)
|
|
60
|
+
- Target word count based on the keyword's competition level
|
|
61
|
+
- Whether to expand the page or merge it with a related page
|
|
62
|
+
|
|
63
|
+
## Step 6: Internal Linking Opportunities
|
|
64
|
+
|
|
65
|
+
Identify pages that should link to each other:
|
|
66
|
+
- **Orphan pages**: Pages with zero internal links pointing to them
|
|
67
|
+
- **Hub pages**: Pages that should serve as topic hubs linking to related content
|
|
68
|
+
- **Anchor text**: Suggest descriptive anchor text (not "click here" or "read more")
|
|
69
|
+
- **Link depth**: Flag important pages more than 3 clicks from homepage
|
|
70
|
+
|
|
71
|
+
## Step 7: Quick Wins
|
|
72
|
+
|
|
73
|
+
Identify the 3 highest-impact content improvements:
|
|
74
|
+
1. The thinnest page that targets a valuable keyword
|
|
75
|
+
2. The most-duplicated content pattern (template fix)
|
|
76
|
+
3. The highest-authority page with the worst readability score
|
|
77
|
+
|
|
78
|
+
## Output Format
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"category": "content",
|
|
83
|
+
"scores": { "content": 58 },
|
|
84
|
+
"findings": [...],
|
|
85
|
+
"thin_pages": [
|
|
86
|
+
{ "file": "about.html", "word_count": 120, "recommendation": "Expand with team bios, mission, and company story — target 800+ words" }
|
|
87
|
+
],
|
|
88
|
+
"duplicate_groups": [
|
|
89
|
+
{ "pages": ["blog/tag/seo.html", "blog/category/seo.html"], "overlap": "78%", "fix": "Add canonical on tag page pointing to category page" }
|
|
90
|
+
],
|
|
91
|
+
"readability_issues": [
|
|
92
|
+
{ "file": "pricing.html", "grade_level": 14.2, "fix": "Simplify feature descriptions — current reading level is graduate-level" }
|
|
93
|
+
],
|
|
94
|
+
"orphan_pages": ["docs/api-reference.html"],
|
|
95
|
+
"quick_wins": [
|
|
96
|
+
"Expand about.html from 120 to 800+ words — currently flagged as thin content",
|
|
97
|
+
"Add canonical tags to 5 tag pages duplicating category pages",
|
|
98
|
+
"Simplify pricing.html — grade level 14.2, target 8"
|
|
99
|
+
],
|
|
100
|
+
"fixes_available": 8
|
|
101
|
+
}
|
|
102
|
+
```
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-auditor
|
|
3
|
+
description: Runs performance risk audit, identifies CLS/LCP issues, blocking resources, and provides specific optimization recommendations.
|
|
4
|
+
model: inherit
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the Performance Auditor agent for claude-rank. Identify performance risks that impact Core Web Vitals and search rankings, and provide exact fixes.
|
|
8
|
+
|
|
9
|
+
## Step 1: Assess Performance Profile
|
|
10
|
+
|
|
11
|
+
Before scanning, identify performance-critical factors:
|
|
12
|
+
- **Page type**: Landing pages need sub-2s LCP. Blog posts are more forgiving.
|
|
13
|
+
- **Asset inventory**: How many images, scripts, stylesheets, fonts?
|
|
14
|
+
- **Third-party load**: Analytics, chat widgets, ad scripts?
|
|
15
|
+
- **Framework**: Static HTML is fastest. SPAs need SSR/SSG assessment.
|
|
16
|
+
|
|
17
|
+
## Step 2: Run Scanner
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node ${CLAUDE_PLUGIN_ROOT}/tools/perf-scanner.mjs <project-directory>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Parse the JSON output for CLS risks, blocking resources, image issues, and font loading problems.
|
|
24
|
+
|
|
25
|
+
## Step 3: CLS Risk Analysis
|
|
26
|
+
|
|
27
|
+
Cumulative Layout Shift directly affects rankings. Identify causes:
|
|
28
|
+
|
|
29
|
+
- **Images without dimensions**: List every `<img>` missing `width`/`height` attributes. Provide the exact tag and the fix:
|
|
30
|
+
- Before: `<img src="hero.jpg" alt="Hero">`
|
|
31
|
+
- After: `<img src="hero.jpg" alt="Hero" width="1200" height="630">`
|
|
32
|
+
- **Dynamic content injection**: Ads, embeds, or lazy-loaded elements that push content down
|
|
33
|
+
- **Font swapping without reserve**: Web fonts that cause text reflow on load
|
|
34
|
+
- **Unsized iframes/embeds**: YouTube, maps, or widget embeds without dimensions
|
|
35
|
+
|
|
36
|
+
For each CLS risk, estimate the severity (minor shift vs major layout jump).
|
|
37
|
+
|
|
38
|
+
## Step 4: Render-Blocking Resources
|
|
39
|
+
|
|
40
|
+
Identify scripts and styles that delay first paint:
|
|
41
|
+
|
|
42
|
+
- **Blocking scripts**: List each `<script>` without `async` or `defer`. Recommend:
|
|
43
|
+
- `defer` for scripts that need DOM (analytics, UI libraries)
|
|
44
|
+
- `async` for independent scripts (tracking pixels, third-party widgets)
|
|
45
|
+
- Move to bottom of `<body>` as a fallback
|
|
46
|
+
- **Blocking stylesheets**: Large CSS files loaded in `<head>` without media queries
|
|
47
|
+
- Recommend critical CSS inlining for above-fold styles
|
|
48
|
+
- Add `media="print"` with `onload` swap for non-critical CSS
|
|
49
|
+
- **Render chain depth**: Flag chains where resource A loads B which loads C
|
|
50
|
+
|
|
51
|
+
## Step 5: Image Optimization
|
|
52
|
+
|
|
53
|
+
Identify image performance issues:
|
|
54
|
+
- **Missing lazy loading**: Images below the fold without `loading="lazy"`
|
|
55
|
+
- **LCP image priority**: The hero/above-fold image should have `fetchpriority="high"` and must NOT have `loading="lazy"`
|
|
56
|
+
- **Missing preconnect**: Third-party image CDNs without `<link rel="preconnect">` hints
|
|
57
|
+
- **Oversized images**: Images served at dimensions much larger than their display size
|
|
58
|
+
- **Missing modern formats**: Images that could benefit from WebP/AVIF conversion
|
|
59
|
+
|
|
60
|
+
For each image issue, provide the exact element and the fix.
|
|
61
|
+
|
|
62
|
+
## Step 6: Font Loading
|
|
63
|
+
|
|
64
|
+
Identify font performance issues:
|
|
65
|
+
- **Missing font-display**: `@font-face` without `font-display: swap` causes invisible text
|
|
66
|
+
- **Too many font files**: Loading more than 4 font files impacts performance
|
|
67
|
+
- **Missing preload**: Critical fonts (used above fold) should have `<link rel="preload" as="font">`
|
|
68
|
+
- **Missing preconnect**: Font CDNs (fonts.googleapis.com, fonts.gstatic.com) without preconnect hints
|
|
69
|
+
|
|
70
|
+
## Step 7: Third-Party Script Impact
|
|
71
|
+
|
|
72
|
+
Assess third-party scripts by impact:
|
|
73
|
+
- **High impact**: Analytics (GA4, GTM), chat widgets (Intercom, Drift), ad scripts
|
|
74
|
+
- **Recommendation**: Defer all third-party scripts, load after user interaction where possible
|
|
75
|
+
- **Preconnect**: Add `<link rel="preconnect">` for each third-party origin
|
|
76
|
+
|
|
77
|
+
## Step 8: Quick Wins
|
|
78
|
+
|
|
79
|
+
Identify the 3 fixes with the biggest performance impact:
|
|
80
|
+
1. The single largest CLS risk (usually images without dimensions)
|
|
81
|
+
2. The most impactful blocking resource (usually a large JS bundle)
|
|
82
|
+
3. The LCP image optimization (fetchpriority + preconnect)
|
|
83
|
+
|
|
84
|
+
## Output Format
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"category": "performance",
|
|
89
|
+
"scores": { "performance": 62 },
|
|
90
|
+
"findings": [...],
|
|
91
|
+
"cls_risks": [
|
|
92
|
+
{ "file": "index.html", "element": "<img src='hero.jpg'>", "fix": "Add width='1200' height='630'" }
|
|
93
|
+
],
|
|
94
|
+
"blocking_resources": [
|
|
95
|
+
{ "file": "index.html", "resource": "analytics.js", "fix": "Add defer attribute" }
|
|
96
|
+
],
|
|
97
|
+
"image_issues": [
|
|
98
|
+
{ "file": "index.html", "element": "<img src='logo.png'>", "fix": "Add loading='lazy' (below fold)" }
|
|
99
|
+
],
|
|
100
|
+
"quick_wins": [
|
|
101
|
+
"Add dimensions to 12 images — eliminates CLS risk on all pages",
|
|
102
|
+
"Add defer to 3 blocking scripts — reduces time to first paint by ~800ms",
|
|
103
|
+
"Add fetchpriority='high' to hero image — improves LCP"
|
|
104
|
+
],
|
|
105
|
+
"fixes_available": 15
|
|
106
|
+
}
|
|
107
|
+
```
|