@veyralabs/skills 0.2.0 → 0.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.
@@ -0,0 +1,283 @@
1
+ ---
2
+ name: shopify-store
3
+ description: >
4
+ Shopify Store Auditor. Activate when a user wants to improve, audit, or optimize a Shopify store.
5
+ Triggers on: "audit my Shopify store", "why are my conversions low", "improve my product pages",
6
+ "Shopify SEO", "store is slow", "which apps should I remove", "improve my collections",
7
+ "my checkout has high abandonment", "Shopify analytics", "increase sales".
8
+ Works in two modes: with Shopify MCP connected (real store data) or with a public URL (Scrapling extraction).
9
+ ---
10
+
11
+ # Shopify Store Auditor
12
+
13
+ You are a Shopify ecommerce specialist. You audit stores, identify conversion blockers, fix SEO issues, optimize product pages, and improve store architecture. You work with real data when possible — not generic checklists.
14
+
15
+ ---
16
+
17
+ ## Mode Detection (run first)
18
+
19
+ Check if Shopify MCP is available by attempting to list products:
20
+
21
+ ```
22
+ Try: list_products (limit: 1) via shopify-mcp
23
+ ```
24
+
25
+ **If MCP responds → Mode A (connected)**
26
+ **If MCP fails or is not configured → Mode B (public extraction)**
27
+
28
+ Ask the user which mode they're in if unclear. For Mode B, ask for the store URL.
29
+
30
+ ---
31
+
32
+ ## Mode A — MCP Connected
33
+
34
+ With `shopify-mcp` configured, you have access to real store data. Run the full audit pipeline.
35
+
36
+ **Setup required (user must do once):**
37
+ ```json
38
+ {
39
+ "mcpServers": {
40
+ "shopify": {
41
+ "command": "npx",
42
+ "args": ["shopify-mcp", "--clientId", "YOUR_CLIENT_ID",
43
+ "--clientSecret", "YOUR_CLIENT_SECRET",
44
+ "--domain", "YOUR_STORE.myshopify.com"]
45
+ }
46
+ }
47
+ }
48
+ ```
49
+
50
+ ### Phase A1 — Data Collection
51
+
52
+ Run these in sequence. Each informs the next phase:
53
+
54
+ ```
55
+ 1. get_products (first: 250)
56
+ → count total, check titles, meta descriptions, image alt texts
57
+
58
+ 2. get_collections (first: 100)
59
+ → check structure, naming, nesting depth
60
+
61
+ 3. get_navigation (menus)
62
+ → header/footer structure, depth, orphan collections
63
+
64
+ 4. get_metafields (for top 20 products by revenue)
65
+ → SEO metafields populated vs missing
66
+
67
+ 5. get_orders (last 90 days)
68
+ → conversion signals, AOV, repeat purchase rate
69
+
70
+ 6. get_installed_apps
71
+ → identify speed killers, redundant apps
72
+ ```
73
+
74
+ See `references/mcp-queries.md` for exact GraphQL queries.
75
+
76
+ ### Phase A2 — Audit Dimensions
77
+
78
+ Run through each dimension with real data. Score each 1-10:
79
+
80
+ **1. Product Catalog Health**
81
+ - Title formula: `[Brand] [Product Name] [Key Attribute] — [Size/Color if variant]`
82
+ - Missing descriptions (< 100 chars = empty)
83
+ - Images: count, alt texts populated, aspect ratio consistency
84
+ - Variants: proper naming (not "Default Title"), complete option values
85
+
86
+ **2. Collection Architecture**
87
+ - Max recommended depth: 2 levels (Collections → Sub-collections)
88
+ - Each product in at least 1 collection (orphans = invisible)
89
+ - Overlap score: products appearing in > 3 collections = confusing hierarchy
90
+ - Smart collection conditions — are they actually filtering correctly?
91
+
92
+ **3. Navigation Structure**
93
+ - Header: max 7 primary items, max 2 levels deep
94
+ - All collections reachable within 2 clicks from homepage
95
+ - Footer: customer service links present (Returns, Contact, FAQ)
96
+
97
+ **4. SEO**
98
+ See `references/seo-shopify.md` for full Shopify-specific SEO checklist.
99
+ - Meta titles: 50-60 chars, include primary keyword
100
+ - Meta descriptions: 120-160 chars, every product and collection
101
+ - Canonical tags: Shopify auto-generates but check for overrides
102
+ - Structured data: Product schema on product pages
103
+
104
+ **5. App Stack**
105
+ See `references/app-stack.md` for app impact scoring.
106
+ - Each app adds ~50-200ms to load time
107
+ - Flag: > 8 apps = likely bloated
108
+ - Check for: duplicate functionality (2 review apps, 2 email apps)
109
+ - Check for: abandoned apps (last updated > 18 months)
110
+
111
+ **6. Conversion Signals**
112
+ - Trust: reviews visible on product pages?
113
+ - Urgency: inventory count shown when low stock?
114
+ - Social proof: recently purchased / bestseller badges?
115
+ - Shipping: delivery estimate visible before checkout?
116
+ - Return policy: visible on product pages?
117
+
118
+ ### Phase A3 — Output Format
119
+
120
+ ```markdown
121
+ # Store Audit — [Store Name]
122
+ Date: [date]
123
+ Mode: MCP Connected
124
+
125
+ ## Summary Scores
126
+ | Dimension | Score | Priority |
127
+ |-----------|-------|----------|
128
+ | Product Catalog | /10 | HIGH/MED/LOW |
129
+ | Collection Architecture | /10 | |
130
+ | Navigation | /10 | |
131
+ | SEO | /10 | |
132
+ | App Stack | /10 | |
133
+ | Conversion Signals | /10 | |
134
+
135
+ ## Critical Issues (fix first)
136
+ [Issues scoring < 5 — specific items with data]
137
+
138
+ ## Quick Wins (< 1 hour each)
139
+ [Issues that are fast to fix and high impact]
140
+
141
+ ## Detailed Findings
142
+ [Per dimension — specific products/collections/pages with exact issues]
143
+
144
+ ## Recommended Action Order
145
+ 1. [Most impactful fix]
146
+ 2. ...
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Mode B — No MCP (Scrapling Extraction)
152
+
153
+ When MCP is not available, extract what's publicly visible.
154
+
155
+ ### Phase B1 — Site Extraction
156
+
157
+ ```bash
158
+ python scripts/extract.py <store-url> --output docs/store-manifest.json
159
+ ```
160
+
161
+ This extracts: navigation structure, loaded scripts (app detection), product page structure, meta tags, structured data, canonical URLs, page speed signals.
162
+
163
+ ### Phase B2 — Script-Based App Detection
164
+
165
+ From `manifest.techStack` and loaded scripts, identify installed apps:
166
+
167
+ | Script pattern | App detected |
168
+ |---------------|-------------|
169
+ | `klaviyo.com/onsite/js` | Klaviyo (email/SMS) |
170
+ | `cdn.judge.me` | Judge.me (reviews) |
171
+ | `staticw2.yotpo.com` | Yotpo (reviews/loyalty) |
172
+ | `rechargecdn.com` | ReCharge (subscriptions) |
173
+ | `loox.io` | Loox (photo reviews) |
174
+ | `gorgias.io` | Gorgias (support) |
175
+ | `tidio.co` | Tidio (chat) |
176
+ | `stamped.io` | Stamped (reviews) |
177
+ | `privy.com` | Privy (popups) |
178
+ | `omnisend.com` | Omnisend (email) |
179
+ | `pagefly.io` | PageFly (page builder) |
180
+ | `gem.app` | GemPages (page builder) |
181
+
182
+ Flag: > 2 review apps = redundant. > 1 page builder = conflict risk.
183
+
184
+ ### Phase B3 — Guided Questions
185
+
186
+ For data not extractable from public pages:
187
+
188
+ ```
189
+ 1. What is your current conversion rate? (avg Shopify: 1.4%)
190
+ 2. What is your top traffic source? (organic/paid/social/direct)
191
+ 3. What is your average order value?
192
+ 4. What is your cart abandonment rate? (avg: 70%)
193
+ 5. What products are your top sellers?
194
+ 6. Do you have Google Analytics / GA4 connected?
195
+ 7. What is your main marketing channel?
196
+ ```
197
+
198
+ ### Phase B4 — SEO Public Audit
199
+
200
+ Check from extracted manifest:
201
+ - `<title>` tags on product pages — present and under 60 chars?
202
+ - `<meta name="description">` — populated?
203
+ - Canonical tags — no duplicate content signals?
204
+ - `application/ld+json` — Product structured data present?
205
+ - `hreflang` — if selling in multiple languages
206
+ - Paginated collections — `/collections/all?page=2` canonical handling
207
+
208
+ ### Phase B5 — Output Format
209
+
210
+ Same format as Mode A, but with a note on data confidence:
211
+ ```
212
+ ⚠️ Mode: Public extraction only — findings based on visible storefront.
213
+ Connect shopify-mcp for full catalog, order, and app audit.
214
+ ```
215
+
216
+ ---
217
+
218
+ ## Specific Audit Types
219
+
220
+ ### Speed Audit
221
+
222
+ Focus questions:
223
+ - How many apps installed? (each = 50-200ms)
224
+ - Are images on CDN? (Shopify CDN is automatic for uploaded images)
225
+ - Any render-blocking scripts in theme?
226
+ - Page builders installed? (PageFly, GemPages add 400-800ms)
227
+
228
+ Tool: Google PageSpeed on homepage + a product page + collection page.
229
+ Target: > 50 mobile score. Below 30 = critical.
230
+
231
+ ### SEO Audit
232
+
233
+ See `references/seo-shopify.md` for Shopify-specific issues:
234
+ - Canonical tag conflicts from `/collections/` + `/products/` dual URLs
235
+ - Tag pages (`/collections/all/tag`) getting indexed
236
+ - Variant URLs creating duplicate content
237
+ - Pagination: `?page=2` vs. infinite scroll SEO implications
238
+
239
+ ### Conversion Rate Audit
240
+
241
+ Focus on the funnel:
242
+ ```
243
+ Homepage → Collection → Product → Cart → Checkout
244
+ ```
245
+ For each step: what's the drop-off? What's missing that would build confidence?
246
+
247
+ Common CRO fixes:
248
+ - Product pages: no reviews visible above the fold
249
+ - Cart: no shipping estimate before checkout
250
+ - Checkout: no trust badges (SSL, payment icons)
251
+ - Mobile: add-to-cart button below the fold
252
+
253
+ ### App Stack Audit
254
+
255
+ See `references/app-stack.md` for full scoring.
256
+ Output: list of apps with estimated load impact, recommendation (keep/remove/replace).
257
+
258
+ ---
259
+
260
+ ## Analytics Interpretation
261
+
262
+ If the user has GA4 connected and shares data:
263
+
264
+ **Metrics that matter:**
265
+ - Conversion rate: < 1% = critical, 1-3% = average, > 3% = good
266
+ - Cart abandonment: > 75% = fix checkout friction
267
+ - Bounce rate on product pages: > 60% = content or trust problem
268
+ - Mobile vs desktop conversion gap: > 2x = mobile UX issue
269
+ - Top exit pages: collection pages = navigation problem; product pages = trust/info problem
270
+
271
+ **Metrics that don't matter (without context):**
272
+ - Raw traffic (need conversion rate)
273
+ - Page views (need session duration + bounce)
274
+ - Social followers (need click-through rate)
275
+
276
+ ---
277
+
278
+ Reference files:
279
+ - `references/audit-framework.md` — full dimension checklists
280
+ - `references/seo-shopify.md` — Shopify-specific SEO issues
281
+ - `references/product-optimization.md` — title/description formulas, image standards
282
+ - `references/app-stack.md` — app impact scoring and recommendations
283
+ - `references/mcp-queries.md` — GraphQL queries for MCP mode
@@ -0,0 +1,175 @@
1
+ # App Stack — shopify-store Reference
2
+
3
+ App impact scoring, recommendations, and common app combinations for Shopify stores.
4
+
5
+ ---
6
+
7
+ ## Load Impact by Category
8
+
9
+ Each installed app runs JavaScript on storefront pages. Impact ranges from negligible to store-breaking.
10
+
11
+ | Category | Typical load impact | Notes |
12
+ |----------|--------------------| ------|
13
+ | Page builders (PageFly, GemPages, Shogun) | 400-800ms | Worst offenders — use only for specific pages |
14
+ | Upsell popups (Honeycomb, CartHook) | 300-500ms | Heavy cart manipulation |
15
+ | Live chat (Tidio, Gorgias, Intercom) | 200-400ms | Loads on every page |
16
+ | Loyalty / rewards (Yotpo, Smile.io) | 200-400ms | Loads even for non-members |
17
+ | Review apps (Judge.me, Loox, Yotpo) | 100-300ms | Load review widget on product pages |
18
+ | Email popups (Privy, OptiMonk, Wisepops) | 100-200ms | Often loads before first paint |
19
+ | Subscription (ReCharge, Bold) | 100-200ms | Modifies product page JS |
20
+ | Analytics (GA4, Klaviyo, Triple Whale) | 50-150ms | Pixels — minimize but unavoidable |
21
+ | SEO apps (SEO Manager, Plug in SEO) | 10-50ms | Mostly server-side |
22
+ | Inventory / shipping (ShipStation) | 0-50ms | Server-side only |
23
+
24
+ Rule: every app after the first 8 adds compounding load. With 15+ apps, mobile PageSpeed often drops below 30.
25
+
26
+ ---
27
+
28
+ ## Must-Have vs Nice-to-Have
29
+
30
+ ### Must-have (most stores need these)
31
+
32
+ | Function | Recommended app | Free tier? |
33
+ |----------|----------------|-----------|
34
+ | Reviews | Judge.me | Yes — generous free plan |
35
+ | Email marketing | Klaviyo | Yes — up to 500 contacts |
36
+ | Live chat / support | Gorgias | No — starts ~€10/month |
37
+ | Abandoned cart recovery | Built into Klaviyo | — |
38
+ | Analytics | GA4 (native) | Free |
39
+
40
+ ### Situational (only if you need the function)
41
+
42
+ | Function | App | When to use |
43
+ |----------|-----|------------|
44
+ | Subscriptions | ReCharge or Bold | Only if you sell subscription products |
45
+ | Loyalty program | Smile.io | Only if repeat purchase rate > 30% |
46
+ | Upsells in cart | CartHook or Rebuy | Only if AOV is a primary focus |
47
+ | Bundles | Bundler or Bold Bundles | Only if bundles are a core strategy |
48
+ | Wishlists | Wishlist Plus | Only if you have returning customers |
49
+ | Size guide | Kiwi Size Chart | Only if apparel with complex sizing |
50
+
51
+ ### Avoid (or replace)
52
+
53
+ | Category | Problem | Alternative |
54
+ |----------|---------|------------|
55
+ | Page builders for all pages | Destroys performance, hard to maintain | Use only for landing pages |
56
+ | Multiple review apps | Duplicate reviews, social proof split | Pick one |
57
+ | Multiple email apps | Contacts split, conflicting automations | Pick one |
58
+ | SEO apps that modify canonicals | Can break Shopify's canonical logic | Remove — Shopify handles this |
59
+ | Instagram feed apps | Embed kills performance | Use manual or theme built-in |
60
+
61
+ ---
62
+
63
+ ## Common App Stack Profiles
64
+
65
+ ### Small direct-to-consumer (< 500 orders/month)
66
+
67
+ ```
68
+ Reviews: Judge.me (free)
69
+ Email: Klaviyo (free up to 500 contacts)
70
+ Analytics: GA4 (free)
71
+ Shipping label: ShipStation or Sendcloud
72
+ Total apps: 4
73
+ Monthly cost: ~€0-50
74
+ ```
75
+
76
+ ### Growing DTC (500-5000 orders/month)
77
+
78
+ ```
79
+ Reviews: Judge.me (paid) or Okendo
80
+ Email/SMS: Klaviyo
81
+ Support: Gorgias
82
+ Subscriptions: ReCharge (if applicable)
83
+ Upsell: Rebuy or CartHook (one only)
84
+ Analytics: GA4 + Triple Whale
85
+ Shipping: ShipStation or EasyShip
86
+ Total apps: 6-8
87
+ Monthly cost: ~€200-500
88
+ ```
89
+
90
+ ### High-volume (5000+ orders/month)
91
+
92
+ ```
93
+ Reviews: Okendo or Stamped
94
+ Email: Klaviyo
95
+ SMS: Attentive or Postscript (dedicated — not Klaviyo SMS)
96
+ Support: Gorgias (full team)
97
+ Loyalty: Yotpo or Smile.io (if retention strategy active)
98
+ Subscriptions: ReCharge or Skio
99
+ Analytics: Triple Whale + GA4
100
+ Upsell: Rebuy (full suite)
101
+ Returns: Loop Returns
102
+ Total apps: 9-11
103
+ Monthly cost: ~€1000-3000
104
+ ```
105
+
106
+ ---
107
+
108
+ ## App Conflict Patterns
109
+
110
+ ### Review app conflicts
111
+
112
+ Having both Judge.me and Yotpo (or any two review apps) causes:
113
+ - Schema structured data duplication (two `aggregateRating` blocks)
114
+ - Review import/sync conflicts
115
+ - Double review request emails to customers
116
+
117
+ Fix: pick one, import reviews from the other, uninstall duplicate.
118
+
119
+ ### Page builder + theme editor conflict
120
+
121
+ PageFly / GemPages build pages using their own block structure. If the same page also has sections in theme editor, conflicts occur:
122
+ - Duplicate content sections
123
+ - Theme editor shows blank preview
124
+ - Inconsistent rendering on mobile
125
+
126
+ Fix: page builder pages should be built entirely in the builder. Don't mix.
127
+
128
+ ### Email platform conflicts
129
+
130
+ Klaviyo + Omnisend on the same store = contacts getting double emails, confusing data.
131
+ Fix: pick one, migrate flows, uninstall the other.
132
+
133
+ ### Multiple pixel apps
134
+
135
+ GA4 + Klaviyo + Triple Whale + Facebook Pixel all loading independently vs using a centralized pixel manager:
136
+ - Duplicate pageview/purchase events
137
+ - Attribution data conflicts
138
+
139
+ Fix: use one source of truth for attribution (Triple Whale or Northbeam for paid), let GA4 be independent.
140
+
141
+ ---
142
+
143
+ ## App Audit Output Format
144
+
145
+ When reporting app stack findings:
146
+
147
+ ```markdown
148
+ ## App Stack Audit
149
+
150
+ Total apps installed: X
151
+ Estimated total load impact: ~XXXms
152
+
153
+ ### High Impact (remove or investigate)
154
+ | App | Impact | Recommendation |
155
+ |-----|--------|---------------|
156
+ | PageFly | ~600ms | Remove from non-landing pages. Keep for campaign pages only |
157
+ | Tidio | ~350ms | Replace with Gorgias if support volume justifies cost, else remove |
158
+
159
+ ### Redundant Apps
160
+ - Judge.me + Loox: both review apps. Remove Loox, consolidate on Judge.me.
161
+
162
+ ### Low Usage / Abandoned
163
+ - [App Name]: last updated 2022, no recent activity in Shopify App Store
164
+
165
+ ### Keep
166
+ | App | Impact | Why |
167
+ |-----|--------|-----|
168
+ | Klaviyo | ~100ms | Core email marketing — high ROI |
169
+ | GA4 | ~50ms | Essential analytics |
170
+ | Judge.me | ~150ms | Reviews driving conversion |
171
+
172
+ ### Estimated savings if recommendations applied
173
+ Load time reduction: ~850ms
174
+ Monthly cost reduction: ~€XX
175
+ ```
@@ -0,0 +1,206 @@
1
+ # Audit Framework — shopify-store Reference
2
+
3
+ Full checklists per audit dimension. Use in Phase A2 (MCP mode) or as guided questions in Mode B.
4
+
5
+ ---
6
+
7
+ ## Dimension 1: Product Catalog Health
8
+
9
+ ### Title quality
10
+ - [ ] Formula: `[Brand] [Product Name] [Key Attribute]` or `[Product Name] — [Key Attribute] | [Brand]`
11
+ - [ ] Length: 50-70 characters (optimal for search and Shopify search)
12
+ - [ ] No ALL CAPS titles
13
+ - [ ] Consistent naming convention across catalog
14
+ - [ ] Variant info NOT in title (use variant options instead)
15
+
16
+ ### Description quality
17
+ - [ ] Minimum 100 characters (short = thin content signal)
18
+ - [ ] First 160 chars sellable (meta description often auto-pulled from here)
19
+ - [ ] Includes: material, dimensions/sizing, use case, care instructions
20
+ - [ ] No copy-paste manufacturer descriptions (duplicate content)
21
+ - [ ] HTML formatting: `<p>`, `<ul>`, `<strong>` — no inline styles
22
+
23
+ ### Images
24
+ - [ ] At least 3 images per product (main, lifestyle, detail)
25
+ - [ ] Alt texts filled on all images
26
+ - [ ] Consistent aspect ratio across catalog (1:1 or 4:3 recommended)
27
+ - [ ] Main image: pure product on white/neutral background
28
+ - [ ] File names: descriptive, not `IMG_00123.jpg`
29
+
30
+ ### Variants
31
+ - [ ] No "Default Title" variants (indicates single-variant product with unfilled options)
32
+ - [ ] Consistent option naming: "Color" not "Colour"/"color"
33
+ - [ ] All variants have prices set
34
+ - [ ] SKUs filled (important for inventory tracking + ads)
35
+ - [ ] Compare-at price set for discounted items
36
+
37
+ ### Scoring guide
38
+ - 9-10: All titles/descriptions/images consistent, no gaps
39
+ - 7-8: Minor gaps (< 10% products missing something)
40
+ - 5-6: Noticeable gaps (10-30% products incomplete)
41
+ - 3-4: Systematic gaps (> 30% products missing descriptions or images)
42
+ - 1-2: Most products have placeholder titles/descriptions/no images
43
+
44
+ ---
45
+
46
+ ## Dimension 2: Collection Architecture
47
+
48
+ ### Structure
49
+ - [ ] Maximum 2 levels deep (Collections → Sub-collections)
50
+ - [ ] Every product assigned to at least 1 collection
51
+ - [ ] No duplicate collections (e.g., "Shirts" and "All Shirts" serving same purpose)
52
+ - [ ] Clear naming: user should understand what's in collection from name alone
53
+
54
+ ### Smart vs manual collections
55
+ - Smart collection: rule-based (product type, tag, vendor)
56
+ - Manual collection: hand-curated
57
+
58
+ Recommendation:
59
+ - Use smart for ongoing catalogs (auto-adds new products)
60
+ - Use manual for editorial/campaign collections (Homepage Feature, Seasonal Sale)
61
+
62
+ ### Overlap check
63
+ - Product in > 3 collections = potential confusion
64
+ - Products in 0 collections = invisible from navigation (check orphans)
65
+
66
+ ### Collection quality
67
+ - [ ] Each collection has description (good for SEO + context)
68
+ - [ ] Collection images set
69
+ - [ ] Sort order intentional (Best Selling or Manual, not default alphabetical)
70
+ - [ ] Smart collection rules actually filtering correctly (check product count vs expectation)
71
+
72
+ ### Scoring guide
73
+ - 9-10: Clean 2-level hierarchy, all products assigned, no orphans
74
+ - 7-8: Minor orphans or 1-2 redundant collections
75
+ - 5-6: Flat or too-deep structure, some orphans
76
+ - 3-4: Poor structure, many orphans, confusing naming
77
+ - 1-2: No meaningful collection structure
78
+
79
+ ---
80
+
81
+ ## Dimension 3: Navigation
82
+
83
+ ### Header navigation
84
+ - [ ] Max 7 primary navigation items (cognitive overload above 7)
85
+ - [ ] Max 2 levels deep in dropdown
86
+ - [ ] Hierarchy matches collection architecture
87
+ - [ ] All collections reachable from header or footer
88
+ - [ ] Search visible and functional (header placement preferred)
89
+ - [ ] Cart icon visible with item count
90
+
91
+ ### Footer navigation
92
+ - [ ] Customer service links: Contact, Returns, FAQ, Shipping Policy
93
+ - [ ] Legal: Privacy Policy, Terms of Service, Cookie Policy
94
+ - [ ] Social media links (if active)
95
+ - [ ] Newsletter signup (if applicable)
96
+
97
+ ### Mobile navigation
98
+ - [ ] Hamburger menu or equivalent
99
+ - [ ] Touch targets: minimum 44×44px
100
+ - [ ] No hover-dependent menus (hover doesn't exist on mobile)
101
+
102
+ ### Scoring guide
103
+ - 9-10: Logical, complete, mobile-friendly
104
+ - 7-8: Minor gaps (missing footer link, one level too deep somewhere)
105
+ - 5-6: Navigation functional but confusing structure
106
+ - 3-4: Missing important links, mobile navigation broken
107
+ - 1-2: Navigation actively misleading or broken
108
+
109
+ ---
110
+
111
+ ## Dimension 4: SEO
112
+
113
+ Full Shopify-specific SEO checklist in `references/seo-shopify.md`.
114
+
115
+ Quick scoring checklist:
116
+ - [ ] Meta titles: 50-60 chars, primary keyword included
117
+ - [ ] Meta descriptions: 120-160 chars, every product + collection has one
118
+ - [ ] No duplicate content from `/collections/*/products/` — canonicals correct
119
+ - [ ] Tag pages handled (noindex or robots.txt)
120
+ - [ ] Structured data present on product pages (Product schema)
121
+ - [ ] Sitemap accessible at `/sitemap.xml`
122
+ - [ ] robots.txt not blocking product/collection pages
123
+ - [ ] Google Search Console connected and no coverage errors
124
+
125
+ ### Scoring guide
126
+ - 9-10: All meta filled, no canonical issues, structured data present
127
+ - 7-8: Small gaps (< 20% products missing meta description)
128
+ - 5-6: Systematic gaps or known duplicate content issues
129
+ - 3-4: Most products missing SEO meta, or active duplicate content
130
+ - 1-2: robots.txt blocking index, or no meta data across site
131
+
132
+ ---
133
+
134
+ ## Dimension 5: App Stack
135
+
136
+ Full app scoring in `references/app-stack.md`.
137
+
138
+ Quick check:
139
+ - [ ] Total apps installed: < 8 (each adds load time)
140
+ - [ ] No duplicate functionality (2 review apps, 2 email platforms)
141
+ - [ ] No abandoned apps (last updated > 18 months)
142
+ - [ ] Page builder: max 1, and not used on all pages
143
+ - [ ] Apps with monthly cost vs actual usage ratio
144
+
145
+ ### Load impact tiers
146
+ - High impact (400-800ms): page builders, upsell popups, loyalty widgets
147
+ - Medium impact (100-300ms): review apps, email popups, live chat
148
+ - Low impact (< 100ms): analytics pixels, metafield apps
149
+
150
+ ### Scoring guide
151
+ - 9-10: Lean stack (< 6 apps), no redundancy, all actively used
152
+ - 7-8: 6-9 apps, minor redundancy or one unused
153
+ - 5-6: 10-14 apps, some redundancy
154
+ - 3-4: 15+ apps, multiple redundant apps, page builder on all pages
155
+ - 1-2: Severely bloated (20+ apps), duplicate core functions, confirmed speed impact
156
+
157
+ ---
158
+
159
+ ## Dimension 6: Conversion Signals
160
+
161
+ ### Product page trust
162
+ - [ ] Reviews visible above the fold on desktop
163
+ - [ ] Reviews visible before "Add to Cart" on mobile
164
+ - [ ] Review count shown (social proof — "1,243 reviews" beats 5 stars alone)
165
+ - [ ] Shipping estimate visible on product page
166
+ - [ ] Return policy visible (or link to it)
167
+ - [ ] Secure payment icons visible
168
+
169
+ ### Urgency / scarcity
170
+ - [ ] Low stock counter shown when < 5 units (optional but high impact)
171
+ - [ ] Restock notification option if out of stock
172
+ - [ ] Sale badge on discounted items
173
+
174
+ ### Add to cart
175
+ - [ ] CTA button above the fold on desktop
176
+ - [ ] CTA sticky or fixed on mobile scroll
177
+ - [ ] Size/color selector intuitive (swatches preferred over dropdown for color)
178
+ - [ ] Variant images update when switching color
179
+
180
+ ### Cart / Checkout
181
+ - [ ] Upsell or cross-sell in cart (optional but measurable)
182
+ - [ ] Shipping threshold visible ("Add €X for free shipping")
183
+ - [ ] Checkout trust elements: SSL, accepted payment methods
184
+ - [ ] No forced account creation before checkout
185
+
186
+ ### Scoring guide
187
+ - 9-10: Reviews prominent, trust signals complete, CTA optimized for mobile
188
+ - 7-8: Minor gaps (no shipping estimate on product page, reviews below fold)
189
+ - 5-6: Functional but missing key trust signals
190
+ - 3-4: No reviews visible, poor mobile CTA, no trust elements
191
+ - 1-2: Active friction (forced account, no payment icons, reviews hidden)
192
+
193
+ ---
194
+
195
+ ## Priority Matrix
196
+
197
+ | Score | Dimension | Recommended Action |
198
+ |-------|-----------|-------------------|
199
+ | 1-4 | Any | Immediate fix — blocking sales |
200
+ | 5-6 | Catalog/SEO | High priority — compound impact |
201
+ | 5-6 | Conversion | High priority — direct revenue impact |
202
+ | 5-6 | Navigation | Medium priority — UX issue |
203
+ | 7-8 | Any | Optimize when above issues resolved |
204
+ | 9-10 | Any | Maintain — no action needed |
205
+
206
+ Start with lowest-scoring dimensions that have the highest traffic.