@hanzlaa/rcode 4.3.3 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +1 -1
- package/README.md +10 -4
- package/cli/doctor.js +21 -3
- package/cli/index.js +5 -1
- package/cli/install.js +2 -2
- package/cli/postinstall.js +1 -1
- package/cli/uninstall.js +48 -6
- package/dist/rcode.js +174 -170
- package/package.json +12 -22
- package/rcode/agents/rcode-codebase-mapper.md +12 -0
- package/rcode/agents/rcode-phase-researcher.md +13 -0
- package/rcode/agents/rcode-project-researcher.md +32 -0
- package/rcode/agents/rcode-roadmapper.md +15 -0
- package/rcode/agents/rules/planner/common-patterns.md +40 -0
- package/rcode/bin/lib/roadmap.cjs +184 -11
- package/rcode/bin/rcode-hooks.cjs +102 -151
- package/rcode/bin/rcode-tools.cjs +669 -55
- package/rcode/data/intent-table.json +87 -0
- package/rcode/modules/seo.yaml +22 -0
- package/rcode/references/project-types.yaml +75 -0
- package/rcode/skills/SKILLS_INDEX.md +17 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/SKILL.md +4 -21
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/heartbeat.sh +0 -0
- package/rcode/skills/actions/4-implementation/rcode-scaffold-project/SKILL.md +60 -1
- package/rcode/skills/core/rcode-init/scripts/__pycache__/rcode_init.cpython-38.pyc +0 -0
- package/rcode/skills/core/rcode-init/scripts/tests/__pycache__/test_rcode_init.cpython-38.pyc +0 -0
- package/rcode/skills/seo/module.yaml +20 -0
- package/rcode/skills/seo/on-page-seo-auditor/SKILL.md +308 -0
- package/rcode/skills/seo/on-page-seo-auditor/references/audit-example.md +109 -0
- package/rcode/skills/seo/on-page-seo-auditor/references/audit-templates.md +427 -0
- package/rcode/skills/seo/on-page-seo-auditor/references/bulk-audit-playbook.md +116 -0
- package/rcode/skills/seo/on-page-seo-auditor/references/scoring-rubric.md +525 -0
- package/rcode/skills/seo/rank-and-rent-local-seo/SKILL.md +94 -0
- package/rcode/skills/seo/rank-and-rent-local-seo/rules/city-matrix-and-pages.md +76 -0
- package/rcode/skills/seo/rank-and-rent-local-seo/rules/monetization.md +70 -0
- package/rcode/skills/seo/rank-and-rent-local-seo/rules/niche-selection.md +60 -0
- package/rcode/skills/seo/rank-and-rent-local-seo/rules/subniche-discovery.md +66 -0
- package/rcode/skills/seo/rank-and-rent-local-seo/templates/service-city-page.md +36 -0
- package/rcode/skills/seo/rank-and-rent-local-seo/templates/subniche-research-prompt.md +34 -0
- package/rcode/skills/seo/seo-audit/SKILL.md +412 -0
- package/rcode/skills/seo/seo-audit/evals/evals.json +136 -0
- package/rcode/skills/seo/seo-audit/references/ai-writing-detection.md +200 -0
- package/rcode/skills/seo/seo-content-factory/SKILL.md +130 -0
- package/rcode/skills/seo/seo-content-factory/rules/agents.md +80 -0
- package/rcode/skills/seo/seo-content-factory/rules/herdr-wave-mapping.md +80 -0
- package/rcode/skills/seo/seo-content-factory/rules/pipeline.md +102 -0
- package/rcode/skills/seo/seo-content-factory/rules/programmatic-pages.md +107 -0
- package/rcode/skills/seo/seo-content-factory/rules/quality-gates.md +68 -0
- package/rcode/skills/seo/seo-content-factory/rules/weekly-cadence.md +61 -0
- package/rcode/skills/seo/seo-content-factory/templates/BACKLOG.md +23 -0
- package/rcode/skills/seo/seo-content-factory/templates/agent-prompts/01-funnel-A1-A4.md +63 -0
- package/rcode/skills/seo/seo-content-factory/templates/agent-prompts/02-fanout-editorial-A5-A6-A8.md +28 -0
- package/rcode/skills/seo/seo-content-factory/templates/agent-prompts/03-fanout-programmatic-A7-A6-A8.md +25 -0
- package/rcode/skills/seo/seo-content-factory/templates/agent-prompts/04-loop-A9-A10.md +34 -0
- package/rcode/skills/seo/seo-content-factory/templates/article.mdx +39 -0
- package/rcode/skills/seo/seo-content-factory/templates/cluster.schema.json +52 -0
- package/rcode/skills/seo/seo-content-factory/templates/content-brief.md +51 -0
- package/rcode/skills/seo/seo-content-factory/templates/jsonld-builders.ts +49 -0
- package/rcode/skills/seo/seo-content-factory/templates/keywords.csv +13 -0
- package/rcode/skills/seo/seo-content-factory/templates/programmatic-page.tsx +58 -0
- package/rcode/skills/seo/seo-content-writer/SKILL.md +263 -0
- package/rcode/skills/seo/seo-content-writer/references/content-structure-templates.md +875 -0
- package/rcode/skills/seo/seo-content-writer/references/instructions-detail.md +239 -0
- package/rcode/skills/seo/seo-content-writer/references/seo-writing-checklist.md +250 -0
- package/rcode/skills/seo/seo-content-writer/references/title-formulas.md +339 -0
- package/rcode/skills/seo/seo-growth-orchestrator/SKILL.md +79 -0
- package/rcode/skills/seo/seo-growth-orchestrator/rules/backlinks.md +29 -0
- package/rcode/skills/seo/seo-growth-orchestrator/rules/content-engine.md +27 -0
- package/rcode/skills/seo/seo-growth-orchestrator/rules/dos-and-donts.md +40 -0
- package/rcode/skills/seo/seo-growth-orchestrator/rules/goals-protocol.md +34 -0
- package/rcode/skills/seo/seo-growth-orchestrator/rules/local-seo-stack.md +35 -0
- package/rcode/skills/seo/seo-growth-orchestrator/rules/mrr-sprint.md +27 -0
- package/rcode/skills/seo/seo-growth-orchestrator/rules/tools.md +19 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/backlink-research.md +29 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/goal-protocol.md +35 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/local-citations.md +24 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/local-city-pages.md +27 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/local-gbp-categories.md +23 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/local-gsc-goldmine.md +27 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/local-review-mining.md +26 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/mrr-30day-plan.md +19 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/mrr-cut.md +13 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/mrr-opportunity-finder.md +17 -0
- package/rcode/skills/seo/seo-growth-orchestrator/templates/mrr-role-model.md +18 -0
- package/rcode/skills/seo/seo-site-builder/SKILL.md +149 -0
- package/rcode/skills/seo/seo-site-builder/rules/01-niche-discovery.md +64 -0
- package/rcode/skills/seo/seo-site-builder/rules/02-deep-research.md +164 -0
- package/rcode/skills/seo/seo-site-builder/rules/03-keyword-strategy.md +82 -0
- package/rcode/skills/seo/seo-site-builder/rules/04-content-plan.md +173 -0
- package/rcode/skills/seo/seo-site-builder/rules/05-site-build.md +187 -0
- package/rcode/skills/seo/seo-site-builder/rules/06-yolo.md +127 -0
- package/rcode/skills/seo/seo-site-builder/templates/article-stub.mdx +62 -0
- package/rcode/skills/seo/seo-site-builder/templates/image-prompt.md +97 -0
- package/rcode/skills/seo/seo-site-builder/templates/keyword-export.md +45 -0
- package/rcode/skills/seo/seo-site-builder/templates/niche-scorecard.md +28 -0
- package/rcode/skills/seo/technical-seo-checker/SKILL.md +329 -0
- package/rcode/skills/seo/technical-seo-checker/references/bulk-audit-playbook.md +118 -0
- package/rcode/skills/seo/technical-seo-checker/references/ecommerce-platform-patterns.md +166 -0
- package/rcode/skills/seo/technical-seo-checker/references/http-status-codes.md +705 -0
- package/rcode/skills/seo/technical-seo-checker/references/llm-crawler-handling.md +257 -0
- package/rcode/skills/seo/technical-seo-checker/references/pre-migration-playbook.md +137 -0
- package/rcode/skills/seo/technical-seo-checker/references/robots-txt-reference.md +717 -0
- package/rcode/skills/seo/technical-seo-checker/references/technical-audit-example.md +169 -0
- package/rcode/skills/seo/technical-seo-checker/references/technical-audit-templates.md +436 -0
- package/rcode/templates/settings-hooks.json +4 -0
- package/rcode/workflows/do.md +16 -0
- package/rcode/workflows/execute-sprint.md +22 -0
- package/rcode/workflows/execute.md +17 -3
- package/rcode/workflows/new-milestone.md +21 -9
- package/rcode/workflows/new-project-create-roadmap.md +2 -0
- package/rcode/workflows/new-project-roadmap.md +2 -0
- package/rcode/workflows/new-project.md +3 -0
- package/rcode/workflows/plan.md +15 -2
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# E-commerce Platform SEO Patterns
|
|
2
|
+
|
|
3
|
+
Referenced from [SKILL.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/optimize/technical-seo-checker/SKILL.md). Use alongside [bulk-audit-playbook.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/optimize/technical-seo-checker/references/bulk-audit-playbook.md) when the site runs on a recognizable e-commerce platform. Platform-specific defaults save 60-80% of the time vs. diagnosing from scratch.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## How to use this reference
|
|
8
|
+
|
|
9
|
+
1. Identify the platform from signals: HTML comments, JS bundles, cookies, URL patterns, or asking the user.
|
|
10
|
+
2. Jump to the relevant section.
|
|
11
|
+
3. Run the "Diagnostic signals" checks — these are platform-specific pitfalls.
|
|
12
|
+
4. Apply the "Fix locations" to resolve issues at the template level (not per-URL).
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Shopify
|
|
17
|
+
|
|
18
|
+
**How to identify**: `cdn.shopify.com` in assets, `Shopify.shop` in HTML, `/products/`, `/collections/`, `/cart` URL patterns.
|
|
19
|
+
|
|
20
|
+
### Diagnostic signals
|
|
21
|
+
|
|
22
|
+
| Symptom | Likely root cause |
|
|
23
|
+
|---------|-------------------|
|
|
24
|
+
| Products with variants not indexed | Canonical pointing to parent SKU; variant query strings (`?variant=12345`) dropped |
|
|
25
|
+
| Collection pagination loop | Default Shopify pagination has no `rel="prev/next"` in newer themes |
|
|
26
|
+
| Filter URLs indexed | Faceted collection URLs (`/collections/shoes?filter.p.vendor=Nike`) leaking |
|
|
27
|
+
| `?view=json` URLs indexed | Accidental indexing of Shopify JSON endpoints |
|
|
28
|
+
| Tag URLs cannibalizing categories | `/collections/<tag>` duplicates `/collections/<category>` |
|
|
29
|
+
|
|
30
|
+
### Fix locations
|
|
31
|
+
|
|
32
|
+
- `sections/product-template.liquid` — variant canonical logic
|
|
33
|
+
- `sections/collection-template.liquid` — pagination + filter canonical
|
|
34
|
+
- `layout/theme.liquid` — global canonical, robots meta
|
|
35
|
+
- `templates/page.liquid` — page-type overrides
|
|
36
|
+
- `robots.txt.liquid` — custom robots (Shopify exposes this on Shopify Plus)
|
|
37
|
+
- Shopify Admin → Online Store → Preferences → search engine listing defaults
|
|
38
|
+
|
|
39
|
+
### Red-flag Shopify defaults
|
|
40
|
+
|
|
41
|
+
- **Tag pages (`/collections/<tag>`)**: should `noindex` unless you have a content-led tag strategy
|
|
42
|
+
- **`/collections/vendors`, `/collections/types`**: `noindex`
|
|
43
|
+
- **`/cart`, `/checkout`, `/account`**: `noindex`
|
|
44
|
+
- **Variant query URLs**: canonical should point to base product URL (parent)
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## WooCommerce (WordPress)
|
|
49
|
+
|
|
50
|
+
**How to identify**: `/wp-content/plugins/woocommerce/`, `/product-category/`, `/shop/` URL patterns, `woocommerce` class on body.
|
|
51
|
+
|
|
52
|
+
### Diagnostic signals
|
|
53
|
+
|
|
54
|
+
| Symptom | Likely root cause |
|
|
55
|
+
|---------|-------------------|
|
|
56
|
+
| Attribute filter URLs indexed | WooCommerce attribute archives (`/pa_color/red/`) |
|
|
57
|
+
| Tag + category cannibalization | Both `/product-tag/<slug>/` and `/product-category/<slug>/` ranking |
|
|
58
|
+
| Pagination indexed individually | `/shop/page/2/` etc. without canonical strategy |
|
|
59
|
+
| Product variations lost | Custom theme stripping variation meta |
|
|
60
|
+
| Duplicate meta across products | Default Yoast / Rank Math templates not customized |
|
|
61
|
+
|
|
62
|
+
### Fix locations
|
|
63
|
+
|
|
64
|
+
- `functions.php` or child theme — filter URL `noindex`
|
|
65
|
+
- `wp-config.php` — disable pagination indexing via `WP_DISABLE_FATAL_ERROR_HANDLER` area
|
|
66
|
+
- Yoast / Rank Math / All-in-One SEO plugin settings — per-post-type + taxonomy defaults
|
|
67
|
+
- `robots.txt` (via plugin or file) — wildcard `Disallow: /*add-to-cart=*`, `Disallow: /*?orderby=*`
|
|
68
|
+
- Theme `single-product.php` — canonical override for variable products
|
|
69
|
+
|
|
70
|
+
### Red-flag WooCommerce defaults
|
|
71
|
+
|
|
72
|
+
- **`?add-to-cart=<id>` URLs** appear in crawls — block in robots
|
|
73
|
+
- **`?orderby=`, `?min_price=`** — noindex or cloak from crawlers
|
|
74
|
+
- **Attribute archives** — `noindex,follow` by default; only expose if they have unique content
|
|
75
|
+
- **Product tags** — often duplicate category landing intent; default `noindex`
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Headless (Next.js / Remix / Astro / Gatsby) backed by CMS
|
|
80
|
+
|
|
81
|
+
**How to identify**: source maps pointing to `_next/`, `_astro/`, `_remix/`, or framework-specific class names. CMS backend may be Contentful / Sanity / Strapi / WordPress headless.
|
|
82
|
+
|
|
83
|
+
### Diagnostic signals
|
|
84
|
+
|
|
85
|
+
| Symptom | Likely root cause |
|
|
86
|
+
|---------|-------------------|
|
|
87
|
+
| Content not indexed | Client-side rendering only; no SSR / no prerender |
|
|
88
|
+
| Meta tags missing or generic | Rendered by JS after initial HTML delivery |
|
|
89
|
+
| Hreflang tags wrong | Static generation misses locale-per-URL rendering |
|
|
90
|
+
| Stale content served | Cached at edge; ISR / revalidation not firing |
|
|
91
|
+
| Canonical tags all point to `/` | Template using hardcoded canonical |
|
|
92
|
+
| Schema missing or malformed | JSON-LD generated client-side instead of server-side |
|
|
93
|
+
|
|
94
|
+
### Fix locations
|
|
95
|
+
|
|
96
|
+
- `app/(routes)/[slug]/page.tsx` or equivalent — ensure SSR or SSG, not CSR
|
|
97
|
+
- `next.config.js` → `experimental.serverActions` / `generateStaticParams`
|
|
98
|
+
- `getStaticProps` / `getServerSideProps` — return canonical, meta, schema in initial render
|
|
99
|
+
- `middleware.ts` — redirect rules, locale routing
|
|
100
|
+
- CMS query → ensure publish-ready content is fetched at build / request, not post-hydration
|
|
101
|
+
- Edge cache config (Vercel / Cloudflare / Netlify) — revalidation policy for product updates
|
|
102
|
+
|
|
103
|
+
### Red-flag Headless defaults
|
|
104
|
+
|
|
105
|
+
- **React hooks rendering meta tags** — search engines often miss these if not SSR'd
|
|
106
|
+
- **No `<link rel="canonical">`** in initial HTML — check `view-source:` not DevTools
|
|
107
|
+
- **`next/image` without width/height** — CLS issues on product listing pages
|
|
108
|
+
- **Cache-Control headers** — `public, max-age=31536000` on HTML is wrong (only for assets)
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## BigCommerce
|
|
113
|
+
|
|
114
|
+
**How to identify**: `stencil-themes` in page source, `cdn11.bigcommerce.com` assets.
|
|
115
|
+
|
|
116
|
+
### Diagnostic signals
|
|
117
|
+
|
|
118
|
+
| Symptom | Likely root cause |
|
|
119
|
+
|---------|-------------------|
|
|
120
|
+
| Facet URL bloat | BigCommerce default exposes `?Facet=` URLs |
|
|
121
|
+
| Brand + category overlap | `/brands/<name>/` + `/categories/` duplicates |
|
|
122
|
+
| Product images 301 loop | Auto-generated image optimization paths |
|
|
123
|
+
| Stencil theme meta issues | Handlebars templates don't escape variant data |
|
|
124
|
+
|
|
125
|
+
### Fix locations
|
|
126
|
+
|
|
127
|
+
- Stencil theme `templates/components/products/*.html` — canonical per view
|
|
128
|
+
- `config.json` → `settings.urls.*` customization
|
|
129
|
+
- BigCommerce Control Panel → Storefront → SEO settings → Search Engine Options
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Magento 2 (Adobe Commerce)
|
|
134
|
+
|
|
135
|
+
**How to identify**: `/static/version*/frontend/` in assets, `Mage_Core` references.
|
|
136
|
+
|
|
137
|
+
### Diagnostic signals
|
|
138
|
+
|
|
139
|
+
| Symptom | Likely root cause |
|
|
140
|
+
|---------|-------------------|
|
|
141
|
+
| `.html` extension + non-`.html` duplicates | URL rewrite table conflicts |
|
|
142
|
+
| Layered nav facet URLs indexed | Default Magento layered navigation exposed |
|
|
143
|
+
| Session ID in URLs | Legacy Magento 1 setting still live post-migration |
|
|
144
|
+
| Multi-store content duplication | Different store views use same canonical base |
|
|
145
|
+
|
|
146
|
+
### Fix locations
|
|
147
|
+
|
|
148
|
+
- `app/design/frontend/<vendor>/<theme>/Magento_Catalog/templates/product/*.phtml`
|
|
149
|
+
- Admin → Stores → Configuration → Catalog → SEO
|
|
150
|
+
- `app/etc/config.php` — use `Magento_CatalogUrlRewrite` correctly
|
|
151
|
+
- `composer.json` — ensure Magento 2.4.5+ for built-in structured data
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Universal e-commerce checklist
|
|
156
|
+
|
|
157
|
+
Regardless of platform, verify:
|
|
158
|
+
|
|
159
|
+
- [ ] Product pages have `Product` schema with `offers.price`, `offers.priceCurrency`, `offers.availability`, and `review`/`aggregateRating` if reviews exist
|
|
160
|
+
- [ ] Collection / category pages have unique meta descriptions (not auto-generated "Shop our X selection")
|
|
161
|
+
- [ ] Faceted navigation has a clear rule: `noindex,follow` OR `Disallow` in robots.txt OR canonical to parent
|
|
162
|
+
- [ ] Pagination has `rel="next/prev"` OR consistent canonical OR self-canonical per page with clear content differentiation
|
|
163
|
+
- [ ] Out-of-stock products: 301 redirect to category, keep with "notify me" form, or 410 if permanently removed
|
|
164
|
+
- [ ] Product variations: one primary variant canonical, others `noindex` OR hash-based URLs (`#variant-red`)
|
|
165
|
+
- [ ] Structured data for `BreadcrumbList` on all category / product / blog pages
|
|
166
|
+
- [ ] International stores: `hreflang` alternates + self-referential; x-default for global fallback
|