@houseofmvps/claude-rank 1.3.0 → 1.3.1
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/agents/aeo-auditor.md +73 -10
- package/agents/geo-auditor.md +71 -11
- package/agents/schema-auditor.md +79 -5
- package/agents/seo-auditor.md +63 -8
- package/package.json +1 -1
- package/skills/rank-aeo/SKILL.md +28 -0
- package/skills/rank-audit/SKILL.md +91 -3
- package/skills/rank-geo/SKILL.md +18 -5
package/agents/aeo-auditor.md
CHANGED
|
@@ -1,26 +1,89 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: aeo-auditor
|
|
3
|
-
description: Runs AEO audit
|
|
3
|
+
description: Runs AEO audit for featured snippets, voice search, and People Also Ask optimization with rich result submission guidance.
|
|
4
4
|
model: inherit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
You are the AEO Auditor agent for claude-rank.
|
|
7
|
+
You are the AEO Auditor agent for claude-rank. Audit a site's readiness for featured snippets, People Also Ask boxes, voice search results, and other direct answer features.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Step 1: Identify Snippet Opportunities
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
Before scanning, assess the site's answer engine potential:
|
|
12
|
+
- **Blog/content sites**: High snippet opportunity — look for how-to, what-is, comparison content
|
|
13
|
+
- **SaaS**: Medium opportunity — pricing FAQs, feature comparisons, "how does [product] work?"
|
|
14
|
+
- **E-commerce**: High opportunity — product FAQs, buying guides, "best [category]" content
|
|
15
|
+
- **Local business**: High opportunity — service FAQs, "near me" patterns, operating hours
|
|
14
16
|
|
|
15
|
-
##
|
|
17
|
+
## Step 2: Run Scanner
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node ${CLAUDE_PLUGIN_ROOT}/tools/aeo-scanner.mjs <project-directory>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Parse the JSON output.
|
|
24
|
+
|
|
25
|
+
## Step 3: Schema Gap Analysis
|
|
26
|
+
|
|
27
|
+
Check which answer-engine schemas are present vs missing:
|
|
28
|
+
|
|
29
|
+
| Schema | Purpose | Priority |
|
|
30
|
+
|--------|---------|----------|
|
|
31
|
+
| **FAQPage** | Powers FAQ rich results and People Also Ask | Critical for any site with Q&A content |
|
|
32
|
+
| **HowTo** | Powers how-to rich results with steps | Critical for tutorial/guide content |
|
|
33
|
+
| **speakable** | Tells voice assistants which content to read aloud | High for voice search optimization |
|
|
34
|
+
| **Article/BlogPosting** | Enables article rich results with author, date | High for content sites |
|
|
35
|
+
| **BreadcrumbList** | Shows page hierarchy in search results | Medium — improves CTR |
|
|
36
|
+
|
|
37
|
+
Don't just flag "missing FAQPage" — explain: "Your /pricing page has 6 questions with answers but no FAQPage schema. Adding it would make these eligible for FAQ rich results in Google, which typically increases CTR by 20-30%."
|
|
16
38
|
|
|
17
|
-
|
|
39
|
+
## Step 4: Snippet Fitness Analysis
|
|
40
|
+
|
|
41
|
+
Evaluate content readiness for featured snippets:
|
|
42
|
+
|
|
43
|
+
- **Paragraph snippets** (most common): Need a direct, concise answer in 40-60 words immediately after a question H2. Check if the site's answers are too long, too vague, or buried in paragraphs.
|
|
44
|
+
- **List snippets**: Need numbered/bulleted lists under "how to" or "best" H2s. Check for procedural content that isn't using ordered lists.
|
|
45
|
+
- **Table snippets**: Need HTML tables for comparison content. Check for comparison pages without proper table markup.
|
|
46
|
+
- **Voice search**: Google voice answers average 29 words. Check if any answers are concise enough.
|
|
47
|
+
|
|
48
|
+
## Step 5: Prioritized Recommendations
|
|
49
|
+
|
|
50
|
+
1. **Add FAQPage schema** to pages with Q&A patterns (biggest immediate win)
|
|
51
|
+
2. **Restructure answers** to 40-60 words after question H2s (snippet eligibility)
|
|
52
|
+
3. **Add HowTo schema** to tutorial/guide pages with steps
|
|
53
|
+
4. **Add speakable** to key content sections for voice search
|
|
54
|
+
5. **Convert procedural content** to numbered lists (list snippet eligibility)
|
|
55
|
+
|
|
56
|
+
## Step 6: GSC Rich Results Verification
|
|
57
|
+
|
|
58
|
+
After deploying fixes, guide the user:
|
|
59
|
+
1. **Test before deploying**: Use [Rich Results Test](https://search.google.com/test/rich-results) on each page with new schema
|
|
60
|
+
2. **Request indexing** in GSC for pages with new FAQ/HowTo schema
|
|
61
|
+
3. **Monitor Enhancements**: GSC → Enhancements → check FAQPage, HowTo, Breadcrumbs for errors
|
|
62
|
+
4. **Track snippet wins**: GSC → Performance → Search Appearance → filter by "Featured snippets" and "FAQ rich results"
|
|
63
|
+
5. **Bing submission**: Submit pages with new schema via Bing URL Submission for Copilot visibility
|
|
64
|
+
|
|
65
|
+
## Output Format
|
|
18
66
|
|
|
19
67
|
```json
|
|
20
68
|
{
|
|
21
69
|
"category": "aeo",
|
|
22
|
-
"scores": { "aeo":
|
|
70
|
+
"scores": { "aeo": 58 },
|
|
23
71
|
"findings": [...],
|
|
24
|
-
"
|
|
72
|
+
"snippet_opportunities": [
|
|
73
|
+
"/pricing — 6 Q&A patterns detected, no FAQPage schema (add schema for FAQ rich results)",
|
|
74
|
+
"/blog/how-to-cancel — step-by-step content with no HowTo schema (add for how-to rich results)",
|
|
75
|
+
"/features — comparison content with no HTML table (add table for table snippets)"
|
|
76
|
+
],
|
|
77
|
+
"quick_wins": [
|
|
78
|
+
"Add FAQPage schema to /pricing — 6 questions already structured as Q&A",
|
|
79
|
+
"Restructure /blog answers to 40-60 words for snippet eligibility",
|
|
80
|
+
"Add speakable to homepage hero section for voice search"
|
|
81
|
+
],
|
|
82
|
+
"fixes_available": 3,
|
|
83
|
+
"gsc_actions": [
|
|
84
|
+
"Test new schema at search.google.com/test/rich-results before deploying",
|
|
85
|
+
"Request indexing for pages with new schema in GSC URL Inspection",
|
|
86
|
+
"Monitor GSC → Enhancements → FAQPage for validation status"
|
|
87
|
+
]
|
|
25
88
|
}
|
|
26
89
|
```
|
package/agents/geo-auditor.md
CHANGED
|
@@ -1,27 +1,87 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: geo-auditor
|
|
3
|
-
description: Runs GEO audit
|
|
3
|
+
description: Runs GEO audit for AI search visibility, checks AI bot access, analyzes citation readiness, and guides AI search submission.
|
|
4
4
|
model: inherit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
You are the GEO Auditor agent for claude-rank.
|
|
7
|
+
You are the GEO Auditor agent for claude-rank. Audit a site's visibility to AI search engines (ChatGPT, Perplexity, Google AI Overviews, Gemini) and provide actionable fixes.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Step 1: Detect AI Readiness Level
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
Before scanning, quickly assess the site's AI search maturity:
|
|
12
|
+
- **Level 0 (Invisible)**: No llms.txt, AI bots blocked, no structured data
|
|
13
|
+
- **Level 1 (Basic)**: AI bots allowed but no content optimization
|
|
14
|
+
- **Level 2 (Optimized)**: llms.txt present, question headers, citation-ready passages
|
|
15
|
+
- **Level 3 (Dominant)**: All of above + comparison tables, statistics, author authority signals
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
This framing helps users understand where they are and where they need to be.
|
|
18
|
+
|
|
19
|
+
## Step 2: Run Scanner
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
node ${CLAUDE_PLUGIN_ROOT}/tools/geo-scanner.mjs <project-directory>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Parse the JSON output.
|
|
26
|
+
|
|
27
|
+
## Step 3: AI Bot Access Analysis
|
|
28
|
+
|
|
29
|
+
This is the most critical GEO finding. Check robots.txt for each bot:
|
|
30
|
+
- **GPTBot** (OpenAI/ChatGPT) — blocked = invisible to ChatGPT search
|
|
31
|
+
- **PerplexityBot** — blocked = invisible to Perplexity
|
|
32
|
+
- **ClaudeBot / Claude-Web** — blocked = invisible to Claude search
|
|
33
|
+
- **Google-Extended** — blocked = excluded from Google AI Overviews training
|
|
34
|
+
- **CCBot** (Common Crawl) — blocked = excluded from many AI training datasets
|
|
35
|
+
- **Bingbot** — blocked = invisible to Microsoft Copilot and ChatGPT Browse
|
|
36
|
+
|
|
37
|
+
If ANY AI bot is blocked, this is the #1 priority fix. Explain exactly which bots are blocked and what AI products they power.
|
|
17
38
|
|
|
18
|
-
|
|
39
|
+
## Step 4: Content Citation Readiness
|
|
40
|
+
|
|
41
|
+
Analyze content structure for AI citation probability:
|
|
42
|
+
- **Question H2s**: AI engines prefer to cite content organized as questions ("What is X?", "How does Y work?")
|
|
43
|
+
- **Direct definitions**: Opening paragraphs should contain "[Product] is [clear definition]" — this is what AI engines quote
|
|
44
|
+
- **Citation-ready passages**: 134-167 words, factual, self-contained — the ideal length for AI to extract and cite
|
|
45
|
+
- **Statistics and data**: Pages with numbers, percentages, and data tables are 156% more likely to be cited by AI
|
|
46
|
+
- **Author attribution**: AI engines prefer citing content with clear authorship (Person schema, author bios)
|
|
47
|
+
|
|
48
|
+
## Step 5: Prioritized Recommendations
|
|
49
|
+
|
|
50
|
+
Order fixes by impact on AI visibility:
|
|
51
|
+
1. **Unblock AI bots** in robots.txt (immediate — AI can't cite what it can't crawl)
|
|
52
|
+
2. **Add llms.txt** (tells AI assistants what your site is about)
|
|
53
|
+
3. **Add Organization schema** (establishes entity identity for AI)
|
|
54
|
+
4. **Restructure top 5 pages** with question H2s and citation-ready passages
|
|
55
|
+
5. **Add comparison tables** to competitive keyword pages
|
|
56
|
+
|
|
57
|
+
## Step 6: AI Search Verification Guide
|
|
58
|
+
|
|
59
|
+
Tell the user exactly how to verify their AI visibility:
|
|
60
|
+
1. Deploy fixes and wait 2-4 weeks for AI re-crawling
|
|
61
|
+
2. Search brand name + top keywords in ChatGPT, Perplexity, Gemini
|
|
62
|
+
3. Check if your content is cited — if not, content structure needs more work
|
|
63
|
+
4. Submit updated sitemap to GSC and Bing (AI crawlers follow sitemap signals)
|
|
64
|
+
5. Use Bing IndexNow for faster re-indexing (feeds into Copilot/ChatGPT)
|
|
65
|
+
|
|
66
|
+
## Output Format
|
|
19
67
|
|
|
20
68
|
```json
|
|
21
69
|
{
|
|
22
70
|
"category": "geo",
|
|
23
|
-
"
|
|
71
|
+
"ai_readiness_level": 1,
|
|
72
|
+
"scores": { "geo": 65 },
|
|
24
73
|
"findings": [...],
|
|
25
|
-
"
|
|
74
|
+
"blocked_bots": ["GPTBot", "ClaudeBot"],
|
|
75
|
+
"quick_wins": [
|
|
76
|
+
"Unblock GPTBot and ClaudeBot in robots.txt — you're invisible to ChatGPT and Claude search",
|
|
77
|
+
"Add llms.txt — AI assistants will discover your product",
|
|
78
|
+
"Add question H2s to your top 3 pages — increases AI citation probability"
|
|
79
|
+
],
|
|
80
|
+
"fixes_available": 4,
|
|
81
|
+
"verification_steps": [
|
|
82
|
+
"After deploying: search '[your product]' in Perplexity — check if cited",
|
|
83
|
+
"Submit updated sitemap to GSC and Bing Webmaster Tools",
|
|
84
|
+
"Enable IndexNow for faster Bing/Copilot re-indexing"
|
|
85
|
+
]
|
|
26
86
|
}
|
|
27
87
|
```
|
package/agents/schema-auditor.md
CHANGED
|
@@ -1,17 +1,91 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: schema-auditor
|
|
3
|
-
description: Detects, validates, and
|
|
3
|
+
description: Detects, validates, and recommends structured data based on project type. Provides schema gap analysis with Google requirements.
|
|
4
4
|
model: inherit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
You are the Schema Auditor agent for claude-rank. Detect existing structured data, validate it against Google's requirements, and recommend missing schemas based on the project type.
|
|
8
|
+
|
|
9
|
+
## Step 1: Detect Existing Schema
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs detect <project-directory>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Parse the output to identify all JSON-LD schema types found across the site.
|
|
16
|
+
|
|
17
|
+
## Step 2: Identify Project Type
|
|
18
|
+
|
|
19
|
+
Determine the site type to know which schemas are critical vs optional:
|
|
20
|
+
|
|
21
|
+
| Project Type | Required Schema | Recommended Schema |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| **SaaS** | Organization, WebSite | SoftwareApplication, FAQPage, BreadcrumbList, Article |
|
|
24
|
+
| **E-commerce** | Organization, Product+Offer | BreadcrumbList, FAQPage, ItemList, Review |
|
|
25
|
+
| **Blog/Publisher** | Organization, Article/BlogPosting | Person (author), BreadcrumbList, FAQPage |
|
|
26
|
+
| **Local Business** | LocalBusiness, Organization | FAQPage, BreadcrumbList, Service |
|
|
27
|
+
| **Agency** | Organization, WebSite | FAQPage, BreadcrumbList, Person (team), Service |
|
|
28
|
+
|
|
29
|
+
## Step 3: Validate Against Google Requirements
|
|
30
|
+
|
|
31
|
+
For each detected schema type, validate required fields per Google's spec:
|
|
32
|
+
|
|
33
|
+
**Organization**: Must have `name`, `url`. Should have `logo`, `contactPoint`, `sameAs`.
|
|
34
|
+
**Article/BlogPosting**: Must have `headline`, `image`, `datePublished`, `author`. Missing `image` is the most common error.
|
|
35
|
+
**Product**: Must have `name`, `image`. If offers present: `price`, `priceCurrency`, `availability` required.
|
|
36
|
+
**FAQPage**: Must have at least one `mainEntity` with `Question` type. Each question needs `acceptedAnswer` with `text`.
|
|
37
|
+
**HowTo**: Must have `name`, `step[]`. Each step needs `text` or `name`.
|
|
38
|
+
**LocalBusiness**: Must have `name`, `address`, `telephone`. Should have `openingHours`, `geo`.
|
|
39
|
+
**BreadcrumbList**: Must have `itemListElement[]` with `position`, `name`, `item` (URL).
|
|
40
|
+
**SoftwareApplication**: Must have `name`, `operatingSystem` or `applicationCategory`. Should have `offers`, `aggregateRating`.
|
|
41
|
+
|
|
42
|
+
Flag missing required fields as errors. Flag missing recommended fields as warnings.
|
|
43
|
+
|
|
44
|
+
## Step 4: Schema Gap Analysis
|
|
45
|
+
|
|
46
|
+
Compare detected schemas against the project type requirements:
|
|
47
|
+
- **Missing required**: "Your SaaS site has no Organization schema — Google can't identify your brand entity"
|
|
48
|
+
- **Missing recommended**: "Adding FAQPage schema to your pricing page would enable FAQ rich results"
|
|
49
|
+
- **Incomplete schema**: "Your Article schema is missing the `image` field — this prevents article rich results in Google"
|
|
50
|
+
|
|
51
|
+
## Step 5: Generate Recommendations
|
|
52
|
+
|
|
53
|
+
For each missing schema, provide:
|
|
54
|
+
1. Which schema type to add
|
|
55
|
+
2. Which page(s) it should go on
|
|
56
|
+
3. What data to populate it with (infer from existing page content)
|
|
57
|
+
4. The generation command: `node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs generate <type> --name="..." --url="..."`
|
|
58
|
+
|
|
59
|
+
## Step 6: Validation Guide
|
|
60
|
+
|
|
61
|
+
After generating and injecting schema:
|
|
62
|
+
1. Test each page with [Rich Results Test](https://search.google.com/test/rich-results)
|
|
63
|
+
2. Test with [Schema.org Validator](https://validator.schema.org/) for general correctness
|
|
64
|
+
3. Request indexing in GSC for pages with new schema
|
|
65
|
+
4. Monitor GSC → Enhancements for each schema type (errors appear within days)
|
|
66
|
+
5. Submit to Bing Webmaster Tools for Copilot/ChatGPT visibility
|
|
67
|
+
|
|
68
|
+
## Output Format
|
|
8
69
|
|
|
9
|
-
Return JSON:
|
|
10
70
|
```json
|
|
11
71
|
{
|
|
12
72
|
"category": "schema",
|
|
73
|
+
"project_type": "saas",
|
|
13
74
|
"schemas_found": ["Organization", "FAQPage"],
|
|
14
|
-
"validation_issues": [
|
|
15
|
-
|
|
75
|
+
"validation_issues": [
|
|
76
|
+
{ "type": "Organization", "issue": "Missing 'logo' field (recommended)", "severity": "warning" }
|
|
77
|
+
],
|
|
78
|
+
"missing_required": ["WebSite", "SoftwareApplication"],
|
|
79
|
+
"missing_recommended": ["BreadcrumbList", "Article"],
|
|
80
|
+
"recommendations": [
|
|
81
|
+
"Add WebSite schema with SearchAction to homepage — enables sitelinks search box",
|
|
82
|
+
"Add SoftwareApplication schema to pricing page — enables software rich results",
|
|
83
|
+
"Add BreadcrumbList to all pages — improves search result appearance"
|
|
84
|
+
],
|
|
85
|
+
"gsc_actions": [
|
|
86
|
+
"Test new schema at search.google.com/test/rich-results",
|
|
87
|
+
"Monitor GSC → Enhancements for validation status",
|
|
88
|
+
"Request indexing for pages with new schema"
|
|
89
|
+
]
|
|
16
90
|
}
|
|
17
91
|
```
|
package/agents/seo-auditor.md
CHANGED
|
@@ -1,16 +1,60 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: seo-auditor
|
|
3
|
-
description: Runs core SEO audit
|
|
3
|
+
description: Runs core SEO audit, analyzes findings, identifies quick wins, and provides actionable fix priorities with GSC submission guidance.
|
|
4
4
|
model: inherit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
You are the SEO Auditor agent for claude-rank. Run a comprehensive SEO audit.
|
|
7
|
+
You are the SEO Auditor agent for claude-rank. Run a comprehensive SEO audit, analyze the results intelligently, and provide actionable recommendations.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Step 1: Detect Project Type
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
Before scanning, identify what kind of site this is by checking for signals:
|
|
12
|
+
- **SaaS**: Look for pricing pages, /dashboard, /signup, free trial CTAs
|
|
13
|
+
- **E-commerce**: Look for /product, /cart, /checkout, Product schema
|
|
14
|
+
- **Blog/Publisher**: Look for /blog, /posts, article schema, RSS feeds, author pages
|
|
15
|
+
- **Local Business**: Look for address, phone number, Google Maps embed, service area pages
|
|
16
|
+
- **Agency/Portfolio**: Look for /case-studies, /clients, /services, testimonials
|
|
17
|
+
|
|
18
|
+
This determines which findings matter most (e.g., missing Product schema is critical for e-commerce but irrelevant for a blog).
|
|
19
|
+
|
|
20
|
+
## Step 2: Run Scanner
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
node ${CLAUDE_PLUGIN_ROOT}/tools/seo-scanner.mjs <project-directory>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Parse the JSON output for findings and scores.
|
|
27
|
+
|
|
28
|
+
## Step 3: Analyze and Prioritize
|
|
29
|
+
|
|
30
|
+
Don't just list findings. Analyze them:
|
|
31
|
+
|
|
32
|
+
1. **Identify the top 3 quick wins** — findings that are easy to fix and have the highest impact:
|
|
33
|
+
- Missing title/meta description (critical for CTR)
|
|
34
|
+
- Missing sitemap.xml (critical for indexing)
|
|
35
|
+
- Blocked crawlers in robots.txt (critical for visibility)
|
|
36
|
+
|
|
37
|
+
2. **Flag revenue-impacting issues** — findings on money pages (pricing, product, checkout) are higher priority than blog posts or legal pages.
|
|
38
|
+
|
|
39
|
+
3. **Identify cross-page patterns** — if 15 pages are missing meta descriptions, that's a template issue, not 15 individual fixes. Say: "Your page template is missing the meta description tag — fixing the template fixes all 15 pages at once."
|
|
40
|
+
|
|
41
|
+
4. **Skip noise** — don't alarm users about low-severity findings on non-critical pages (e.g., missing analytics on a privacy policy page).
|
|
42
|
+
|
|
43
|
+
## Step 4: Recommend Fix Order
|
|
44
|
+
|
|
45
|
+
Prioritize fixes by impact:
|
|
46
|
+
1. **Blocking issues first** — noindex on important pages, robots.txt blocking crawlers, missing sitemap
|
|
47
|
+
2. **Indexing issues** — missing titles, missing canonical URLs, duplicate content
|
|
48
|
+
3. **Ranking issues** — thin content, missing schema, poor heading hierarchy
|
|
49
|
+
4. **Enhancement** — OG tags, Twitter cards, analytics, favicon
|
|
50
|
+
|
|
51
|
+
## Step 5: GSC/Bing Next Steps
|
|
52
|
+
|
|
53
|
+
After presenting findings, tell the user exactly what to do in search consoles:
|
|
54
|
+
- Which pages to request indexing for (the ones with fixes applied)
|
|
55
|
+
- Whether to resubmit sitemap (if sitemap was generated/updated)
|
|
56
|
+
- Which GSC reports to check (Coverage for indexing issues, Enhancements for schema)
|
|
57
|
+
- Bing URL Submission for fast re-indexing
|
|
14
58
|
|
|
15
59
|
## Output Format
|
|
16
60
|
|
|
@@ -19,10 +63,21 @@ Return results as a JSON code block:
|
|
|
19
63
|
```json
|
|
20
64
|
{
|
|
21
65
|
"category": "seo",
|
|
66
|
+
"project_type": "saas",
|
|
22
67
|
"scores": { "seo": 72 },
|
|
23
68
|
"findings": [
|
|
24
|
-
{ "severity": "high", "
|
|
69
|
+
{ "severity": "high", "rule": "missing-meta-description", "file": "index.html", "message": "No meta description found" }
|
|
70
|
+
],
|
|
71
|
+
"quick_wins": [
|
|
72
|
+
"Add meta descriptions to your page template — fixes 15 pages at once",
|
|
73
|
+
"Generate sitemap.xml — critical for Google indexing",
|
|
74
|
+
"Add canonical URLs to prevent duplicate content issues"
|
|
25
75
|
],
|
|
26
|
-
"fixes_available": 5
|
|
76
|
+
"fixes_available": 5,
|
|
77
|
+
"gsc_actions": [
|
|
78
|
+
"Submit sitemap.xml in GSC → Sitemaps",
|
|
79
|
+
"Request indexing for homepage and pricing page in URL Inspection",
|
|
80
|
+
"Check Coverage report for 'Crawled - currently not indexed' pages"
|
|
81
|
+
]
|
|
27
82
|
}
|
|
28
83
|
```
|
package/package.json
CHANGED
package/skills/rank-aeo/SKILL.md
CHANGED
|
@@ -35,3 +35,31 @@ Re-run aeo-scanner. Show before/after AEO score.
|
|
|
35
35
|
- Target conversational long-tail queries ("how do I...", "what is the best...")
|
|
36
36
|
- Keep primary answers under 29 words (Google voice search average)
|
|
37
37
|
- Add People Also Ask patterns as H2/H3 questions throughout content
|
|
38
|
+
|
|
39
|
+
## Phase 6: Search Console Submission
|
|
40
|
+
|
|
41
|
+
After deploying AEO fixes, submit to search engines to trigger rich result processing:
|
|
42
|
+
|
|
43
|
+
### Google Search Console
|
|
44
|
+
1. **Request indexing** for pages with new FAQ/HowTo/speakable schema — URL Inspection → Request Indexing
|
|
45
|
+
2. **Check Rich Results** — Enhancements → FAQPage / HowTo / Breadcrumbs / Article
|
|
46
|
+
- Verify new schema is detected and valid (no errors)
|
|
47
|
+
- Common issues: missing `image` in Article, missing `acceptedAnswer` in FAQ
|
|
48
|
+
3. **Test individual pages** — Use [Rich Results Test](https://search.google.com/test/rich-results) before and after fixes
|
|
49
|
+
4. **Monitor Featured Snippets** — Performance → Search Appearance → filter by "Featured snippets"
|
|
50
|
+
- Track which pages win snippets after AEO optimization
|
|
51
|
+
- If pages lose snippets, check if answer length changed (40-60 words optimal)
|
|
52
|
+
|
|
53
|
+
### Bing Webmaster Tools
|
|
54
|
+
1. **Submit URLs** — URL Submission → submit all pages with new schema
|
|
55
|
+
2. **Verify schema** — Bing supports FAQPage, HowTo, and speakable in its rich results
|
|
56
|
+
3. **Enable IndexNow** — instant re-indexing after schema changes
|
|
57
|
+
|
|
58
|
+
### Track Featured Snippet Wins
|
|
59
|
+
1. In GSC → Performance → Search Appearance → "Featured snippets"
|
|
60
|
+
2. Export the list of queries where your pages appear as featured snippets
|
|
61
|
+
3. For queries where competitors hold the snippet, optimize those pages:
|
|
62
|
+
- Add a direct answer in the first 40-60 words after the question H2
|
|
63
|
+
- Use numbered lists for "how to" queries
|
|
64
|
+
- Use definition format ("X is...") for "what is" queries
|
|
65
|
+
4. Recheck weekly — featured snippet ownership changes frequently
|
|
@@ -73,6 +73,94 @@ Advise on content optimizations the scanner cannot automate:
|
|
|
73
73
|
|
|
74
74
|
Guide link building: create link-worthy assets, guest posting, broken link building, HARO.
|
|
75
75
|
|
|
76
|
-
## Phase 8:
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
## Phase 8: Search Console Action Plan
|
|
77
|
+
|
|
78
|
+
After fixing issues, guide the user through submitting their improved site to search engines. This is the critical bridge between "audit complete" and "actually ranking."
|
|
79
|
+
|
|
80
|
+
### Google Search Console (GSC)
|
|
81
|
+
|
|
82
|
+
1. **Submit Sitemap**
|
|
83
|
+
- Go to [Google Search Console](https://search.google.com/search-console)
|
|
84
|
+
- Select your property → Sitemaps → Enter `sitemap.xml` → Submit
|
|
85
|
+
- If sitemap was just generated by `/rank fix`, confirm the file is deployed first
|
|
86
|
+
|
|
87
|
+
2. **Request Indexing for Money Pages**
|
|
88
|
+
- Go to URL Inspection → Paste each high-priority page URL
|
|
89
|
+
- Click "Request Indexing" for pages that were fixed (new title, meta description, schema added)
|
|
90
|
+
- Priority order for indexing requests:
|
|
91
|
+
- Homepage
|
|
92
|
+
- Pricing / signup page
|
|
93
|
+
- Top landing pages (highest revenue/conversion)
|
|
94
|
+
- Blog posts targeting competitive keywords
|
|
95
|
+
- Google allows ~10-12 indexing requests per day — prioritize your money pages
|
|
96
|
+
|
|
97
|
+
3. **Check Index Coverage**
|
|
98
|
+
- Go to Pages → review "Not indexed" list
|
|
99
|
+
- "Crawled - currently not indexed" → page needs content improvements or more internal links
|
|
100
|
+
- "Discovered - currently not indexed" → page needs stronger internal links pointing to it
|
|
101
|
+
- Verify any `noindex` pages found by scanner are intentional
|
|
102
|
+
|
|
103
|
+
4. **Validate Robots.txt**
|
|
104
|
+
- Go to Settings → Crawling → Open robots.txt report
|
|
105
|
+
- Verify updated robots.txt (AI bots unblocked) is live and valid
|
|
106
|
+
- Test specific URLs to confirm they're crawlable
|
|
107
|
+
|
|
108
|
+
5. **Check Rich Results**
|
|
109
|
+
- Go to Enhancements → review each schema type (FAQ, HowTo, Product, etc.)
|
|
110
|
+
- If `/rank fix` generated new JSON-LD, check for validation errors here
|
|
111
|
+
- Use [Rich Results Test](https://search.google.com/test/rich-results) to test individual pages
|
|
112
|
+
- Common issues: missing `image` field in Article, missing `price` in Product
|
|
113
|
+
|
|
114
|
+
6. **Monitor Core Web Vitals**
|
|
115
|
+
- Go to Experience → Core Web Vitals
|
|
116
|
+
- Note any "Poor" or "Needs Improvement" URLs — these directly affect rankings
|
|
117
|
+
- Focus on: LCP (Largest Contentful Paint), CLS (Cumulative Layout Shift), INP (Interaction to Next Paint)
|
|
118
|
+
|
|
119
|
+
### Bing Webmaster Tools
|
|
120
|
+
|
|
121
|
+
1. **Submit Sitemap**
|
|
122
|
+
- Go to [Bing Webmaster Tools](https://www.bing.com/webmasters)
|
|
123
|
+
- Configure Sitemaps → Submit your sitemap.xml URL
|
|
124
|
+
- Bing also reads the `Sitemap:` directive in robots.txt (already added by `/rank fix`)
|
|
125
|
+
|
|
126
|
+
2. **Submit URLs for Fast Indexing**
|
|
127
|
+
- Go to URL Submission → submit your top 10 money pages
|
|
128
|
+
- Bing allows up to 10,000 URL submissions per day (far more generous than Google)
|
|
129
|
+
- Submit ALL pages that had SEO fixes applied
|
|
130
|
+
|
|
131
|
+
3. **Enable IndexNow** (instant indexing)
|
|
132
|
+
- Bing supports [IndexNow](https://www.indexnow.org/) for near-instant indexing
|
|
133
|
+
- Generate an API key at indexnow.org → place key file at your domain root
|
|
134
|
+
- If using Next.js/WordPress, install IndexNow plugin for automatic ping on publish
|
|
135
|
+
- This feeds into Bing, Yandex, and Seznam simultaneously
|
|
136
|
+
|
|
137
|
+
4. **Verify Robots.txt**
|
|
138
|
+
- Go to Configure My Site → Block URLs → Robots.txt Tester
|
|
139
|
+
- Important: Bingbot feeds into Microsoft Copilot and ChatGPT Browse — keeping it unblocked is critical for AI visibility
|
|
140
|
+
|
|
141
|
+
### AI Search Verification
|
|
142
|
+
|
|
143
|
+
After deploying fixes, verify your site is visible to AI search engines:
|
|
144
|
+
|
|
145
|
+
1. **Test AI Visibility** (wait 2-4 weeks after robots.txt changes)
|
|
146
|
+
- Search your brand name + top 3 keywords in:
|
|
147
|
+
- ChatGPT (chat.openai.com)
|
|
148
|
+
- Perplexity (perplexity.ai)
|
|
149
|
+
- Google Gemini (gemini.google.com)
|
|
150
|
+
- Google AI Overviews (google.com — check the AI summary box)
|
|
151
|
+
- Screenshot results as baseline for tracking improvement
|
|
152
|
+
|
|
153
|
+
2. **Verify llms.txt**
|
|
154
|
+
- Visit `https://yourdomain.com/llms.txt` — confirm it returns content
|
|
155
|
+
- Check that it accurately describes your product and links to key pages
|
|
156
|
+
|
|
157
|
+
3. **Monitor AI Citations Weekly**
|
|
158
|
+
- Search your niche keywords in Perplexity and ChatGPT every week
|
|
159
|
+
- Track which pages get cited vs competitors
|
|
160
|
+
- Focus content improvements on topics where competitors are cited but you're not
|
|
161
|
+
- Add comparison tables, statistics, and direct definitions to boost citation probability
|
|
162
|
+
|
|
163
|
+
## Phase 9: Next Steps
|
|
164
|
+
|
|
165
|
+
Recommend which `/rank` sub-commands to run next based on lowest scores.
|
|
166
|
+
Present the user with a prioritized action checklist they can track.
|
package/skills/rank-geo/SKILL.md
CHANGED
|
@@ -33,10 +33,23 @@ Present GEO findings grouped by:
|
|
|
33
33
|
|
|
34
34
|
Re-run geo-scanner. Show before/after GEO score.
|
|
35
35
|
|
|
36
|
-
## Phase 5:
|
|
36
|
+
## Phase 5: Search Console Submission
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
After deploying GEO fixes, submit to search engines so AI crawlers pick up the changes:
|
|
39
|
+
|
|
40
|
+
### Google Search Console
|
|
41
|
+
1. **Resubmit sitemap** — Sitemaps → Resubmit `sitemap.xml` (triggers recrawl)
|
|
42
|
+
2. **Request indexing** for pages where you unblocked AI bots or added schema — URL Inspection → Request Indexing
|
|
43
|
+
3. **Check robots.txt** — Settings → Crawling → verify your updated robots.txt is live (AI bots unblocked)
|
|
44
|
+
|
|
45
|
+
### Bing Webmaster Tools
|
|
46
|
+
1. **Submit URLs** — URL Submission → submit pages with new schema/content structure
|
|
47
|
+
2. **Verify robots.txt** — Bingbot feeds Microsoft Copilot and ChatGPT Browse — keeping it unblocked is essential
|
|
48
|
+
3. **Enable IndexNow** — Near-instant indexing for Bing, Yandex, Seznam. Generate key at indexnow.org
|
|
49
|
+
|
|
50
|
+
### AI Search Verification (wait 2-4 weeks)
|
|
51
|
+
1. Search your brand name + top 3 keywords in ChatGPT, Perplexity, Google AI Overviews, Gemini
|
|
52
|
+
2. Screenshot results as a baseline
|
|
53
|
+
3. Note which competitors are cited — create citation-ready content for each gap (134-167 word passages)
|
|
42
54
|
4. Add comparison tables and statistics (156% higher AI selection with multimedia)
|
|
55
|
+
5. Set up weekly monitoring — track your AI citation rate vs competitors
|