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,278 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: seo-audit
|
|
3
|
+
description: >
|
|
4
|
+
Full website SEO audit with parallel skill delegation. Crawls up to 500
|
|
5
|
+
pages, detects business type, activates 10 specialist skills (7 core + 3
|
|
6
|
+
conditional), generates health score. Use when user says "audit",
|
|
7
|
+
"full SEO check", "analyze my site", or "website health check".
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Full Website SEO Audit
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. **Fetch homepage**: use `scripts/fetch_page.py` to retrieve HTML
|
|
15
|
+
2. **Detect business type**: analyze homepage signals per seo orchestrator
|
|
16
|
+
3. **Crawl site**: follow internal links up to 500 pages, respect robots.txt
|
|
17
|
+
4. **Activate specialist skills** (run analysis for each area):
|
|
18
|
+
- `seo-technical` -- robots.txt, sitemaps, canonicals, Core Web Vitals, security headers
|
|
19
|
+
- `seo-content` -- E-E-A-T, readability, thin content, AI citation readiness
|
|
20
|
+
- `seo-schema` -- detection, validation, generation recommendations
|
|
21
|
+
- `seo-sitemap` -- structure analysis, quality gates, missing pages
|
|
22
|
+
- `seo-performance` -- LCP, INP, CLS measurements
|
|
23
|
+
- `seo-visual` -- screenshots, mobile testing, above-fold analysis
|
|
24
|
+
- `seo-geo` -- AI crawler access, llms.txt, citability, brand mention signals
|
|
25
|
+
- `seo-local` -- GBP signals, NAP consistency, reviews, local schema, industry-specific local factors (activate when Local Service industry detected: brick-and-mortar, SAB, or hybrid business type)
|
|
26
|
+
- `seo-maps` -- Geo-grid rank tracking, GBP audit, review intelligence, competitor radius mapping (activate when Local Service detected AND DataForSEO MCP available)
|
|
27
|
+
- `seo-google` -- CWV field data (CrUX), URL indexation (GSC), organic traffic (GA4) (activate when Google API credentials detected via `python .agent/skills/seo-google/scripts/google_auth.py --check`)
|
|
28
|
+
5. **Score** -- aggregate into SEO Health Score (0-100)
|
|
29
|
+
6. **Report** -- generate prioritized action plan
|
|
30
|
+
7. **Offer PDF report**: "Generate a professional PDF report? Use `/seo-google report full`"
|
|
31
|
+
|
|
32
|
+
## Crawl Configuration
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Max pages: 500
|
|
36
|
+
Respect robots.txt: Yes
|
|
37
|
+
Follow redirects: Yes (max 3 hops)
|
|
38
|
+
Timeout per page: 30 seconds
|
|
39
|
+
Concurrent requests: 5
|
|
40
|
+
Delay between requests: 1 second
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Output Files
|
|
44
|
+
|
|
45
|
+
- `FULL-AUDIT-REPORT.md`: Comprehensive findings
|
|
46
|
+
- `ACTION-PLAN.md`: Prioritized recommendations (Critical > High > Medium > Low)
|
|
47
|
+
- `screenshots/`: Desktop + mobile captures (if Playwright available)
|
|
48
|
+
|
|
49
|
+
## Scoring Weights
|
|
50
|
+
|
|
51
|
+
| Category | Weight |
|
|
52
|
+
|----------|--------|
|
|
53
|
+
| Technical SEO | 22% |
|
|
54
|
+
| Content Quality | 23% |
|
|
55
|
+
| On-Page SEO | 20% |
|
|
56
|
+
| Schema / Structured Data | 10% |
|
|
57
|
+
| Performance (CWV) | 10% |
|
|
58
|
+
| AI Search Readiness | 10% |
|
|
59
|
+
| Images | 5% |
|
|
60
|
+
|
|
61
|
+
## Report Structure
|
|
62
|
+
|
|
63
|
+
### Executive Summary
|
|
64
|
+
- Overall SEO Health Score (0-100)
|
|
65
|
+
- Business type detected
|
|
66
|
+
- Top 5 critical issues
|
|
67
|
+
- Top 5 quick wins
|
|
68
|
+
|
|
69
|
+
### Technical SEO
|
|
70
|
+
- Crawlability issues
|
|
71
|
+
- Indexability problems
|
|
72
|
+
- Security concerns
|
|
73
|
+
- Core Web Vitals status
|
|
74
|
+
|
|
75
|
+
### Content Quality
|
|
76
|
+
- E-E-A-T assessment
|
|
77
|
+
- Thin content pages
|
|
78
|
+
- Duplicate content issues
|
|
79
|
+
- Readability scores
|
|
80
|
+
|
|
81
|
+
### On-Page SEO
|
|
82
|
+
- Title tag issues
|
|
83
|
+
- Meta description problems
|
|
84
|
+
- Heading structure
|
|
85
|
+
- Internal linking gaps
|
|
86
|
+
|
|
87
|
+
### Schema & Structured Data
|
|
88
|
+
- Current implementation
|
|
89
|
+
- Validation errors
|
|
90
|
+
- Missing opportunities
|
|
91
|
+
|
|
92
|
+
### Performance
|
|
93
|
+
- LCP, INP, CLS scores
|
|
94
|
+
- Resource optimization needs
|
|
95
|
+
- Third-party script impact
|
|
96
|
+
|
|
97
|
+
### Images
|
|
98
|
+
- Missing alt text
|
|
99
|
+
- Oversized images
|
|
100
|
+
- Format recommendations
|
|
101
|
+
|
|
102
|
+
### AI Search Readiness
|
|
103
|
+
- Citability score
|
|
104
|
+
- Structural improvements
|
|
105
|
+
- Authority signals
|
|
106
|
+
|
|
107
|
+
## Priority Definitions
|
|
108
|
+
|
|
109
|
+
- **Critical**: Blocks indexing or causes penalties (fix immediately)
|
|
110
|
+
- **High**: Significantly impacts rankings (fix within 1 week)
|
|
111
|
+
- **Medium**: Optimization opportunity (fix within 1 month)
|
|
112
|
+
- **Low**: Nice to have (backlog)
|
|
113
|
+
|
|
114
|
+
## DataForSEO Integration (Optional)
|
|
115
|
+
|
|
116
|
+
If DataForSEO MCP tools are available, activate the `seo-dataforseo` skill to enrich the audit with live data: real SERP positions, backlink profiles with spam scores, on-page analysis (Lighthouse), business listings, and AI visibility checks (ChatGPT scraper, LLM mentions).
|
|
117
|
+
|
|
118
|
+
## Error Handling
|
|
119
|
+
|
|
120
|
+
| Scenario | Action |
|
|
121
|
+
|----------|--------|
|
|
122
|
+
| URL unreachable (DNS failure, connection refused) | Report the error clearly. Do not guess site content. Suggest the user verify the URL and try again. |
|
|
123
|
+
| robots.txt blocks crawling | Report which paths are blocked. Analyze only accessible pages and note the limitation in the report. |
|
|
124
|
+
| Rate limiting (429 responses) | Back off and reduce concurrent requests. Report partial results with a note on which sections could not be completed. |
|
|
125
|
+
| Timeout on large sites (500+ pages) | Cap the crawl at the timeout limit. Report findings for pages crawled and estimate total site scope. |
|
|
126
|
+
|
|
127
|
+
## Performance Analysis Role
|
|
128
|
+
|
|
129
|
+
When assessing performance during audits:
|
|
130
|
+
|
|
131
|
+
You are a Web Performance specialist focused on Core Web Vitals.
|
|
132
|
+
|
|
133
|
+
## Current Metrics (as of 2026)
|
|
134
|
+
|
|
135
|
+
| Metric | Good | Needs Improvement | Poor |
|
|
136
|
+
|--------|------|-------------------|------|
|
|
137
|
+
| LCP (Largest Contentful Paint) | ≤2.5s | 2.5s–4.0s | >4.0s |
|
|
138
|
+
| INP (Interaction to Next Paint) | ≤200ms | 200ms–500ms | >500ms |
|
|
139
|
+
| CLS (Cumulative Layout Shift) | ≤0.1 | 0.1–0.25 | >0.25 |
|
|
140
|
+
|
|
141
|
+
**IMPORTANT**: INP replaced FID on March 12, 2024. FID was fully removed from all Chrome tools (CrUX API, PageSpeed Insights, Lighthouse) on September 9, 2024. INP is the sole interactivity metric. Never reference FID.
|
|
142
|
+
|
|
143
|
+
## Evaluation Method
|
|
144
|
+
|
|
145
|
+
Google evaluates the **75th percentile** of page visits, 75% of visits must meet the "good" threshold to pass.
|
|
146
|
+
|
|
147
|
+
## When Analyzing Performance
|
|
148
|
+
|
|
149
|
+
1. Use PageSpeed Insights API if available
|
|
150
|
+
2. Otherwise, analyze HTML source for common issues
|
|
151
|
+
3. Provide specific, actionable optimization recommendations
|
|
152
|
+
4. Prioritize by expected impact
|
|
153
|
+
|
|
154
|
+
## Common LCP Issues
|
|
155
|
+
|
|
156
|
+
- Unoptimized hero images (compress, WebP/AVIF, preload)
|
|
157
|
+
- Render-blocking CSS/JS (defer, async, critical CSS)
|
|
158
|
+
- Slow server response TTFB >200ms (edge CDN, caching)
|
|
159
|
+
- Third-party scripts blocking render
|
|
160
|
+
- Web font loading delay
|
|
161
|
+
|
|
162
|
+
## Common INP Issues
|
|
163
|
+
|
|
164
|
+
- Long JavaScript tasks on main thread (break into <50ms chunks)
|
|
165
|
+
- Heavy event handlers (debounce, requestAnimationFrame)
|
|
166
|
+
- Excessive DOM size (>1,500 elements)
|
|
167
|
+
- Third-party scripts hijacking main thread
|
|
168
|
+
- Synchronous operations blocking
|
|
169
|
+
|
|
170
|
+
## Common CLS Issues
|
|
171
|
+
|
|
172
|
+
- Images without width/height dimensions
|
|
173
|
+
- Dynamically injected content
|
|
174
|
+
- Web fonts causing FOIT/FOUT
|
|
175
|
+
- Ads/embeds without reserved space
|
|
176
|
+
- Late-loading elements
|
|
177
|
+
|
|
178
|
+
## Performance Tooling (2025-2026)
|
|
179
|
+
|
|
180
|
+
**Lighthouse 13.0** (October 2025): Major audit restructuring with reorganized performance categories and updated scoring weights. Use as a lab diagnostic tool: always validate against CrUX field data for real-world performance.
|
|
181
|
+
|
|
182
|
+
**CrUX Vis** replaced the CrUX Dashboard (November 2025). The old Looker Studio dashboard was deprecated. Use [CrUX Vis](https://cruxvis.withgoogle.com) or the CrUX API directly.
|
|
183
|
+
|
|
184
|
+
**LCP subparts** (TTFB, resource load delay, resource load time, element render delay) are now available in CrUX data (February 2025). See `seo/references/cwv-thresholds.md` for details.
|
|
185
|
+
|
|
186
|
+
## Tools
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# PageSpeed Insights API
|
|
190
|
+
curl "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=URL&key=API_KEY"
|
|
191
|
+
|
|
192
|
+
# Lighthouse CLI
|
|
193
|
+
npx lighthouse URL --output json
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Output Format
|
|
197
|
+
|
|
198
|
+
Provide:
|
|
199
|
+
- Performance score (0-100)
|
|
200
|
+
- Core Web Vitals status (pass/fail per metric)
|
|
201
|
+
- Specific bottlenecks identified
|
|
202
|
+
- Prioritized recommendations with expected impact
|
|
203
|
+
|
|
204
|
+
## Visual Analysis Role
|
|
205
|
+
|
|
206
|
+
When performing visual analysis during audits:
|
|
207
|
+
|
|
208
|
+
You are a Visual Analysis specialist using Playwright for browser automation.
|
|
209
|
+
|
|
210
|
+
## Prerequisites
|
|
211
|
+
|
|
212
|
+
Before capturing screenshots, ensure Playwright and Chromium are installed:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
pip install playwright && playwright install chromium
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## When Analyzing Pages
|
|
219
|
+
|
|
220
|
+
1. Capture desktop screenshot (1920x1080)
|
|
221
|
+
2. Capture mobile screenshot (375x812, iPhone viewport)
|
|
222
|
+
3. Analyze above-the-fold content: is the primary CTA visible?
|
|
223
|
+
4. Check for visual layout issues, overlapping elements
|
|
224
|
+
5. Verify mobile responsiveness
|
|
225
|
+
|
|
226
|
+
## Screenshot Script
|
|
227
|
+
|
|
228
|
+
Use the screenshot script (at `.agent/skills/seo/scripts/capture_screenshot.py`) for browser automation:
|
|
229
|
+
|
|
230
|
+
```python
|
|
231
|
+
from playwright.sync_api import sync_playwright
|
|
232
|
+
|
|
233
|
+
def capture(url, output_path, viewport_width=1920, viewport_height=1080):
|
|
234
|
+
with sync_playwright() as p:
|
|
235
|
+
browser = p.chromium.launch()
|
|
236
|
+
page = browser.new_page(viewport={'width': viewport_width, 'height': viewport_height})
|
|
237
|
+
page.goto(url, wait_until='networkidle')
|
|
238
|
+
page.screenshot(path=output_path, full_page=False)
|
|
239
|
+
browser.close()
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Viewports to Test
|
|
243
|
+
|
|
244
|
+
| Device | Width | Height |
|
|
245
|
+
|--------|-------|--------|
|
|
246
|
+
| Desktop | 1920 | 1080 |
|
|
247
|
+
| Laptop | 1366 | 768 |
|
|
248
|
+
| Tablet | 768 | 1024 |
|
|
249
|
+
| Mobile | 375 | 812 |
|
|
250
|
+
|
|
251
|
+
## Visual Checks
|
|
252
|
+
|
|
253
|
+
### Above-the-Fold Analysis
|
|
254
|
+
- Primary heading (H1) visible without scrolling
|
|
255
|
+
- Main CTA visible without scrolling
|
|
256
|
+
- Hero image/content loading properly
|
|
257
|
+
- No layout shifts on load
|
|
258
|
+
|
|
259
|
+
### Mobile Responsiveness
|
|
260
|
+
- Navigation accessible (hamburger menu or visible)
|
|
261
|
+
- Touch targets at least 48x48px
|
|
262
|
+
- No horizontal scroll
|
|
263
|
+
- Text readable without zooming (16px+ base font)
|
|
264
|
+
|
|
265
|
+
### Visual Issues
|
|
266
|
+
- Overlapping elements
|
|
267
|
+
- Text cut off or overflow
|
|
268
|
+
- Images not scaling properly
|
|
269
|
+
- Broken layout at different widths
|
|
270
|
+
|
|
271
|
+
## Output Format
|
|
272
|
+
|
|
273
|
+
Provide:
|
|
274
|
+
- Screenshots saved to `screenshots/` directory
|
|
275
|
+
- Visual analysis summary
|
|
276
|
+
- Mobile responsiveness assessment
|
|
277
|
+
- Above-the-fold content evaluation
|
|
278
|
+
- Specific issues with element locations
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: seo-competitor-pages
|
|
3
|
+
description: >
|
|
4
|
+
Generate SEO-optimized competitor comparison and alternatives pages. Covers
|
|
5
|
+
"X vs Y" layouts, "alternatives to X" pages, feature matrices, schema markup,
|
|
6
|
+
and conversion optimization. Use when user says "comparison page", "vs page",
|
|
7
|
+
"alternatives page", "competitor comparison", or "X vs Y".
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Competitor Comparison & Alternatives Pages
|
|
11
|
+
|
|
12
|
+
Create high-converting comparison and alternatives pages that target
|
|
13
|
+
competitive intent keywords with accurate, structured content.
|
|
14
|
+
|
|
15
|
+
## Page Types
|
|
16
|
+
|
|
17
|
+
### 1. "X vs Y" Comparison Pages
|
|
18
|
+
- Direct head-to-head comparison between two products/services
|
|
19
|
+
- Balanced feature-by-feature analysis
|
|
20
|
+
- Clear verdict or recommendation with justification
|
|
21
|
+
- Target keyword: `[Product A] vs [Product B]`
|
|
22
|
+
|
|
23
|
+
### 2. "Alternatives to X" Pages
|
|
24
|
+
- List of alternatives to a specific product/service
|
|
25
|
+
- Each alternative with brief summary, pros/cons, best-for use case
|
|
26
|
+
- Target keyword: `[Product] alternatives`, `best alternatives to [Product]`
|
|
27
|
+
|
|
28
|
+
### 3. "Best [Category] Tools" Roundup Pages
|
|
29
|
+
- Curated list of top tools/services in a category
|
|
30
|
+
- Ranking criteria clearly stated
|
|
31
|
+
- Target keyword: `best [category] tools [year]`, `top [category] software`
|
|
32
|
+
|
|
33
|
+
### 4. Comparison Table Pages
|
|
34
|
+
- Feature matrix with multiple products in columns
|
|
35
|
+
- Sortable/filterable if interactive
|
|
36
|
+
- Target keyword: `[category] comparison`, `[category] comparison chart`
|
|
37
|
+
|
|
38
|
+
## Comparison Table Generation
|
|
39
|
+
|
|
40
|
+
### Feature Matrix Layout
|
|
41
|
+
```
|
|
42
|
+
| Feature | Your Product | Competitor A | Competitor B |
|
|
43
|
+
|------------------|:------------:|:------------:|:------------:|
|
|
44
|
+
| Feature 1 | ✅ | ✅ | ❌ |
|
|
45
|
+
| Feature 2 | ✅ | ⚠️ Partial | ✅ |
|
|
46
|
+
| Feature 3 | ✅ | ❌ | ❌ |
|
|
47
|
+
| Pricing (from) | $X/mo | $Y/mo | $Z/mo |
|
|
48
|
+
| Free Tier | ✅ | ❌ | ✅ |
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Data Accuracy Requirements
|
|
52
|
+
- All feature claims must be verifiable from public sources
|
|
53
|
+
- Pricing must be current (include "as of [date]" note)
|
|
54
|
+
- Update frequency: review quarterly or when competitors ship major changes
|
|
55
|
+
- Link to source for each competitor data point where possible
|
|
56
|
+
|
|
57
|
+
## Schema Markup Recommendations
|
|
58
|
+
|
|
59
|
+
### Product Schema with AggregateRating
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"@context": "https://schema.org",
|
|
63
|
+
"@type": "Product",
|
|
64
|
+
"name": "[Product Name]",
|
|
65
|
+
"description": "[Product Description]",
|
|
66
|
+
"brand": {
|
|
67
|
+
"@type": "Brand",
|
|
68
|
+
"name": "[Brand Name]"
|
|
69
|
+
},
|
|
70
|
+
"aggregateRating": {
|
|
71
|
+
"@type": "AggregateRating",
|
|
72
|
+
"ratingValue": "[Rating]",
|
|
73
|
+
"reviewCount": "[Count]",
|
|
74
|
+
"bestRating": "5",
|
|
75
|
+
"worstRating": "1"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### SoftwareApplication (for software comparisons)
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"@context": "https://schema.org",
|
|
84
|
+
"@type": "SoftwareApplication",
|
|
85
|
+
"name": "[Software Name]",
|
|
86
|
+
"applicationCategory": "[Category]",
|
|
87
|
+
"operatingSystem": "[OS]",
|
|
88
|
+
"offers": {
|
|
89
|
+
"@type": "Offer",
|
|
90
|
+
"price": "[Price]",
|
|
91
|
+
"priceCurrency": "USD"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### ItemList (for roundup pages)
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"@context": "https://schema.org",
|
|
100
|
+
"@type": "ItemList",
|
|
101
|
+
"name": "Best [Category] Tools [Year]",
|
|
102
|
+
"itemListOrder": "https://schema.org/ItemListOrderDescending",
|
|
103
|
+
"numberOfItems": "[Count]",
|
|
104
|
+
"itemListElement": [
|
|
105
|
+
{
|
|
106
|
+
"@type": "ListItem",
|
|
107
|
+
"position": 1,
|
|
108
|
+
"name": "[Product Name]",
|
|
109
|
+
"url": "[Product URL]"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Keyword Targeting
|
|
116
|
+
|
|
117
|
+
### Comparison Intent Patterns
|
|
118
|
+
| Pattern | Example | Search Volume Signal |
|
|
119
|
+
|---------|---------|---------------------|
|
|
120
|
+
| `[A] vs [B]` | "Slack vs Teams" | High |
|
|
121
|
+
| `[A] alternative` | "Figma alternatives" | High |
|
|
122
|
+
| `[A] alternatives [year]` | "Notion alternatives 2026" | High |
|
|
123
|
+
| `best [category] tools` | "best project management tools" | High |
|
|
124
|
+
| `[A] vs [B] for [use case]` | "AWS vs Azure for startups" | Medium |
|
|
125
|
+
| `[A] review [year]` | "Monday.com review 2026" | Medium |
|
|
126
|
+
| `[A] vs [B] pricing` | "HubSpot vs Salesforce pricing" | Medium |
|
|
127
|
+
| `is [A] better than [B]` | "is Notion better than Confluence" | Medium |
|
|
128
|
+
|
|
129
|
+
### Title Tag Formulas
|
|
130
|
+
- X vs Y: `[A] vs [B]: [Key Differentiator] ([Year])`
|
|
131
|
+
- Alternatives: `[N] Best [A] Alternatives in [Year] (Free & Paid)`
|
|
132
|
+
- Roundup: `[N] Best [Category] Tools in [Year], Compared & Ranked`
|
|
133
|
+
|
|
134
|
+
### H1 Patterns
|
|
135
|
+
- Match title tag intent
|
|
136
|
+
- Include primary keyword naturally
|
|
137
|
+
- Keep under 70 characters
|
|
138
|
+
|
|
139
|
+
## Conversion-Optimized Layouts
|
|
140
|
+
|
|
141
|
+
### CTA Placement
|
|
142
|
+
- **Above fold**: Brief comparison summary with primary CTA
|
|
143
|
+
- **After comparison table**: "Try [Your Product] free" CTA
|
|
144
|
+
- **Bottom of page**: Final recommendation with CTA
|
|
145
|
+
- Avoid aggressive CTAs in competitor description sections (reduces trust)
|
|
146
|
+
|
|
147
|
+
### Social Proof Sections
|
|
148
|
+
- Customer testimonials relevant to comparison criteria
|
|
149
|
+
- G2/Capterra/TrustPilot ratings (with source links)
|
|
150
|
+
- Case studies showing migration from competitor
|
|
151
|
+
- "Switched from [Competitor]" stories
|
|
152
|
+
|
|
153
|
+
### Pricing Highlights
|
|
154
|
+
- Clear pricing comparison table
|
|
155
|
+
- Highlight value advantages (not just lowest price)
|
|
156
|
+
- Include hidden costs (setup fees, per-user pricing, overage charges)
|
|
157
|
+
- Link to full pricing page
|
|
158
|
+
|
|
159
|
+
### Trust Signals
|
|
160
|
+
- "Last updated [date]" timestamp
|
|
161
|
+
- Author with relevant expertise
|
|
162
|
+
- Methodology disclosure (how comparisons were conducted)
|
|
163
|
+
- Disclosure of own product affiliation
|
|
164
|
+
|
|
165
|
+
## Fairness Guidelines
|
|
166
|
+
|
|
167
|
+
- **Accuracy**: All competitor information must be verifiable from public sources
|
|
168
|
+
- **No defamation**: Never make false or misleading claims about competitors
|
|
169
|
+
- **Cite sources**: Link to competitor websites, review sites, or documentation
|
|
170
|
+
- **Timely updates**: Review and update when competitors release major changes
|
|
171
|
+
- **Disclose affiliation**: Clearly state which product is yours
|
|
172
|
+
- **Balanced presentation**: Acknowledge competitor strengths honestly
|
|
173
|
+
- **Pricing accuracy**: Include "as of [date]" disclaimers on all pricing data
|
|
174
|
+
- **Feature verification**: Test competitor features where possible, cite documentation otherwise
|
|
175
|
+
|
|
176
|
+
## Internal Linking
|
|
177
|
+
|
|
178
|
+
- Link to your own product/service pages from comparison sections
|
|
179
|
+
- Cross-link between related comparison pages (e.g., "A vs B" links to "A vs C")
|
|
180
|
+
- Link to feature-specific pages when discussing individual features
|
|
181
|
+
- Breadcrumb: Home > Comparisons > [This Page]
|
|
182
|
+
- Related comparisons section at bottom of page
|
|
183
|
+
- Link to case studies and testimonials mentioned in the comparison
|
|
184
|
+
|
|
185
|
+
## Output
|
|
186
|
+
|
|
187
|
+
### Comparison Page Template
|
|
188
|
+
- `COMPARISON-PAGE.md`: Ready-to-implement page structure with sections
|
|
189
|
+
- Feature matrix table
|
|
190
|
+
- Content outline with word count targets (minimum 1,500 words)
|
|
191
|
+
|
|
192
|
+
### Schema Markup
|
|
193
|
+
- `comparison-schema.json`: Product/SoftwareApplication/ItemList JSON-LD
|
|
194
|
+
|
|
195
|
+
### Keyword Strategy
|
|
196
|
+
- Primary and secondary keywords
|
|
197
|
+
- Related long-tail opportunities
|
|
198
|
+
- Content gaps vs existing competitor pages
|
|
199
|
+
|
|
200
|
+
### Recommendations
|
|
201
|
+
- Content improvements for existing comparison pages
|
|
202
|
+
- New comparison page opportunities
|
|
203
|
+
- Schema markup additions
|
|
204
|
+
- Conversion optimization suggestions
|
|
205
|
+
|
|
206
|
+
## Error Handling
|
|
207
|
+
|
|
208
|
+
| Scenario | Action |
|
|
209
|
+
|----------|--------|
|
|
210
|
+
| Competitor URL unreachable | Report which competitor URLs failed. Proceed with available data and note gaps in the comparison. |
|
|
211
|
+
| Insufficient competitor data (pricing, features unavailable) | Flag missing data points clearly. Use "Not publicly available" in comparison tables rather than guessing. |
|
|
212
|
+
| No product/service overlap found | Report that the products serve different markets. Suggest alternative competitors that share feature overlap, or pivot to a category roundup format. |
|