Claude-code-plugins-plus shopify-performance-tuning
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/shopify-pack/skills/shopify-performance-tuning" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-shopify-performance-tuning && rm -rf "$T"
plugins/saas-packs/shopify-pack/skills/shopify-performance-tuning/SKILL.mdShopify Performance Tuning
Overview
Optimize Shopify API performance through GraphQL query cost reduction, bulk operations for large data exports, response caching, and Storefront API for high-traffic public-facing queries.
Prerequisites
- Understanding of Shopify's calculated query cost system
- Access to the
header for cost analysisShopify-GraphQL-Cost-Debug: 1 - Redis or in-memory cache available (optional)
Instructions
Step 1: Analyze and Reduce Query Cost
Use the debug header to inspect
requestedQueryCost vs actualQueryCost. Reduce cost by selecting only needed fields and lowering first: page sizes (250 to 50 can cut cost by 5x).
See Query Cost Optimization for debug commands and before/after examples.
Step 2: Use Bulk Operations for Large Exports
Bulk operations bypass rate limits and are designed for exporting large datasets. Start a mutation, poll for completion, then download JSONL results.
See Bulk Operations for the complete mutation/poll/download flow and performance comparison table.
Step 3: Cache Frequently Accessed Data
LRU cache layer with webhook-driven invalidation. Cache product data for 5 minutes, then clear on
products/update webhook events.
See Response Caching for the complete implementation.
Step 4: Use Storefront API for Public Queries
The Storefront API has separate rate limits and is designed for high-traffic public storefronts. Uses
LATEST_API_VERSION from @shopify/shopify-api.
See Storefront API Usage for the complete implementation.
Output
- Query costs reduced through field selection and page size optimization
- Bulk operations configured for large data exports
- Response caching with webhook-driven invalidation
- Storefront API used for public-facing high-traffic queries
Error Handling
| Issue | Cause | Solution |
|---|---|---|
on every query | too high | Reduce and remove unused fields |
| Bulk operation FAILED | Query syntax error | Test query in GraphiQL first |
| Stale cache data | Cache not invalidated | Add webhook handlers to clear cache |
| Storefront API 403 | Wrong token type | Use Storefront API access token, not Admin |
Examples
Reducing Query Cost on a Product Sync
A product sync job hits THROTTLED errors. Analyze the cost breakdown, reduce
first: page sizes, and remove unused fields.
See Query Cost Optimization for debug commands and before/after examples.
Exporting Orders with Bulk Operations
Export 50,000 orders with line items using a bulk operation that bypasses rate limits and returns JSONL results.
See Bulk Operations for the complete mutation, polling, and download flow.
Caching Product Data with Webhook Invalidation
Add an LRU cache layer for product queries that auto-invalidates when
products/update webhook events fire.
See Response Caching for the complete caching implementation.