# BFCM Shopify Speed & CVR Audit

> Run a pre-BFCM audit on any Shopify store: pull real CrUX and PageSpeed data, score against a 30+ item speed checklist, and deliver a ranked action plan sorted by revenue impact and ease of fix.

BFCM Shopify Speed & CVR Audit is an AI skill for sales & marketing and product & engineering teams that you can use in Claude Code, Codex, or type.com. It works with Shopify.

- Skill page: https://type.com/library/skills/bfcm-shopify-speed-cvr-audit
- Raw SKILL.md: https://type.com/library/skills/bfcm-shopify-speed-cvr-audit/SKILL.md
- Created by the type.com team
- Updated: October 27, 2026
- Package: 1 file

## What it does

- Pull real Chrome UX Report data and PageSpeed Insights for ground-truth performance scores.
- Score the store against a 32-item Shopify-specific checklist covering images, scripts, fonts, and mobile.
- Rank every finding by estimated revenue impact and ease of fix so you work on what matters first.
- Get Shopify Liquid code snippets and step-by-step fix tutorials for every failing item.

## Before you start

- A live Shopify storefront URL.
- Optionally: monthly revenue and expected BFCM traffic multiplier for dollar-impact estimates.

## How to use BFCM Shopify Speed & CVR Audit

1. **type.com:** Choose Use Skill to add BFCM Shopify Speed & CVR Audit to your type.com workspace.
2. **Claude Code:** Download the skill and extract it into ~/.claude/skills/bfcm-shopify-speed-cvr-audit/ (or .claude/skills/bfcm-shopify-speed-cvr-audit/ in a project). Then ask Claude to use BFCM Shopify Speed & CVR Audit.
3. **Codex:** Download the skill and extract it into ~/.agents/skills/bfcm-shopify-speed-cvr-audit/ (or .agents/skills/bfcm-shopify-speed-cvr-audit/ in a repository). Then ask Codex to use BFCM Shopify Speed & CVR Audit.

## Frequently asked questions

### What is BFCM Shopify Speed & CVR Audit?

BFCM Shopify Speed & CVR Audit is an AI skill for sales & marketing and product & engineering teams that you can use in Claude Code, Codex, or type.com. It works with Shopify.

### What does BFCM Shopify Speed & CVR Audit do?

Run a pre-BFCM audit on any Shopify store: pull real CrUX and PageSpeed data, score against a 30+ item speed checklist, and deliver a ranked action plan sorted by revenue impact and ease of fix.

### What do I need to use BFCM Shopify Speed & CVR Audit?

A live Shopify storefront URL; Optionally: monthly revenue and expected BFCM traffic multiplier for dollar-impact estimates.

### Can I use BFCM Shopify Speed & CVR Audit in Claude Code or Codex?

Yes. BFCM Shopify Speed & CVR Audit is a standard Agent Skills folder with a SKILL.md file. Download it and extract it into ~/.claude/skills/ for Claude Code or ~/.agents/skills/ for Codex.

### Who created BFCM Shopify Speed & CVR Audit?

The type.com team created BFCM Shopify Speed & CVR Audit. The type.com team reviews every skill before it is published in the Skills Library.

## Example output

Example output from a sample run. Unless the example says otherwise, company names and figures are sample data.

