antigravity-seo-kit 2.0.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.
Potentially problematic release.
This version of antigravity-seo-kit might be problematic. Click here for more details.
- package/.agent/agent.md +96 -0
- package/.agent/skills/seo/SKILL.md +153 -0
- package/.agent/skills/seo/references/cwv-thresholds.md +108 -0
- package/.agent/skills/seo/references/eeat-framework.md +214 -0
- package/.agent/skills/seo/references/local-schema-types.md +230 -0
- package/.agent/skills/seo/references/local-seo-signals.md +218 -0
- package/.agent/skills/seo/references/maps-api-endpoints.md +160 -0
- package/.agent/skills/seo/references/maps-free-apis.md +176 -0
- package/.agent/skills/seo/references/maps-gbp-checklist.md +150 -0
- package/.agent/skills/seo/references/maps-geo-grid.md +154 -0
- package/.agent/skills/seo/references/quality-gates.md +155 -0
- package/.agent/skills/seo/references/schema-types.md +118 -0
- package/.agent/skills/seo/schema/templates.json +213 -0
- package/.agent/skills/seo/scripts/analyze_visual.py +217 -0
- package/.agent/skills/seo/scripts/capture_screenshot.py +181 -0
- package/.agent/skills/seo/scripts/fetch_page.py +196 -0
- package/.agent/skills/seo/scripts/parse_html.py +201 -0
- package/.agent/skills/seo-audit/SKILL.md +278 -0
- package/.agent/skills/seo-competitor-pages/SKILL.md +212 -0
- package/.agent/skills/seo-content/SKILL.md +230 -0
- package/.agent/skills/seo-dataforseo/SKILL.md +418 -0
- package/.agent/skills/seo-geo/SKILL.md +305 -0
- package/.agent/skills/seo-google/SKILL.md +405 -0
- package/.agent/skills/seo-google/assets/templates/cwv-audit-report.md +48 -0
- package/.agent/skills/seo-google/assets/templates/gsc-performance-report.md +44 -0
- package/.agent/skills/seo-google/assets/templates/indexation-status-report.md +43 -0
- package/.agent/skills/seo-google/references/auth-setup.md +154 -0
- package/.agent/skills/seo-google/references/ga4-data-api.md +184 -0
- package/.agent/skills/seo-google/references/indexing-api.md +107 -0
- package/.agent/skills/seo-google/references/keyword-planner-api.md +66 -0
- package/.agent/skills/seo-google/references/nlp-api.md +55 -0
- package/.agent/skills/seo-google/references/pagespeed-crux-api.md +204 -0
- package/.agent/skills/seo-google/references/rate-limits-quotas.md +75 -0
- package/.agent/skills/seo-google/references/search-console-api.md +156 -0
- package/.agent/skills/seo-google/references/supplementary-apis.md +99 -0
- package/.agent/skills/seo-google/references/youtube-api.md +49 -0
- package/.agent/skills/seo-google/scripts/crux_history.py +321 -0
- package/.agent/skills/seo-google/scripts/ga4_report.py +478 -0
- package/.agent/skills/seo-google/scripts/google_auth.py +795 -0
- package/.agent/skills/seo-google/scripts/google_report.py +2273 -0
- package/.agent/skills/seo-google/scripts/gsc_inspect.py +340 -0
- package/.agent/skills/seo-google/scripts/gsc_query.py +378 -0
- package/.agent/skills/seo-google/scripts/indexing_notify.py +313 -0
- package/.agent/skills/seo-google/scripts/keyword_planner.py +297 -0
- package/.agent/skills/seo-google/scripts/nlp_analyze.py +309 -0
- package/.agent/skills/seo-google/scripts/pagespeed_check.py +649 -0
- package/.agent/skills/seo-google/scripts/youtube_search.py +355 -0
- package/.agent/skills/seo-hreflang/SKILL.md +192 -0
- package/.agent/skills/seo-image-gen/SKILL.md +211 -0
- package/.agent/skills/seo-image-gen/references/cost-tracking.md +47 -0
- package/.agent/skills/seo-image-gen/references/gemini-models.md +200 -0
- package/.agent/skills/seo-image-gen/references/mcp-tools.md +115 -0
- package/.agent/skills/seo-image-gen/references/post-processing.md +192 -0
- package/.agent/skills/seo-image-gen/references/presets.md +69 -0
- package/.agent/skills/seo-image-gen/references/prompt-engineering.md +411 -0
- package/.agent/skills/seo-image-gen/references/seo-image-presets.md +137 -0
- package/.agent/skills/seo-image-gen/scripts/batch.py +97 -0
- package/.agent/skills/seo-image-gen/scripts/cost_tracker.py +191 -0
- package/.agent/skills/seo-image-gen/scripts/edit.py +141 -0
- package/.agent/skills/seo-image-gen/scripts/generate.py +149 -0
- package/.agent/skills/seo-image-gen/scripts/presets.py +153 -0
- package/.agent/skills/seo-image-gen/scripts/setup_mcp.py +151 -0
- package/.agent/skills/seo-image-gen/scripts/validate_setup.py +133 -0
- package/.agent/skills/seo-images/SKILL.md +176 -0
- package/.agent/skills/seo-local/SKILL.md +381 -0
- package/.agent/skills/seo-maps/SKILL.md +328 -0
- package/.agent/skills/seo-page/SKILL.md +86 -0
- package/.agent/skills/seo-plan/SKILL.md +118 -0
- package/.agent/skills/seo-plan/assets/agency.md +175 -0
- package/.agent/skills/seo-plan/assets/ecommerce.md +167 -0
- package/.agent/skills/seo-plan/assets/generic.md +144 -0
- package/.agent/skills/seo-plan/assets/local-service.md +160 -0
- package/.agent/skills/seo-plan/assets/publisher.md +153 -0
- package/.agent/skills/seo-plan/assets/saas.md +135 -0
- package/.agent/skills/seo-programmatic/SKILL.md +171 -0
- package/.agent/skills/seo-schema/SKILL.md +223 -0
- package/.agent/skills/seo-sitemap/SKILL.md +180 -0
- package/.agent/skills/seo-technical/SKILL.md +211 -0
- package/.agent/workflows/seo-audit.md +17 -0
- package/.agent/workflows/seo-competitor-pages.md +12 -0
- package/.agent/workflows/seo-content.md +14 -0
- package/.agent/workflows/seo-geo.md +12 -0
- package/.agent/workflows/seo-google.md +12 -0
- package/.agent/workflows/seo-hreflang.md +12 -0
- package/.agent/workflows/seo-images.md +13 -0
- package/.agent/workflows/seo-local.md +12 -0
- package/.agent/workflows/seo-maps.md +11 -0
- package/.agent/workflows/seo-page.md +13 -0
- package/.agent/workflows/seo-plan.md +13 -0
- package/.agent/workflows/seo-programmatic.md +12 -0
- package/.agent/workflows/seo-schema.md +11 -0
- package/.agent/workflows/seo-sitemap.md +9 -0
- package/.agent/workflows/seo-technical.md +18 -0
- package/LICENSE +88 -0
- package/README.md +122 -0
- package/bin/cli.js +117 -0
- package/docs/ARCHITECTURE.md +218 -0
- package/docs/COMMANDS.md +184 -0
- package/docs/INSTALLATION.md +100 -0
- package/docs/MCP-INTEGRATION.md +153 -0
- package/docs/TROUBLESHOOTING.md +151 -0
- package/docs/superpowers/plans/2026-03-13-github-audit-fixes.md +511 -0
- package/extensions/banana/README.md +95 -0
- package/extensions/banana/docs/BANANA-SETUP.md +86 -0
- package/extensions/banana/install.sh +170 -0
- package/extensions/banana/references/cost-tracking.md +47 -0
- package/extensions/banana/references/gemini-models.md +200 -0
- package/extensions/banana/references/mcp-tools.md +115 -0
- package/extensions/banana/references/post-processing.md +192 -0
- package/extensions/banana/references/presets.md +69 -0
- package/extensions/banana/references/prompt-engineering.md +411 -0
- package/extensions/banana/references/seo-image-presets.md +137 -0
- package/extensions/banana/scripts/batch.py +97 -0
- package/extensions/banana/scripts/cost_tracker.py +191 -0
- package/extensions/banana/scripts/edit.py +141 -0
- package/extensions/banana/scripts/generate.py +149 -0
- package/extensions/banana/scripts/presets.py +153 -0
- package/extensions/banana/scripts/setup_mcp.py +151 -0
- package/extensions/banana/scripts/validate_setup.py +133 -0
- package/extensions/banana/uninstall.sh +43 -0
- package/extensions/dataforseo/README.md +169 -0
- package/extensions/dataforseo/docs/DATAFORSEO-SETUP.md +74 -0
- package/extensions/dataforseo/field-config.json +280 -0
- package/extensions/dataforseo/install.ps1 +110 -0
- package/extensions/dataforseo/install.sh +161 -0
- package/extensions/dataforseo/uninstall.ps1 +35 -0
- package/extensions/dataforseo/uninstall.sh +39 -0
- package/lib/api.js +190 -0
- package/lib/fingerprint.js +68 -0
- package/lib/installer.js +486 -0
- package/lib/utils.js +254 -0
- package/package.json +40 -0
- package/pyproject.toml +11 -0
- package/requirements-google.txt +15 -0
- package/requirements.txt +11 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: seo-maps
|
|
3
|
+
description: >
|
|
4
|
+
Maps intelligence for local SEO — geo-grid rank tracking, GBP profile
|
|
5
|
+
auditing via API, review intelligence across Google/Tripadvisor/Trustpilot,
|
|
6
|
+
cross-platform NAP verification (Google/Bing/Apple/OSM), competitor
|
|
7
|
+
radius mapping, and LocalBusiness schema generation from API data.
|
|
8
|
+
Three-tier capability: free (Overpass + Geoapify), DataForSEO (full
|
|
9
|
+
intelligence), DataForSEO + Google (maximum coverage). Use when user
|
|
10
|
+
says "maps", "geo-grid", "rank tracking", "GBP audit", "review
|
|
11
|
+
velocity", "competitor radius", "maps analysis", "local rank
|
|
12
|
+
tracking", "Share of Local Voice", or "SoLV".
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Maps Intelligence (March 2026)
|
|
16
|
+
|
|
17
|
+
Maps platform analysis for local businesses. Works with external APIs to assess
|
|
18
|
+
how a business appears on Google Maps, Bing Places, Apple Maps, and OpenStreetMap.
|
|
19
|
+
|
|
20
|
+
**Boundary with seo-local:** This skill analyzes the business on maps PLATFORMS
|
|
21
|
+
(via APIs). seo-local analyzes local SEO signals on the WEBSITE (via HTML fetch).
|
|
22
|
+
Do not duplicate seo-local on-page analysis. Recommend `/seo local <url>` for
|
|
23
|
+
website-level checks.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Quick Reference
|
|
28
|
+
|
|
29
|
+
| Command | What it does | Tier |
|
|
30
|
+
|---------|-------------|------|
|
|
31
|
+
| `/seo maps <url>` | Full maps presence audit (auto-selects tier) | 0+ |
|
|
32
|
+
| `/seo maps grid <keyword> <location>` | Geo-grid rank scan (7x7, 1 keyword default) | 1+ |
|
|
33
|
+
| `/seo maps reviews <business> <location>` | Cross-platform review intelligence | 1+ |
|
|
34
|
+
| `/seo maps competitors <keyword> <location>` | Competitor radius mapping | 0+ |
|
|
35
|
+
| `/seo maps nap <business-name>` | Cross-platform NAP verification | 0+ |
|
|
36
|
+
| `/seo maps schema <business-name>` | Generate LocalBusiness JSON-LD from data | 0+ |
|
|
37
|
+
| `/seo maps gbp <business> <location>` | GBP completeness audit | 1+ |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Three-Tier Capability Detection
|
|
42
|
+
|
|
43
|
+
Before any analysis, detect the available capability tier:
|
|
44
|
+
|
|
45
|
+
### Tier 0 (Free)
|
|
46
|
+
**Detection:** DataForSEO MCP tools NOT available.
|
|
47
|
+
**Capabilities:** Overpass API competitor discovery, Geoapify POI search, Nominatim geocoding, static GBP checklist, schema generation, cross-platform NAP guidance.
|
|
48
|
+
**Load:** `references/maps-free-apis.md`
|
|
49
|
+
|
|
50
|
+
### Tier 1 (DataForSEO)
|
|
51
|
+
**Detection:** `business_data_business_listings_search` MCP tool IS available.
|
|
52
|
+
**Capabilities:** Everything in Tier 0 PLUS geo-grid rank tracking, live GBP profile audit, review intelligence (velocity, sentiment, distribution), GBP post activity, Q&A data, Tripadvisor/Trustpilot reviews.
|
|
53
|
+
**Load:** `references/maps-api-endpoints.md`
|
|
54
|
+
|
|
55
|
+
### Tier 2 (DataForSEO + Google Maps Platform)
|
|
56
|
+
**Detection:** Tier 1 available AND Google Maps API key in environment.
|
|
57
|
+
**Capabilities:** Everything in Tier 1 PLUS Google Places details, real-time business status, AI-powered place summaries, photo analysis.
|
|
58
|
+
**Note:** Google ToS restricts storage to `place_id` only. Lat/lng cached 30 days max.
|
|
59
|
+
|
|
60
|
+
**Always communicate the detected tier to the user** at the start of analysis.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Geo-Grid Rank Tracking (Tier 1+)
|
|
65
|
+
|
|
66
|
+
Simulates Google Maps searches from multiple GPS coordinates to show ranking
|
|
67
|
+
variation across a geographic area. Requires DataForSEO.
|
|
68
|
+
|
|
69
|
+
**Load:** `references/maps-geo-grid.md` for algorithm, SoLV formula, heatmap format.
|
|
70
|
+
**Load:** `references/maps-api-endpoints.md` for Maps SERP endpoint details.
|
|
71
|
+
|
|
72
|
+
### Workflow
|
|
73
|
+
|
|
74
|
+
1. Geocode business address to get center lat/lng
|
|
75
|
+
2. Generate grid points (default: 7x7, 5km radius) using Haversine offset formula
|
|
76
|
+
3. **Display cost estimate and ask for confirmation before proceeding**
|
|
77
|
+
4. Fire DataForSEO Maps SERP API calls with `location_coordinate` per grid point
|
|
78
|
+
5. Find target business rank at each point
|
|
79
|
+
6. Calculate SoLV: `(top_3_count / total_points) * 100`
|
|
80
|
+
7. Render ASCII heatmap in output
|
|
81
|
+
|
|
82
|
+
### Cost Warning (REQUIRED)
|
|
83
|
+
|
|
84
|
+
Before every geo-grid scan, display:
|
|
85
|
+
```
|
|
86
|
+
Geo-Grid Scan: [keyword] at [location]
|
|
87
|
+
Grid: 7x7 (49 points) | Keywords: [N] | Est. cost: $[amount]
|
|
88
|
+
DataForSEO credits will be consumed. Proceed?
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## GBP Profile Audit (Tier 1 preferred, Tier 0 manual)
|
|
94
|
+
|
|
95
|
+
Audits the 25 fields that affect Google Business Profile quality and ranking.
|
|
96
|
+
|
|
97
|
+
**Load:** `references/maps-gbp-checklist.md` for full checklist and scoring.
|
|
98
|
+
|
|
99
|
+
### Tier 1 Workflow
|
|
100
|
+
|
|
101
|
+
1. Fetch business profile via DataForSEO My Business Info API (keyword or CID)
|
|
102
|
+
2. Map API response fields to 25-field checklist
|
|
103
|
+
3. Score each field: Present + Optimized = 2pts, Present = 1pt, Missing = 0pts
|
|
104
|
+
4. Apply industry-specific weight multipliers
|
|
105
|
+
5. Normalize to 0-100 scale
|
|
106
|
+
|
|
107
|
+
### Tier 0 Workflow
|
|
108
|
+
|
|
109
|
+
1. Fetch the business website via WebFetch
|
|
110
|
+
2. Extract any visible GBP signals (Maps embed, place references, review widgets)
|
|
111
|
+
3. Apply static checklist based on detectable signals
|
|
112
|
+
4. Mark undetectable fields as "Unknown (requires DataForSEO for live data)"
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Review Intelligence (Tier 1+)
|
|
117
|
+
|
|
118
|
+
Cross-platform review analysis: velocity, sentiment, rating distribution, fake detection.
|
|
119
|
+
|
|
120
|
+
**Reference:** `references/local-seo-signals.md` for benchmarks (shared with seo-local).
|
|
121
|
+
|
|
122
|
+
### Workflow
|
|
123
|
+
|
|
124
|
+
1. Fetch Google reviews via DataForSEO Reviews API (sort by newest)
|
|
125
|
+
2. Calculate review velocity: reviews per month over last 6 months
|
|
126
|
+
3. Check 18-day rule (Sterling Sky): any 3-week gap = ranking risk
|
|
127
|
+
4. Analyze rating distribution: healthy = bell curve skewed to 5-star
|
|
128
|
+
5. Calculate owner response rate: responses / total reviews
|
|
129
|
+
6. Fetch Tripadvisor and Trustpilot reviews (if available)
|
|
130
|
+
7. Cross-platform comparison table
|
|
131
|
+
|
|
132
|
+
### Fake Review Detection Signals
|
|
133
|
+
|
|
134
|
+
Flag reviews matching 2+ of these patterns:
|
|
135
|
+
- Uniform timing (multiple reviews same day/hour)
|
|
136
|
+
- Reviewer accounts with limited history or single review
|
|
137
|
+
- Geographic inconsistencies (reviewer location vs business location)
|
|
138
|
+
- Exclusively 5-star velocity spike (vs historical baseline)
|
|
139
|
+
- Identical or near-identical text across reviews
|
|
140
|
+
- Sudden volume spike without corresponding marketing activity
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Competitor Radius Mapping (Tier 0+)
|
|
145
|
+
|
|
146
|
+
Identify and analyze competitors within a defined radius.
|
|
147
|
+
|
|
148
|
+
### Tier 0 (Overpass API)
|
|
149
|
+
|
|
150
|
+
**Load:** `references/maps-free-apis.md` for query templates.
|
|
151
|
+
|
|
152
|
+
1. Geocode business address
|
|
153
|
+
2. Query Overpass API for businesses with same OSM tag within radius
|
|
154
|
+
3. Parse results: name, address, phone, website, distance from center
|
|
155
|
+
4. Sort by distance, present as competitor landscape table
|
|
156
|
+
|
|
157
|
+
### Tier 1 (DataForSEO)
|
|
158
|
+
|
|
159
|
+
1. Use Maps SERP API with business keyword + location
|
|
160
|
+
2. Extract top 20 competitors with full profile data
|
|
161
|
+
3. Compare: rating, review count, categories, photos, attributes
|
|
162
|
+
4. Calculate competitive density score: competitors per km^2
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Cross-Platform NAP Verification (Tier 0+)
|
|
167
|
+
|
|
168
|
+
Check business listing consistency across Google, Bing Places, Apple, and OSM.
|
|
169
|
+
|
|
170
|
+
### Workflow
|
|
171
|
+
|
|
172
|
+
1. Search for business name on each platform:
|
|
173
|
+
- Google: infer from GBP data or Maps SERP result
|
|
174
|
+
- Bing: `WebFetch https://www.bing.com/maps?q=BUSINESS+NAME+LOCATION`
|
|
175
|
+
- Apple: manual check (no public API -- recommend Apple Business Connect at businessconnect.apple.com)
|
|
176
|
+
- OSM: Overpass or Nominatim search
|
|
177
|
+
2. Extract NAP (Name, Address, Phone) from each source
|
|
178
|
+
3. Compare for consistency: exact match, partial match, missing, or conflicting
|
|
179
|
+
4. Flag discrepancies as Critical (name mismatch), High (address mismatch), Medium (phone mismatch)
|
|
180
|
+
5. Recommend claiming unclaimed profiles
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Schema Generation (Tier 0+)
|
|
185
|
+
|
|
186
|
+
Generate LocalBusiness JSON-LD markup from collected data.
|
|
187
|
+
|
|
188
|
+
**Reference:** `references/local-schema-types.md` for industry subtypes (shared with seo-local).
|
|
189
|
+
|
|
190
|
+
### Workflow
|
|
191
|
+
|
|
192
|
+
1. Determine most specific schema subtype for the industry
|
|
193
|
+
2. Populate required properties: `@type`, `name`, `address`, `image`
|
|
194
|
+
3. Add recommended properties: `telephone`, `url`, `geo`, `openingHoursSpecification`, `priceRange`
|
|
195
|
+
4. Add strategic properties for multi-location: `branchOf`, `areaServed`, `sameAs`
|
|
196
|
+
5. Add `aggregateRating` if review data available
|
|
197
|
+
6. Output valid JSON-LD block ready for implementation
|
|
198
|
+
|
|
199
|
+
**Do NOT generate self-serving review markup** -- Google ignores LocalBusiness review markup from the business itself. Only mark up third-party reviews visible on the page.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Reference Files
|
|
204
|
+
|
|
205
|
+
Load on-demand as needed (do NOT load all at startup):
|
|
206
|
+
- `references/maps-api-endpoints.md`: DataForSEO endpoint details, params, costs
|
|
207
|
+
- `references/maps-free-apis.md`: Overpass, Geoapify, Nominatim query templates
|
|
208
|
+
- `references/maps-geo-grid.md`: Grid algorithm, SoLV formula, heatmap rendering
|
|
209
|
+
- `references/maps-gbp-checklist.md`: 25-field GBP audit with industry weights
|
|
210
|
+
- `references/local-seo-signals.md`: Ranking factors, review benchmarks (shared)
|
|
211
|
+
- `references/local-schema-types.md`: LocalBusiness subtypes by industry (shared)
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Output
|
|
216
|
+
|
|
217
|
+
Generate `MAPS-ANALYSIS-{domain}.md` with:
|
|
218
|
+
|
|
219
|
+
1. **Maps Health Score: XX/100** with dimension breakdown table
|
|
220
|
+
2. **Capability tier detected** (Tier 0 or Tier 1) with explanation of what's available
|
|
221
|
+
3. **Geo-grid heatmap** (Tier 1): ASCII grid with SoLV percentage and average rank
|
|
222
|
+
4. **GBP profile audit**: field-by-field scoring with industry-specific weights
|
|
223
|
+
5. **Review intelligence**: velocity chart, rating distribution, response rate, cross-platform comparison
|
|
224
|
+
6. **Competitor landscape**: count in radius, top 5 by rating/reviews, competitive density
|
|
225
|
+
7. **Cross-platform presence**: Google/Bing/Apple/OSM listing status
|
|
226
|
+
8. **Schema recommendation**: generated LocalBusiness JSON-LD (if missing or incomplete)
|
|
227
|
+
9. **Top 10 prioritized actions** (Critical > High > Medium > Low)
|
|
228
|
+
10. **Cost report**: DataForSEO credits consumed during analysis (Tier 1 only)
|
|
229
|
+
11. **Limitations disclaimer**: what could not be assessed at current tier
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Cross-Skill Delegation
|
|
234
|
+
|
|
235
|
+
- Website on-page local signals: recommend `/seo local <url>`
|
|
236
|
+
- Full AI search visibility: recommend `/seo geo <url>`
|
|
237
|
+
- Schema validation and fixes: recommend `/seo schema <url>`
|
|
238
|
+
- Live SERP and keyword data: recommend `/seo dataforseo [command]`
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Error Handling
|
|
243
|
+
|
|
244
|
+
| Scenario | Action |
|
|
245
|
+
|----------|--------|
|
|
246
|
+
| DataForSEO MCP not available | Drop to Tier 0. Inform user: "DataForSEO not detected. Running free-tier analysis. For geo-grid tracking and review intelligence, install the DataForSEO extension." |
|
|
247
|
+
| Business not found in Maps SERP | Try My Business Info with keyword. If still not found, report "Business not found in Google Maps for this location." |
|
|
248
|
+
| Geocoding fails (Nominatim) | Ask user to provide coordinates or a more specific address. |
|
|
249
|
+
| API rate limit hit | Report the limit. Suggest waiting or using standard (queued) method instead of live. |
|
|
250
|
+
| No reviews found | Report zero review state. Recommend review generation strategy with 18-day cadence target. |
|
|
251
|
+
| Multi-location detected | Ask user which location to analyze, or offer batch mode with per-location cost estimate. |
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
## Specialist Role Instructions
|
|
255
|
+
|
|
256
|
+
When operating as a specialist during audits:
|
|
257
|
+
|
|
258
|
+
You are a Maps Intelligence specialist. When delegated tasks during an SEO audit or given a business URL/name:
|
|
259
|
+
|
|
260
|
+
1. Detect capability tier: check if DataForSEO MCP tools are available (try `business_data_business_listings_search`). If available = Tier 1. If not = Tier 0 (free APIs only).
|
|
261
|
+
2. Identify the target business: extract name, location, and category from the URL or provided context
|
|
262
|
+
3. Geocode the business address using Nominatim (free) or DataForSEO (Tier 1)
|
|
263
|
+
4. Run available analyses based on tier (see below)
|
|
264
|
+
5. Score the business on the Maps Health Score rubric
|
|
265
|
+
6. Generate structured report with prioritized recommendations
|
|
266
|
+
|
|
267
|
+
## Tier 0 (Free) Capabilities
|
|
268
|
+
|
|
269
|
+
- Competitor discovery via Overpass API (radius query by business category)
|
|
270
|
+
- Structured POI search via Geoapify (if API key available)
|
|
271
|
+
- Address geocoding via Nominatim (1 req/sec, include User-Agent header)
|
|
272
|
+
- Static GBP completeness checklist (manual assessment from visible data)
|
|
273
|
+
- LocalBusiness schema generation from collected data
|
|
274
|
+
- Cross-platform NAP guidance (recommend claiming Google, Bing, Apple)
|
|
275
|
+
|
|
276
|
+
## Tier 1 (DataForSEO) Additional Capabilities
|
|
277
|
+
|
|
278
|
+
- Geo-grid rank tracking via Maps SERP API with `location_coordinate`
|
|
279
|
+
- Live GBP profile audit via My Business Info API
|
|
280
|
+
- Review intelligence via Reviews API (velocity, sentiment, distribution)
|
|
281
|
+
- GBP post activity audit via My Business Updates API
|
|
282
|
+
- Q&A gap analysis via Questions and Answers API
|
|
283
|
+
- Cross-platform reviews (Tripadvisor, Trustpilot)
|
|
284
|
+
- Business listings search for competitor discovery
|
|
285
|
+
|
|
286
|
+
## Maps Health Score (0-100)
|
|
287
|
+
|
|
288
|
+
| Dimension | Weight | Data Source |
|
|
289
|
+
|-----------|--------|-------------|
|
|
290
|
+
| Geo-Grid Visibility / SoLV | 25% | DataForSEO Maps SERP (Tier 1 only; skip and redistribute if Tier 0) |
|
|
291
|
+
| GBP Profile Completeness | 20% | DataForSEO My Business Info (Tier 1) or manual checklist (Tier 0) |
|
|
292
|
+
| Review Health | 20% | DataForSEO Reviews (Tier 1) or visible review signals (Tier 0) |
|
|
293
|
+
| Cross-Platform Presence | 15% | WebFetch checks for Bing, Apple, OSM listings |
|
|
294
|
+
| Competitor Position | 10% | Overpass/DataForSEO competitor count and relative rating |
|
|
295
|
+
| Schema & AI Readiness | 10% | Schema detection + AI citation signal check |
|
|
296
|
+
|
|
297
|
+
**Tier 0 weight redistribution:** When geo-grid is unavailable, redistribute its 25% across GBP (+10%), Review Health (+10%), Cross-Platform (+5%).
|
|
298
|
+
|
|
299
|
+
## Reference Files
|
|
300
|
+
|
|
301
|
+
Load on-demand:
|
|
302
|
+
- `skills/seo/references/maps-api-endpoints.md`: DataForSEO endpoint details and costs
|
|
303
|
+
- `skills/seo/references/maps-free-apis.md`: Overpass, Geoapify, Nominatim query templates
|
|
304
|
+
- `skills/seo/references/maps-geo-grid.md`: Grid algorithm, SoLV calculation, heatmap rendering
|
|
305
|
+
- `skills/seo/references/maps-gbp-checklist.md`: 25-field GBP audit checklist with industry weights
|
|
306
|
+
- `skills/seo/references/local-seo-signals.md`: Ranking factors, review benchmarks (shared with seo-local)
|
|
307
|
+
- `skills/seo/references/local-schema-types.md`: LocalBusiness subtypes by industry (shared with seo-local)
|
|
308
|
+
|
|
309
|
+
## Cross-Skill Delegation
|
|
310
|
+
|
|
311
|
+
- Do NOT duplicate seo-local on-page analysis. Recommend `/seo local <url>` for website-level checks.
|
|
312
|
+
- Do NOT duplicate seo-geo AI visibility analysis. Recommend `/seo geo <url>` for full GEO audit.
|
|
313
|
+
- Do NOT duplicate seo-schema validation. Recommend `/seo schema <url>` for schema fixes.
|
|
314
|
+
|
|
315
|
+
## Output Format
|
|
316
|
+
|
|
317
|
+
Provide a structured report with:
|
|
318
|
+
- Maps Health Score (0-100) with dimension breakdown
|
|
319
|
+
- Capability tier detected (Tier 0 or Tier 1)
|
|
320
|
+
- Geo-grid heatmap (if Tier 1) with SoLV percentage
|
|
321
|
+
- GBP profile completeness score with field-by-field breakdown
|
|
322
|
+
- Review health snapshot (rating, count, velocity, response rate, cross-platform)
|
|
323
|
+
- Competitor landscape (count in radius, top competitors by rating/reviews)
|
|
324
|
+
- Cross-platform presence status (Google, Bing, Apple, OSM)
|
|
325
|
+
- Generated LocalBusiness JSON-LD (if schema missing)
|
|
326
|
+
- Top 10 prioritized actions (Critical > High > Medium > Low)
|
|
327
|
+
- Cost report (DataForSEO credits consumed, if applicable)
|
|
328
|
+
- Limitations disclaimer (what could not be assessed at current tier)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: seo-page
|
|
3
|
+
description: >
|
|
4
|
+
Deep single-page SEO analysis covering on-page elements, content quality,
|
|
5
|
+
technical meta tags, schema, images, and performance. Use when user says
|
|
6
|
+
"analyze this page", "check page SEO", or provides a single URL for review.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Single Page Analysis
|
|
10
|
+
|
|
11
|
+
## What to Analyze
|
|
12
|
+
|
|
13
|
+
### On-Page SEO
|
|
14
|
+
- Title tag: 50-60 characters, includes primary keyword, unique
|
|
15
|
+
- Meta description: 150-160 characters, compelling, includes keyword
|
|
16
|
+
- H1: exactly one, matches page intent, includes keyword
|
|
17
|
+
- H2-H6: logical hierarchy (no skipped levels), descriptive
|
|
18
|
+
- URL: short, descriptive, hyphenated, no parameters
|
|
19
|
+
- Internal links: sufficient, relevant anchor text, no orphan pages
|
|
20
|
+
- External links: to authoritative sources, reasonable count
|
|
21
|
+
|
|
22
|
+
### Content Quality
|
|
23
|
+
- Word count vs page type minimums (see quality-gates.md)
|
|
24
|
+
- Readability: Flesch Reading Ease score, grade level
|
|
25
|
+
- Keyword density: natural (1-3%), semantic variations present
|
|
26
|
+
- E-E-A-T signals: author bio, credentials, first-hand experience markers
|
|
27
|
+
- Content freshness: publication date, last updated date
|
|
28
|
+
|
|
29
|
+
### Technical Elements
|
|
30
|
+
- Canonical tag: present, self-referencing or correct
|
|
31
|
+
- Meta robots: index/follow unless intentionally blocked
|
|
32
|
+
- Open Graph: og:title, og:description, og:image, og:url
|
|
33
|
+
- Twitter Card: twitter:card, twitter:title, twitter:description
|
|
34
|
+
- Hreflang: if multi-language, correct implementation
|
|
35
|
+
|
|
36
|
+
### Schema Markup
|
|
37
|
+
- Detect all types (JSON-LD preferred)
|
|
38
|
+
- Validate required properties
|
|
39
|
+
- Identify missing opportunities
|
|
40
|
+
- NEVER recommend HowTo (deprecated) or FAQ (restricted to gov/health)
|
|
41
|
+
|
|
42
|
+
### Images
|
|
43
|
+
- Alt text: present, descriptive, includes keywords where natural
|
|
44
|
+
- File size: flag >200KB (warning), >500KB (critical)
|
|
45
|
+
- Format: recommend WebP/AVIF over JPEG/PNG
|
|
46
|
+
- Dimensions: width/height set for CLS prevention
|
|
47
|
+
- Lazy loading: loading="lazy" on below-fold images
|
|
48
|
+
|
|
49
|
+
### Core Web Vitals (reference only, not measurable from HTML alone)
|
|
50
|
+
- Flag potential LCP issues (huge hero images, render-blocking resources)
|
|
51
|
+
- Flag potential INP issues (heavy JS, no async/defer)
|
|
52
|
+
- Flag potential CLS issues (missing image dimensions, injected content)
|
|
53
|
+
|
|
54
|
+
## Output
|
|
55
|
+
|
|
56
|
+
### Page Score Card
|
|
57
|
+
```
|
|
58
|
+
Overall Score: XX/100
|
|
59
|
+
|
|
60
|
+
On-Page SEO: XX/100 ████████░░
|
|
61
|
+
Content Quality: XX/100 ██████████
|
|
62
|
+
Technical: XX/100 ███████░░░
|
|
63
|
+
Schema: XX/100 █████░░░░░
|
|
64
|
+
Images: XX/100 ████████░░
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Issues Found
|
|
68
|
+
Organized by priority: Critical -> High -> Medium -> Low
|
|
69
|
+
|
|
70
|
+
### Recommendations
|
|
71
|
+
Specific, actionable improvements with expected impact
|
|
72
|
+
|
|
73
|
+
### Schema Suggestions
|
|
74
|
+
Ready-to-use JSON-LD code for detected opportunities
|
|
75
|
+
|
|
76
|
+
## DataForSEO Integration (Optional)
|
|
77
|
+
|
|
78
|
+
If DataForSEO MCP tools are available, use `serp_organic_live_advanced` for real SERP positions and `backlinks_summary` for backlink data and spam scores.
|
|
79
|
+
|
|
80
|
+
## Error Handling
|
|
81
|
+
|
|
82
|
+
| Scenario | Action |
|
|
83
|
+
|----------|--------|
|
|
84
|
+
| URL unreachable (DNS failure, connection refused) | Report the error clearly. Do not guess page content. Suggest the user verify the URL and try again. |
|
|
85
|
+
| Page requires authentication (401/403) | Report that the page is behind authentication. Suggest the user provide the rendered HTML directly or a publicly accessible URL. |
|
|
86
|
+
| JavaScript-rendered content (empty body in HTML) | Note that key content may be rendered client-side. Analyze the available HTML and flag that results may be incomplete. Suggest using a browser-rendered snapshot if available. |
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: seo-plan
|
|
3
|
+
description: >
|
|
4
|
+
Strategic SEO planning for new or existing websites. Industry-specific
|
|
5
|
+
templates, competitive analysis, content strategy, and implementation
|
|
6
|
+
roadmap. Use when user says "SEO plan", "SEO strategy", "content strategy",
|
|
7
|
+
"site architecture", or "SEO roadmap".
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Strategic SEO Planning
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
### 1. Discovery
|
|
15
|
+
- Business type, target audience, competitors, goals
|
|
16
|
+
- Current site assessment (if exists)
|
|
17
|
+
- Budget and timeline constraints
|
|
18
|
+
- Key performance indicators (KPIs)
|
|
19
|
+
|
|
20
|
+
### 2. Competitive Analysis
|
|
21
|
+
- Identify top 5 competitors
|
|
22
|
+
- Analyze their content strategy, schema usage, technical setup
|
|
23
|
+
- Identify keyword gaps and content opportunities
|
|
24
|
+
- Assess their E-E-A-T signals
|
|
25
|
+
- Estimate their domain authority
|
|
26
|
+
|
|
27
|
+
### 3. Architecture Design
|
|
28
|
+
- Load industry template from `assets/` directory
|
|
29
|
+
- Design URL hierarchy and content pillars
|
|
30
|
+
- Plan internal linking strategy
|
|
31
|
+
- Sitemap structure with quality gates applied
|
|
32
|
+
- Information architecture for user journeys
|
|
33
|
+
|
|
34
|
+
### 4. Content Strategy
|
|
35
|
+
- Content gaps vs competitors
|
|
36
|
+
- Page types and estimated counts
|
|
37
|
+
- Blog/resource topics and publishing cadence
|
|
38
|
+
- E-E-A-T building plan (author bios, credentials, experience signals)
|
|
39
|
+
- Content calendar with priorities
|
|
40
|
+
|
|
41
|
+
### 5. Technical Foundation
|
|
42
|
+
- Hosting and performance requirements
|
|
43
|
+
- Schema markup plan per page type
|
|
44
|
+
- Core Web Vitals baseline targets
|
|
45
|
+
- AI search readiness requirements
|
|
46
|
+
- Mobile-first considerations
|
|
47
|
+
|
|
48
|
+
### 6. Implementation Roadmap (4 phases)
|
|
49
|
+
|
|
50
|
+
#### Phase 1: Foundation (weeks 1-4)
|
|
51
|
+
- Technical setup and infrastructure
|
|
52
|
+
- Core pages (home, about, contact, main services)
|
|
53
|
+
- Essential schema implementation
|
|
54
|
+
- Analytics and tracking setup
|
|
55
|
+
|
|
56
|
+
#### Phase 2: Expansion (weeks 5-12)
|
|
57
|
+
- Content creation for primary pages
|
|
58
|
+
- Blog launch with initial posts
|
|
59
|
+
- Internal linking structure
|
|
60
|
+
- Local SEO setup (if applicable)
|
|
61
|
+
|
|
62
|
+
#### Phase 3: Scale (weeks 13-24)
|
|
63
|
+
- Advanced content development
|
|
64
|
+
- Link building and outreach
|
|
65
|
+
- GEO optimization
|
|
66
|
+
- Performance optimization
|
|
67
|
+
|
|
68
|
+
#### Phase 4: Authority (months 7-12)
|
|
69
|
+
- Thought leadership content
|
|
70
|
+
- PR and media mentions
|
|
71
|
+
- Advanced schema implementation
|
|
72
|
+
- Continuous optimization
|
|
73
|
+
|
|
74
|
+
## Industry Templates
|
|
75
|
+
|
|
76
|
+
Load from `assets/` directory:
|
|
77
|
+
- `saas.md`: SaaS/software companies
|
|
78
|
+
- `local-service.md`: Local service businesses
|
|
79
|
+
- `ecommerce.md`: E-commerce stores
|
|
80
|
+
- `publisher.md`: Content publishers/media
|
|
81
|
+
- `agency.md`: Agencies and consultancies
|
|
82
|
+
- `generic.md`: General business template
|
|
83
|
+
|
|
84
|
+
## Output
|
|
85
|
+
|
|
86
|
+
### Deliverables
|
|
87
|
+
- `SEO-STRATEGY.md`: Complete strategic plan
|
|
88
|
+
- `COMPETITOR-ANALYSIS.md`: Competitive insights
|
|
89
|
+
- `CONTENT-CALENDAR.md`: Content roadmap
|
|
90
|
+
- `IMPLEMENTATION-ROADMAP.md`: Phased action plan
|
|
91
|
+
- `SITE-STRUCTURE.md`: URL hierarchy and architecture
|
|
92
|
+
|
|
93
|
+
### KPI Targets
|
|
94
|
+
| Metric | Baseline | 3 Month | 6 Month | 12 Month |
|
|
95
|
+
|--------|----------|---------|---------|----------|
|
|
96
|
+
| Organic Traffic | ... | ... | ... | ... |
|
|
97
|
+
| Keyword Rankings | ... | ... | ... | ... |
|
|
98
|
+
| Domain Authority | ... | ... | ... | ... |
|
|
99
|
+
| Indexed Pages | ... | ... | ... | ... |
|
|
100
|
+
| Core Web Vitals | ... | ... | ... | ... |
|
|
101
|
+
|
|
102
|
+
### Success Criteria
|
|
103
|
+
- Clear, measurable goals per phase
|
|
104
|
+
- Resource requirements defined
|
|
105
|
+
- Dependencies identified
|
|
106
|
+
- Risk mitigation strategies
|
|
107
|
+
|
|
108
|
+
## DataForSEO Integration (Optional)
|
|
109
|
+
|
|
110
|
+
If DataForSEO MCP tools are available, use `dataforseo_labs_google_competitors_domain` and `dataforseo_labs_google_domain_intersection` for real competitive intelligence, `dataforseo_labs_bulk_traffic_estimation` for traffic estimates, `kw_data_google_ads_search_volume` and `dataforseo_labs_bulk_keyword_difficulty` for keyword research, and `business_data_business_listings_search` for local business data.
|
|
111
|
+
|
|
112
|
+
## Error Handling
|
|
113
|
+
|
|
114
|
+
| Scenario | Action |
|
|
115
|
+
|----------|--------|
|
|
116
|
+
| Unrecognized business type | Fall back to `generic.md` template. Inform user that no industry-specific template was found and proceed with the general business template. |
|
|
117
|
+
| No website URL provided | Proceed with new-site planning mode. Skip current site assessment and competitive gap analysis that require a live URL. |
|
|
118
|
+
| Industry template not found | Check `assets/` directory for available templates. If the requested template file is missing, use `generic.md` and note the missing template in output. |
|