Performance was assessed via static HTML analysis — the public PageSpeed Insights API exhausted its free quota during this audit (rate-limited 429), and no GCP project key is configured for this environment. The lab estimate below is based on script counts, render-blocking resource inventory, image weight, and Shopify server-timing headers (TTFB processing dur 378 ms reported by Shopify before Cloudflare overhead). Field data (CrUX) is the recommended next step.

Predicted Lab CWV (Mobile, 4G, Mid-tier device)

LCP estimate
4.0 – 5.5 s
Poor (>4.0 s)
CLS estimate
0.10 – 0.25
Needs improvement
INP estimate
200 – 350 ms
Needs improvement
TTFB
600 – 900 ms
Needs improvement
TBT estimate
600 – 1200 ms
Poor
Shopify server-timing reports
processing;dur=378, db;dur=141, render;dur=124, cfRequestDuration;dur=458. Origin TTFB is dominated by Shopify processing — not theme-fixable, but indicates limited headroom.

Render-Blocking Inventory (Homepage)

Total <script> tags
88
Far above sane limit
Inline scripts
73
~46 KB total
External script srcs
15
7 third-party hosts
Async
8
/ 88
Defer
7
/ 88
Render-blocking
72
no async/defer

Stylesheets (5 total)

  1. https://watchvault.us/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css — Shopify checkout asset
  2. //watchvault.us/cdn/shop/t/18/assets/theme.css?v=… — main theme CSS
  3. //watchvault.us/cdn/shop/t/18/assets/ripple.css?v=… — theme ripple effects CSS
  4. https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.cssexternal CDN, render-blocking, 9-year-old library, third-party DNS hop
  5. https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css — same problem
Drop Bootstrap 3 from external CDN
Bootstrap 3.3.7 was released in 2016. The CDN (maxcdn.bootstrapcdn.com, now operated by StackPath / Sucuri) is a third-party single-point-of-failure. Three render-blocking files load from it on every page. Either replace with theme-native utilities or self-host the minimal subset needed from Shopify CDN.

Third-Party Origins (Homepage)

HostPurposeNotes
www.googletagmanager.comGTM2 scripts
shop.appShop Pay / Shop App1 script
analytics.ahrefs.comAhrefs Analytics1 script
maxcdn.bootstrapcdn.comBootstrap 31 script + 2 stylesheets — replaceable
cdn.rlets.comBing UET / Pinterest tag (likely)1 script
tracking.method21.comMethod 21 attribution1 script
static.elfsight.comElfsight widgets (likely IG feed)1 script

Inline Scripts & Styles

Inline <script>

73 blocks · ~46,230 chars

Shopify pixels, theme JS bootstrap, GA / GTM dataLayer push, Klaviyo init, etc. All parser-block by definition (no async/defer possible on inline). Some are unavoidable (Shopify pixel) but many are theme/marketing scripts that could be deferred to a single bundle.

Inline <style>

8 blocks · ~2,737 chars

Acceptable. Used by sections to inject section-scoped vars and animation overrides.

Image Weight (Homepage)

Total <img>
67
loading="lazy"
1
1.5%
No loading attr
66
eager by default
With srcset
66
98.5%
Width + height
30
/ 67
Missing dimensions
37
CLS risk

See the Images section for full sitewide image analysis.

Preloads / Preconnects

Preload (2)
  • Inter font (inter_n4.b2a3f24c….woff2)
  • Theme CSS (theme.css?v=…)
  • Hero LCP image is NOT preloaded — the slideshow first slide is the LCP candidate but isn't hinted
Preconnect (5) / DNS-prefetch (1)

5 rel="preconnect" hints (Shopify CDN, fonts, etc.). 1 dns-prefetch. Reasonable.

Action Items

C6Drop Bootstrap 3 from external CDNM / L

Why: Three third-party render-blocking files (1 script, 2 stylesheets) load from maxcdn.bootstrapcdn.com on every page. Bootstrap 3.3.7 was released in 2016. Render-blocking, perf cost, security concern (compromised CDN = full XSS surface).

How:

  1. Identify which Liquid sections actually use Bootstrap 3 utilities (audit theme.css.liquid, section templates for class names like col-md-, btn-default, panel-, well)
  2. Either: Replace the few Bootstrap utilities with theme-native or modern alternatives (preferred), OR Self-host minimal subset from the Shopify CDN with media="print" + onload="this.media='all'" (non-render-blocking)

Acceptance: Homepage HTML contains zero bootstrapcdn.com references; LCP improves ≥ 300 ms in lab.

M5Add hero-image preload on homepageS

2 preload links currently (font + theme CSS); LCP image not preloaded. In layout/theme.liquid, conditionally emit <link rel="preload" as="image" href="…" fetchpriority="high"> on homepage only.

Acceptance: LCP improves ≥ 300 ms in lab.

M6Reduce script tag countM

Avg 68.9 scripts per page; 14.6 external. Audit all 7 third-party origins:

  • cdn.rlets.com — what is this serving?
  • static.elfsight.com — likely IG widget; consider lazy-loading the widget below the fold (Elfsight supports it)
  • tracking.method21.com — verify this is consented and contributing measurable value
  • Bootstrap 3 (covered by C6)

Acceptance: Script count per page ≤ 50; render-blocking scripts ≤ 5.

L5Add fetchpriority hints on critical resourcesS

Beyond preload, modern browsers respect fetchpriority="high" on critical images and fetchpriority="low" on below-fold media.

Cross-references: Lazy-load images and explicit dimensions are filed under Images (H2, H3). HTTP/3 re-enable + HSTS preload is under Technical SEO (H10). PSI / CrUX field-data setup is under Technical SEO (M7).