```markdown
## BFCM Speed Audit: Fernhill Goods

**Health Score: 68 / 100 — Needs Work**
22 Pass · 6 Needs Work · 4 Fail

At current performance, Fernhill is leaving an estimated $47K on the table during BFCM week. Fixing the top 3 items could recover ~$32K.

### Core Web Vitals (CrUX, 28-day p75)

| Page | LCP | CLS | INP | FCP | TTFB | Grade |
| --- | --- | --- | --- | --- | --- | --- |
| Homepage | 3.1s ⚠️ | 0.04 ✅ | 180ms ✅ | 1.9s ⚠️ | 650ms ✅ | Needs Work |
| Collection: Best Sellers | 3.8s ⚠️ | 0.18 ⚠️ | 320ms ⚠️ | 2.2s ⚠️ | 720ms ✅ | Needs Work |
| PDP: Signature Blend | 4.2s ❌ | 0.06 ✅ | 150ms ✅ | 2.5s ⚠️ | 680ms ✅ | Poor |
| Cart | 2.1s ✅ | 0.02 ✅ | 190ms ✅ | 1.4s ✅ | 590ms ✅ | Good |

### PageSpeed Scores

| Page | Mobile | Desktop |
| --- | --- | --- |
| Homepage | 52 | 78 |
| Collection | 41 | 71 |
| PDP | 38 | 65 |
| Cart | 72 | 89 |

### Prioritized Action Plan

| Priority | Item | Issue | Est. Speed Gain | Revenue Impact | Ease | Fix Time |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | Oversized images | Product images avg 680KB, hero 1.2MB — no srcset, no WebP | -1.4s LCP | +$18K BFCM | 🟢 Easy | 2 hours |
| 2 | Unused apps | Tidio chat + Privy pop-up inject 420KB JS on every page, neither actively used | -0.8s LCP | +$9K BFCM | 🟢 Easy | 30 min |
| 3 | Script loading | 6 render-blocking scripts in head without defer/async | -0.6s FCP | +$5K BFCM | 🟡 Medium | 1 hour |
| 4 | Font loading | 3 custom font families, none preloaded, no font-display | -0.3s FCP | +$2K BFCM | 🟢 Easy | 30 min |
| 5 | Collection CLS | Missing image dimensions on collection grid causing layout shift | Fix CLS 0.18→0.05 | +$1.5K BFCM | 🟢 Easy | 1 hour |

### 🚨 BFCM Risk Flags

- **Traffic spike risk:** PDP Liquid render time is 1.2s — under 3-5x traffic this could push TTFB past 2s.
- **Mobile risk:** Mobile PSI score 38 on PDP. 72% of BFCM traffic is mobile.

### BFCM Timeline

| Weeks Out | Action |
| --- | --- |
| Now (6 weeks) | Fix items 1-2 (images + unused apps) |
| 4 weeks | Fix items 3-5. Uninstall unused apps. |
| 2 weeks | Code freeze. Re-run audit to verify. |
| 1 week | Final audit. Set up monitoring. |
| BFCM week | Monitor only. Fix nothing. |
```

## Related skills

