Performance & Core Web Vitals
watchvault.us · Lab-estimated LCP/INP/CLS, render-blocking, third-party scripts
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)
server-timing reportsRender-Blocking Inventory (Homepage)
Stylesheets (5 total)
- https://watchvault.us/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css — Shopify checkout asset
- //watchvault.us/cdn/shop/t/18/assets/theme.css?v=… — main theme CSS
- //watchvault.us/cdn/shop/t/18/assets/ripple.css?v=… — theme ripple effects CSS
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css — external CDN, render-blocking, 9-year-old library, third-party DNS hop
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css — same problem
Third-Party Origins (Homepage)
| Host | Purpose | Notes |
|---|---|---|
| www.googletagmanager.com | GTM | 2 scripts |
| shop.app | Shop Pay / Shop App | 1 script |
| analytics.ahrefs.com | Ahrefs Analytics | 1 script |
| maxcdn.bootstrapcdn.com | Bootstrap 3 | 1 script + 2 stylesheets — replaceable |
| cdn.rlets.com | Bing UET / Pinterest tag (likely) | 1 script |
| tracking.method21.com | Method 21 attribution | 1 script |
| static.elfsight.com | Elfsight widgets (likely IG feed) | 1 script |
Inline Scripts & Styles
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.
8 blocks · ~2,737 chars
Acceptable. Used by sections to inject section-scoped vars and animation overrides.
Image Weight (Homepage)
See the Images section for full sitewide image analysis.
Preloads / Preconnects
- 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
5 rel="preconnect" hints (Shopify CDN, fonts, etc.). 1 dns-prefetch. Reasonable.
Action Items
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:
- 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)
- 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.
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.
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.
fetchpriority hints on critical resourcesSBeyond 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).