- [Footage Indexer](https://type.com/library/skills/footage-indexer.md): Index raw video footage with AI (scenes, people, actions, emotions, transcripts, timestamps), search it in natural language, and cut matching moments into vertical ad reels.
- [Win/Loss Analysis](https://type.com/library/skills/win-loss-analysis.md): Analyzes won and lost deals using customer-call evidence and deal outcomes. Groups reasons and competitor comparisons by deal, highlights conflicting evidence, and avoids percentages on small samples.
- [User Research Synthesis](https://type.com/library/skills/user-research-synthesis.md): Synthesizes research meetings by question, with anonymized participants, consent-aware evidence, distinct-participant counts and source links. Separates observations from claims about prevalence and flags unsupported findings.
- [Sales-to-CS Handoff](https://type.com/library/skills/sales-to-cs-handoff.md): Turns sales calls and deal records into a source-linked customer-success handoff: customer goals, stakeholders, timelines, promises, contract gaps and conflicts to resolve before onboarding.
- [1:1 Prep](https://type.com/library/skills/one-on-one-prep.md): Prepares a work-focused 1:1 agenda from previous meetings, commitments and unresolved topics. Withholds detected personal or sensitive context, links to sources, and shows coverage limits for review.
- [Decision Log](https://type.com/library/skills/decision-log.md): Builds a running decision log from meeting notes, with source evidence, owners, unresolved proposals and reversals. Scheduled runs carry the history forward without repeating confirmed posts.

## Package files

- SKILL.md

## SKILL.md

````markdown
---
name: bfcm-shopify-speed-cvr-audit
description: "Run a pre-BFCM audit on any Shopify store: pull real CrUX and PageSpeed data, score against a 30+ item speed checklist, and deliver a ranked action plan sorted by revenue impact and ease of fix."
---

# BFCM Shopify Speed & CVR Audit

One job: **find the speed and conversion problems that will cost you money on Black Friday, rank them by impact, and tell you exactly how to fix each one before peak traffic hits.**

This skill runs a full audit on any Shopify store — pulling real performance data from Chrome UX Report (CrUX) and Google PageSpeed Insights, then scoring the store against a 30+ item checklist built specifically for Shopify's architecture. Every finding comes with an impact estimate, an ease-of-fix rating, and a step-by-step fix tutorial.

---

## When to use this skill

- Pre-BFCM prep (ideally 4-8 weeks before the sale — gives time to implement fixes)
- Any time a Shopify store feels slow or CVR is underperforming
- After a theme change, app install spree, or migration
- When ad spend is going up but CVR isn't following

---

## Step 0 — Intake

Ask for:
1. **Store URL** (e.g., `https://example.com`) — the live storefront, not the `.myshopify.com` admin URL
2. **Key pages to audit** — default: homepage, a collection page, a product page (PDP), and cart. Ask which collection and product to test, or pick their best seller.
3. **Current monthly revenue** (optional) — used to estimate dollar impact of speed improvements
4. **BFCM traffic multiplier** (optional) — how much more traffic they expect vs. normal (default: 3-5x)
5. **Known pain points** — anything they've already noticed (slow checkout, heavy images, etc.)

---

## Step 1 — Data Collection

### 1a. CrUX data (real user experience)

CrUX reflects how real visitors experience the site over the last 28 days. This is ground truth — lab tests can miss real-world conditions (slow phones, bad connections, heavy ad scripts).

For each key page, pull:
- Largest Contentful Paint (LCP) — p75
- Cumulative Layout Shift (CLS) — p75
- Interaction to Next Paint (INP) — p75
- First Contentful Paint (FCP) — p75
- Time to First Byte (TTFB) — p75

**CrUX thresholds (Core Web Vitals):**

| Metric | Good | Needs Improvement | Poor |
|--------|------|-------------------|------|
| LCP | ≤2.5s | 2.5-4.0s | >4.0s |
| CLS | ≤0.1 | 0.1-0.25 | >0.25 |
| INP | ≤200ms | 200-500ms | >500ms |
| FCP | ≤1.8s | 1.8-3.0s | >3.0s |
| TTFB | ≤800ms | 800-1800ms | >1800ms |

If CrUX data isn't available (low-traffic site), note that and rely on lab data from PageSpeed Insights.

### 1b. PageSpeed Insights (lab audit)

Run PSI for both **mobile** and **desktop** on each key page. Capture:
- Performance score (0-100)
- All Lighthouse audits with scores and details
- Opportunity items (what to fix and estimated savings)
- Diagnostic items

### 1c. Shopify-specific checks

Fetch the storefront HTML and inspect:
- **Total page weight** (target: <3MB on any page, <1.5MB ideal)
- **Number of HTTP requests** (target: <80, ideal <50)
- **Third-party script count** — count `<script>` tags pointing to external domains
- **Shopify app scripts** — count scripts injected by apps
- **Image format** — WebP/AVIF or still JPEG/PNG?
- **Lazy loading** — are below-fold images lazy-loaded?
- **Font loading** — how many custom fonts? Are they preloaded?
- **Theme** — which Shopify theme? (Dawn and OS 2.0 themes are faster than vintage themes)

---

## Step 2 — The Checklist (30+ items)

Score every item as: Pass | Needs Work | Fail | N/A

### Theme & Architecture

| # | Check | What to look for | Impact | Ease |
|---|-------|-------------------|--------|------|
| 1 | **OS 2.0 theme** | Is the store on an Online Store 2.0 theme? Vintage themes lack section everywhere, JSON templates, and modern performance defaults. | High | Hard |
| 2 | **Theme bloat** | Has the theme been heavily customized with injected code? Check theme.liquid for excessive inline scripts/styles. | Medium | Medium |
| 3 | **Unused theme features** | Are sections/blocks loaded on pages where they're not visible? | Medium | Easy |
| 4 | **Liquid render time** | Check Shopify's server response time. TTFB >1s often means complex Liquid templates. | Medium | Medium |

### Images

| # | Check | What to look for | Impact | Ease |
|---|-------|-------------------|--------|------|
| 5 | **Next-gen formats** | Are product/collection images served as WebP or AVIF? Shopify CDN supports auto-format via image_url filter. | High | Easy |
| 6 | **Responsive image sizes** | Are images served at the display size, not the original upload size? Look for srcset and sizes attributes. | High | Easy |
| 7 | **Lazy loading below-fold** | Are images below the first viewport lazy-loaded? (loading="lazy") | Medium | Easy |
| 8 | **Hero image priority** | Is the above-fold hero loaded eagerly with fetchpriority="high" and preloaded? | Medium | Easy |
| 9 | **Image dimensions** | Do all img tags have explicit width and height to prevent layout shift? | Medium | Easy |
| 10 | **Oversized images** | Any images >500KB? Product images should be <200KB after compression. | High | Easy |

### JavaScript & Third-Party Scripts

| # | Check | What to look for | Impact | Ease |
|---|-------|-------------------|--------|------|
| 11 | **App script audit** | Count and list every Shopify app injecting JavaScript. More than 5 script-injecting apps is a red flag. | High | Medium |
| 12 | **Unused apps** | Any installed apps that are no longer used but still inject scripts? | High | Easy |
| 13 | **Script loading strategy** | Are third-party scripts loaded with defer or async? Render-blocking scripts in head kill LCP. | High | Medium |
| 14 | **Chat widgets** | Live chat often adds 200-500KB of JS. Is it lazy-loaded or loaded on interaction? | Medium | Easy |
| 15 | **Analytics bloat** | Multiple analytics tools? Each adds ~50-150KB. Server-side tracking via Shopify Customer Events can replace many. | Medium | Medium |
| 16 | **Review app weight** | Review widgets often load heavy JS/CSS on every page even when reviews only display on PDPs. | Medium | Medium |
| 17 | **Main thread blocking** | Total Blocking Time >300ms on mobile? Identify the heaviest scripts. | High | Medium |

### Fonts & CSS

| # | Check | What to look for | Impact | Ease |
|---|-------|-------------------|--------|------|
| 18 | **Font count** | More than 2 custom font families is usually unnecessary. | Medium | Easy |
| 19 | **Font loading** | Are fonts preloaded and using font-display: swap or optional? | Medium | Easy |
| 20 | **CSS delivery** | Is critical CSS inlined and non-critical CSS deferred? | Medium | Medium |
| 21 | **Unused CSS** | Lighthouse "Reduce unused CSS" — how many KB could be removed? | Medium | Medium |

### Conversion-Critical Pages

| # | Check | What to look for | Impact | Ease |
|---|-------|-------------------|--------|------|
| 22 | **PDP load speed** | Product page LCP ≤2.5s on mobile? This is where purchase decisions happen. | High | Varies |
| 23 | **Cart/checkout speed** | Cart and checkout load time. App scripts can slow the cart page. | High | Medium |
| 24 | **Collection page pagination** | Infinite scroll that loads all products at once kills performance on large collections. | Medium | Medium |
| 25 | **Search functionality** | Predictive search making API calls on every keystroke without debouncing? | Low | Easy |

### Infrastructure & Caching

| # | Check | What to look for | Impact | Ease |
|---|-------|-------------------|--------|------|
| 26 | **CDN headers** | Are static assets served with long cache TTLs? Shopify CDN handles this, but custom code or proxy layers can break it. | Medium | Easy |
| 27 | **Preconnect hints** | Are preconnect tags set for critical third-party origins? | Low | Easy |
| 28 | **HTTP/2 or HTTP/3** | Is the site served over HTTP/2+? Proxies or custom domains can downgrade. | Low | Medium |
| 29 | **Redirects** | Excessive redirect chains? Each adds 100-300ms. | Medium | Easy |

### Mobile-Specific

| # | Check | What to look for | Impact | Ease |
|---|-------|-------------------|--------|------|
| 30 | **Mobile viewport** | Proper viewport meta tag? Content properly responsive? | High | Easy |
| 31 | **Tap targets** | Tap targets large enough and spaced properly? | Medium | Easy |
| 32 | **Mobile pop-ups** | Intrusive interstitials on mobile? Email pop-ups covering the full screen kill UX and SEO. | Medium | Easy |

---

## Step 3 — Scoring & Prioritization

### 3a. Score the audit

```
Total items checked: N
Pass: X
Needs Work: Y
Fail: Z

Health Score: (X + 0.5*Y) / N x 100

Grades:
  90-100: BFCM Ready — minor tweaks only
  75-89:  Good Shape — fix the Fail items and you're set
  60-74:  Needs Work — several impactful issues, start now
  <60:    At Risk — significant speed problems, prioritize ruthlessly
```

### 3b. Rank findings by Impact x Ease

Create a prioritized action plan:

| Priority | Item | Issue | Est. Speed Gain | Revenue Impact | Ease | Fix Time |
|----------|------|-------|-----------------|----------------|------|----------|
| 1 | ... | ... | -Xs LCP | +Y% CVR | Easy | 1 hour |
| 2 | ... | ... | ... | ... | ... | ... |

**Revenue impact estimation:**

Use these benchmarks (sourced from Google/Deloitte studies):
- Every 100ms improvement in LCP leads to roughly 0.7% increase in conversions
- Every 100ms improvement in mobile page load leads to roughly 8.4% increase in conversions (retail)
- Sites loading in 1-2s have 3.05% CVR; 4-5s have 0.67% CVR

If the user provided monthly revenue and BFCM multiplier:
```
Normal monthly CVR: [from their analytics or estimate 2%]
Estimated CVR lift from all fixes: X%
BFCM projected revenue: monthly_revenue x BFCM_multiplier
Revenue impact: BFCM_revenue x (CVR_lift / current_CVR)
```

### 3c. BFCM-specific urgency flags

Flag anything dangerous under high traffic:

- **Traffic spike risk**: Items that work fine at normal load but break under 3-5x traffic (slow Liquid, unoptimized API calls, apps with rate limits)
- **Mobile risk**: 70%+ of BFCM traffic is mobile. Any mobile-specific failure is amplified.
- **Core Web Vitals risk**: Google may show a "slow site" warning to Chrome users if CWV are in the "poor" range.

---

## Step 4 — Fix Tutorials

For every Fail and Needs Work item, provide a specific fix:

### Tutorial format

```
### Fix: [Item name]

**What's wrong:** [One sentence describing the problem and its measured impact]

**How to fix it:**
1. [Step-by-step instructions specific to Shopify]
2. [Include the exact file to edit in the theme editor, the Liquid filter to use, or the app setting to change]
3. [If it requires code, provide the code snippet]

**Expected improvement:** [Estimated speed gain based on the audit data]
**Time to implement:** [Realistic time estimate]
**Risk level:** Low / Medium / High
**How to verify:** [How to confirm the fix worked]
```

### Common Shopify-specific fixes (reference)

**Image optimization (items 5-10):**
```liquid
{{ product.featured_image | image_url: width: 800 | image_tag:
   loading: 'lazy',
   sizes: '(min-width: 768px) 50vw, 100vw',
   widths: '200,400,600,800,1000' }}

<!-- Hero image — eager load, high priority -->
{{ section.settings.hero_image | image_url: width: 1200 | image_tag:
   loading: 'eager',
   fetchpriority: 'high',
   sizes: '100vw',
   widths: '600,800,1000,1200,1600' }}
```

**Defer third-party scripts (items 11-17):**
```html
<script src="https://third-party.com/widget.js" defer></script>

<!-- Load chat widgets on interaction -->
<script>
  document.addEventListener('click', function loadChat() {
    var s = document.createElement('script');
    s.src = 'https://chat-provider.com/widget.js';
    document.body.appendChild(s);
    document.removeEventListener('click', loadChat);
  }, { once: true });
</script>
```

**Font optimization (items 18-19):**
```html
<link rel="preload" href="{{ 'your-font.woff2' | asset_url }}" as="font" type="font/woff2" crossorigin>
```

**Preconnect hints (item 27):**
```html
<link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
<link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin>
```

---

## Step 5 — The Report

Deliver the full audit as a structured document:

1. **Executive Summary** — Health score, top 3 findings, estimated revenue at stake during BFCM
2. **Core Web Vitals Dashboard** — CrUX data for each key page with pass/fail indicators
3. **PageSpeed Scores** — Mobile and desktop scores for each page
4. **Full Checklist Results** — All 30+ items with status
5. **Prioritized Action Plan** — Ranked table from Step 3b
6. **BFCM Risk Flags** — Items from Step 3c
7. **Fix Tutorials** — One per failing item from Step 4
8. **Re-audit Schedule** — Recommend re-running the audit after fixes and again 1 week before BFCM

### Tone

Write like a senior Shopify performance consultant who actually looked at the specific store. Reference their specific theme, their specific apps, their specific images by name.

---

## BFCM Timeline Recommendations

| Weeks before BFCM | Action |
|---|---|
| 8+ weeks | Run this audit. Implement all Easy fixes immediately. |
| 6 weeks | Implement Medium fixes. Uninstall unused apps. |
| 4 weeks | Implement remaining fixes. Consider theme upgrade if on vintage theme. |
| 2 weeks | **Code freeze.** No new apps, no theme changes. Re-run audit to verify fixes. |
| 1 week | Final audit. Set up real-time monitoring. Test under load if possible. |
| BFCM week | Monitor only. Fix nothing unless it's an emergency. |

**The cardinal rule: never push a speed fix to production during BFCM week.** Test everything before the freeze.

---

## What this skill does NOT cover

- **Conversion rate optimization beyond speed** — copy, UX flow, pricing, upsells are a separate audit.
- **Server-side performance** — Shopify manages the infrastructure. Slow TTFB means Liquid optimization, not server config.
- **SEO audit** — speed affects SEO, but this skill doesn't cover content, backlinks, or technical SEO beyond Core Web Vitals.
- **Paid ads performance** — if ads drive traffic to a slow page, fix the page first.
````
